DTD 教程
什么是 DTD?
DTD 是文档类型定义 (Document Type Definition) 的缩写。
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>
查看 XML 文件 »
在 XML 文件中,选择“查看源代码”以查看 DTD。
上面的 DTD 的解释如下:
- !DOCTYPE note 定义了此文档的根元素是 note。
- !ELEMENT note 定义了 note 元素必须包含四个元素:“to,from,heading,body”。
- !ELEMENT to 定义了 to 元素为“#PCDATA”类型。
- !ELEMENT from 定义了 from 元素为“#PCDATA”类型。
- !ELEMENT heading 定义了 heading 元素为“#PCDATA”类型。
- !ELEMENT body 定义了 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>
查看 XML 文件 »
这是包含 DTD 的文件 "note.dtd":
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>