XML DTD

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

语法正确的XML文档称为格式良好。

根据DTD验证的XML文档是格式良好和有效的。


什么是DTD?

DTD代表文档类型定义。

DTD定义XML文档的结构、合法元素和属性。


有效的XML文档

有效的XML文档是格式良好的,并且符合DTD的规则:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

上面的DOCTYPE声明包含对DTD文件的引用。下面显示并解释DTD文件的内容。


XML DTD

DTD的目的是定义XML文档的结构、法律元素和属性:

Note.dtd:

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

上述DTD的解释如下:

  • !DOCTYPE note -  定义文档的根元素是note
  • !ELEMENT note - 定义note元素必须包含元素:"to,from,heading,body"
  • !ELEMENT to - 定义类型为的to元素 "#PCDATA"
  • !ELEMENT from - 将from元素定义为 "#PCDATA"
  • !ELEMENT heading  - 定义标题元素的类型 "#PCDATA"
  • !ELEMENT body - 定义类型为的主体元素 "#PCDATA"

提示: #PCDATA 表示可解析的字符数据。



使用DTD进行实体声明

DOCTYPE声明还可用于定义文档中使用的特殊字符或字符串:

实例

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE note [
<!ENTITY nbsp "&#xA0;">
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: W3Schools.">
]>

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
<footer>&writer;&nbsp;&copyright;</footer>
</note> 尝试一下 »

提示: 实体有三个部分:以符号(&)开头,然后是实体名称,最后是分号 (;)


何时使用DTD?

有了DTD,独立的人群可以同意使用标准DTD交换数据。

使用DTD,您可以验证从外部世界接收的数据是否有效。

您还可以使用DTD来验证您自己的数据。

如果你想学习DTD,请阅读我们的 DTD教程


何时不使用DTD?

XML不需要DTD。

当您尝试使用XML时,或者当您使用小型XML文件时,创建DTD可能是浪费时间。

如果开发应用程序,请等到规范稳定后再添加DTD。否则,您的软件可能会因为验证错误而停止工作。



0 人点赞过