对DTD的了解

1.什么是DTD

文档类型定义(DTD,Document Type Definition)是一种特殊文档,它规定、约束符合标准通用标示语言(SGML)或SGML子集可扩展标示语言(XML)规则的定义和陈述。

2.什么是XML

XML:可扩展标记语言

3.XML的两种文档约束

DTD、Schema

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

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

5.使用DTD

5.1 在XML中加入DTD申明
1)内部申明
<! DOCTYPE root[]>
5.2 元素定义语法(DTD对元素的限制)
基本语法

<! ELEMENT 元素名称 元素类型 >

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

元素限制
, (顺序)
|(或,多选一)
?(0或1次 )
*(0次或多次)
+(1次或多次)
5.3 属性定义语法(DTD对属性的限制)
基本语法

<!ATTLIST 元素名称 属性名称 属性类型 设置说明>

属性类型
ID 唯一
CDATA 文本
ENUM (男|女) 枚举
设置说明
#REQUIRED(必须)
#IMPLIED(可选)
代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 内部DTD

元素定义语法:<!  ELEMENT 元素名称 元素类型 >

元素分类:EMPTY     空元素      <br/>
        (#PCDATA)  文本元素   
        (e1,e2)    混合元素
元素限制:
 ,  (顺序)
 |(或,多选一)
 ?(0或1次 )
*(0次或多次)
 +(1次或多次)
 
 属性定义语法(DTD对属性的限制)
	基本语法:<!ATTLIST 元素名称 属性名称 属性类型 设置说明>
    属性类型:
  ID  唯一
  CDATA 文本
  ENUM (男|女) 枚举
  设置说明:
   #REQUIRED(必须)
   #IMPLIED(可选)
 -->
<!DOCTYPE persons[
    <!ELEMENT perosns (person+)>
    <!ELEMENT person (name,age,contact,br*)>
    <!ELEMENT name (#PCDATA)>
    <!ELEMENT age (#PCDATA)>
    <!ELEMENT contact (phone|mail)>
    <!ELEMENT br EMPTY>
    <!ELEMENT phone (#PCDATA)>
    <!ELEMENT mail (#PCDATA)>
	<!ATTLIST person pid ID #REQUIRED>
	<!ATTLIST person paddr CDATA #IMPLIED>
	<!ATTLIST person psex (男|女) "男"  #IMPLIED>
]>

<persons>
	<person pid="p01" paddr="123" psex="男">
		<name>张三</name>
		<age>22</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>


版权声明:本文为m0_48680499原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。