DTD(文档类型定义)概述

Posted wx5a20cf699eb6f

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DTD(文档类型定义)概述相关的知识,希望对你有一定的参考价值。

DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。


DTD 简介

文档类型定义(DTD)可定义合法的XML文档构建模块。它使用一系列合法的元素来定义文档的结构。

DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用。

内部的 DOCTYPE 声明

假如 DTD 被包含在您的 XML 源文件中,它应当通过下面的语法包装在一个 DOCTYPE 声明中:

<!DOCTYPE root-element [element-declarations]>


带有 DTD 的 XML 文档实例(请在 IE5 以及更高的版本打开,并选择查看源代码):

<?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>Dont forget me this weekend</body>
</note>


以上 DTD 解释如下:

  1. !DOCTYPE note (第二行)定义此文档是 note 类型的文档。
  2. !ELEMENT note (第三行)定义 note 元素有四个元素:"to、from、heading,、body"
  3. !ELEMENT to (第四行)定义 to 元素为 "#PCDATA" 类型
  4. !ELEMENT from (第五行)定义 from 元素为 "#PCDATA" 类型
  5. !ELEMENT heading (第六行)定义 heading 元素为 "#PCDATA" 类型
  6. !ELEMENT body (第七行)定义 body 元素为 "#PCDATA" 类型

外部文档声明

假如 DTD 位于 XML 源文件的外部,那么它应通过下面的语法被封装在一个 DOCTYPE 定义中:

<!DOCTYPE root-element SYSTEM "filename">


这个 XML 文档和上面的 XML 文档相同,但是拥有一个外部的 DTD

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Dont forget me this weekend!</body>
</note>


这是包含 DTD 的 "note.dtd" 文件:

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


为什么使用 DTD?

通过 DTD,您的每一个 XML 文件均可携带一个有关其自身格式的描述。

通过 DTD,独立的团体可一致地使用某个标准的 DTD 来交换数据。

而您的应用程序也可使用某个标准的 DTD 来验证从外部接收到的数据。

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

以上是关于DTD(文档类型定义)概述的主要内容,如果未能解决你的问题,请参考以下文章

XML之 ------ DTD(文档类型定义)

XML_03_XML文档类型定义DTD

XML文档类型定义---DTD文档

XML--- XML文档类型定义(DTD)

解析 RSS 提要最近一直抛出文档类型定义 (DTD) 错误

XML Schema