DTD 教程
什么是DTD?
DTD是文档类型定义。
DTD定义XML文档的结构、合法元素和属性。
为什么使用DTD?
有了DTD,独立的人群可以就交换数据的标准DTD达成一致。
应用程序可以使用DTD来验证XML数据是否有效。
内部DTD声明
如果DTD是在XML文件中声明的,则必须将其包装在 <!DOCTYPE> 定义:
带有内部DTD的XML文档
<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>
View XML file »
在XML文件中,选择查看源"view source"以查看DTD。
上述DTD的解释如下:
- !DOCTYPE note 定义此文档的根元素是note
- !ELEMENT note 定义note元素必须包含四个元素: "to,from,heading,body"
- !ELEMENT to 定义类型为"#PCDATA"的to元素
- !ELEMENT from 将from元素定义为"#PCDATA"类型
- !ELEMENT heading 定义标题元素的类型为"#PCDATA"
- !ELEMENT body 定义类型为"#PCDATA"的主体元素
外部DTD声明
如果DTD在外部文件中声明,则<!DOCTYPE> 定义必须包含对DTD文件的引用:
引用外部DTD的XML文档
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
View XML file »
下面是文件"note.dtd",其中包含DTD:
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>