标签:dtd
文档类型定义 DTD(Document Type Definition),专门用于检测XML是否符合语法规则。
文档类型声明的两种方式:
persons.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!-- <!DOCTYPE 根元素 [元素声明]> --> <!DOCTYPE persons[ <!--常用的控制符:?:0-1次 ; *:0-N次; +:1-N次; 默认:1次 --> <!ELEMENT persons (person+)> <!ELEMENT person (name , password, age)> <!-- #PCDATA 是XML解析器解析的文本数据使用的一个术语 --> <!-- CDATA出现在属性声明中 --> <!ELEMENT name (#PCDATA)> <!ELEMENT password (#PCDATA)> <!ELEMENT age (#PCDATA)> <!-- #REQUIRED 属性值是必需的 --> <!-- #IMPLIED 属性不是必需的 --> <!-- #FIXED value 属性值是固定的 --> <!-- ID 值为唯一的 id --> <!ATTLIST person id ID #REQUIRED> <!-- CDATA 值为字符数据 (character data) --> <!ATTLIST person email CDATA #REQUIRED> ]> <persons> <person id="p1070541038" email="452274335@qq.com"> <name>赵栗婧</name> <password>000000</password> <age>26</age> <!-- <id>p1070541038</id> --><!-- 错误写法 --> <!-- <email>452274335@qq.com</email> --> </person> <person id="p2070541038" email="552274335@qq.com"> <name>赵栗婧</name> <password>000000</password> <age>26</age> </person> </persons>
classroom.dtd 文件
<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT classroom (name,grade,students)> <!ATTLIST classroom id ID #REQUIRED> <!ELEMENT name (#PCDATA)> <!ELEMENT grade (#PCDATA)> <!ELEMENT students (student+)> <!ELEMENT student (id,name,age)> <!ELEMENT id (#PCDATA)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)>
classroom.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!-- 外部文档声明 --> <!-- 假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中: --> <!DOCTYPE classroom SYSTEM "classroom.dtd"> <classroom id="classroomid1"> <name>classname1</name> <grade>grade1</grade> <students> <student> <id>studentid1</id> <name>studentname1</name> <age>studentage1</age> </student> <student> <id>studentid2</id> <name>studentname2</name> <age>studentage2</age> </student> </students> </classroom>
简单明了,容易编写。
可检测XML是否有效
1)与XML语法不同
2)提供有限的数据类型,用户无法自定义类型3)不支持域名机制
标签:dtd
原文地址:http://blog.csdn.net/zhaolijing2012/article/details/46683073