XML教程

浏览3269
更新时间2025-07-30

什么是 DTD?

DTD 代表文档类型定义(Document Type Definition)。

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

有效的 XML 文档

“有效”的 XML 文档既是“格式良好”的,同时也要符合 DTD 的规则:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</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  - 将 heading 元素定义为 "#PCDATA" 类型
!ELEMENT body - 将 body 元素定义为 "#PCDATA" 类型

提示:#PCDATA 表示可解析的字符数据(parseable character data)。

使用 DTD 进行实体声明

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

实例

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

<!DOCTYPE note [
<!ENTITY nbsp " ">
<!ENTITY writer "Writer: Bill Gates.">
<!ENTITY copyright "Copyright: W3School.">
]>

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
<footer>&writer; &copyright;</footer>
</note>

提示:实体由三部分组成:以与号 (&) 开头,然后是实体名称,最后以分号 (;) 结尾。

何时使用 DTD?

有了 DTD,独立的群体可以就交换数据的标准达成一致。

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

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

如果您希望学习 DTD,请阅读我们的 DTD 教程。

何时不使用 DTD?

对于 XML,DTD 不是必需的。

如果您正在测试 XML,或使用的是很小的 XML 文件时,创建 DTD 可能是在浪费时间。

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

相关视频

更多

免费

php8,我来也
初级php8,我来也

321780次学习

收藏

免费

Thinkphp6.0正式版视频教程
中级Thinkphp6.0正式版视频教程

382430次学习

收藏

免费

细说PHP第一季
中级细说PHP第一季

282778次学习

收藏

免费

简单聊聊PHP创业那点事
初级简单聊聊PHP创业那点事

13415次学习

收藏

精品课程

更多
前端入门_HTML5
前端入门_HTML5

共29课时 | 62.5万人学习

CSS视频教程-玉女心经版
CSS视频教程-玉女心经版

共25课时 | 39.7万人学习

JavaScript极速入门_玉女心经系列
JavaScript极速入门_玉女心经系列

共43课时 | 73.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号