目录

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>
查看 XML 文件 »

在 XML 文件中,选择 "view source" 以查看 DTD。

上面的DTD解释如下:

  • !DOCTYPE 注释定义该文档的根元素是 note
  • !元素注释定义 note 元素必须包含四个元素:"to,from,heading,body"
  • !元素到将 to 元素定义为 "#PCDATA" 类型
  • !元素来自将 from 元素定义为 "#PCDATA" 类型
  • !元素标题将标题元素定义为 "#PCDATA" 类型
  • !元素体将 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 文件 »

这是文件 "note.dtd",其中包含 DTD:

<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>