DTD-01

本文详细介绍了XML和DTD的概念,XML的格式要求以及如何在XML中使用DTD进行文档结构定义和元素、属性限制。通过示例展示了DTD的内部和外部声明,元素和属性的定义语法,并给出了特殊字符的转义规则。最后,提供了一个XML文档实例,演示了DTD的实际应用。
摘要由CSDN通过智能技术生成

一.什么是DTD?

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

二.什么是XML?

XML 被设计用来传输和存储数据。HTML 被设计用来显示数据。

三.XML格式要求(合法XML)

    1)有且只有一个根节点;
    2)由开始标签和结束标签组成;
    3)XML标签区分大小写;
    4)正确嵌套标签;

 

四.使用DTD

  5.1 在XML中加入DTD申明
        1)内部申明:<! DOCTYPE root[]>
	2)外部申明:<!DOCTYPE 文档根节点 SYSTEM “DTD文件名”>

    5.2 元素定义语法(DTD对元素的限制)
        基本语法:<! ELEMENT 元素名称 元素类型 >

    	元素分类:EMPTY     空元素
                 (#PCDATA)  文本元素
                 (e1,e2)    混合元素

  	元素限制:,(顺序)、|(或,多选一)、?(0或1次),*(1*0=0,0次或多次), +(1+0=1,1次或多次)

    5.3 属性定义语法(DTD对属性的限制)
	基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
	
	属性类型:ID/CDATA/ENUM (男|女)

	设置说明:#REQUIRED(必须)/#IMPLIED(可选)

    5.4 特殊符号转义
	&(逻辑与) 	 -->  &amp;
	>(大于)	 -->  &gt;
	<(小于)	 -->  &lt;
	‘(单引号)	 -->  &apos;
	“(双引号)	 -->  &quot;


<?xml version="1.0" encoding="UTF-8" ?>

<!-- 
   1.DTD申明
   1) 内部申明  <!DOCTYPE 根节点名称[]>
   2) 外部申明  <!DOCTYPE 根节点名称SYSTEM "外部的DTD文件路径">
   
   2.元素定义
   1)语法 <!ELEMENT 元素名称 元素类型>
   2)元素类型:
   2.1) EMPTY:空元素
   2.2) (#PCDATA):文本元素
   2.3) (name,age...):混合元素
   3)限制:
   3.1)  ,  代表:元素的出场顺序
   3.2)  、    代表:多选一
   3.3)  ?  代表:可有可无 元素出现0次或一次
   3.4)  *  代表:元素出现0次或者N次   
   3.5)  +  代表:元素出现1次或者N次  至少出现一次
   3.属性定义:attribute
   3.1)语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
   3.2)类型:
   1)ID:唯一、不能以/或者数字开头
   2)文本:CDATA
   3)枚举: 多选一、例如:(男|女|妖)
   3.3)设置说明:
   1)必填:#REQUIRED required
   2)可选: #IMPLIED implied
 -->

<!DOCTYPE persons[
   <!ELEMENT persons (person+)>
   <!ELEMENT person (name,age,contact,br?)>
   <!ELEMENT name (#PCDATA)>
   <!ELEMENT age (#PCDATA)>
   <!ELEMENT contact (phone|mail|qq|wechat)>
   <!ELEMENT br EMPTY>
   <!ELEMENT mail (#PCDATA)>
   <!ELEMENT phone (#PCDATA)>
   <!ATTLIST person 
      pid ID #REQUIRED
      paddr CDATA #IMPLIED
      psex (男|女|妖) "男"
   >
]>

<persons>
	<person pid="p01" paddr="123" psex="男">
		<name>张三</name>
		<age>select * from t_book where price &gt; 100 and price &lt; 200</age>
		<contact>
			<phone>15882821111</phone>
		</contact>
		<br/>
	</person>
	<person pid="p02">
		<name>李四</name>
		<age>23</age>
		<contact>
			<mail>123@qq.com</mail>
		</contact>
	</person>
</persons>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值