DTD 简介

创建于 2024-12-03 / 30
字体: [默认] [大] [更大]

什么是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)>

0 人点赞过