DTD通过声明元素和属性定义XML结构,可在文档内嵌或外部引用;使用<!ELEMENT>定义元素内容模型,<!ATTLIST>声明属性类型与默认值;尽管语法简单且广泛支持,但因缺乏命名空间和数据类型限制,现多推荐用于小型项目或遗留系统。

DTD(Document Type Definition,文档类型定义)用于定义XML文档的结构和合法元素。它规定了哪些元素可以出现在文档中、元素的属性、元素之间的嵌套关系以及元素内容的类型。虽然现在更推荐使用XML Schema,但DTD仍被广泛支持且简单易用。
DTD可以在XML文档内部声明(内部DTD),也可以单独存放在外部文件中(外部DTD),然后通过DOCTYPE引用。
内部DTD示例:在XML文件开头使用<!DOCTYPE>声明,并在其中定义结构:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
<!ELEMENT book (title, author, price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT price (#PCDATA)>
]>
<book>
<title>JavaScript入门</title>
<author>张三</author>
<price>59.9</price>
</book>
将DTD保存为独立文件,比如book.dtd:
<!ELEMENT book (title, author, price)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT price (#PCDATA)>
在XML中引用该DTD:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book SYSTEM "book.dtd">
<book>
<title>JavaScript入门</title>
<author>张三</author>
<price>59.9</price>
</book>
DTD通过<!ELEMENT>定义元素及其内容模型。
<br/>
(title, author+)表示title后跟一个或多个author<!ELEMENT note (to, from, body)>:note必须包含to、from、body,按顺序出现一次<!ELEMENT author (#PCDATA)>:author元素只能包含文本<!ELEMENT book (chapter+)>:book必须包含至少一个chapter使用<!ATTLIST>为元素定义属性,包括属性名、类型和默认值。
<!ATTLIST 元素名 属性名 类型 默认值>
<!ATTLIST book
id ID REQUIRED
category CDATA #IMPLIED
status (published|draft) "draft"
>
DTD虽然简单,但也有一些限制和使用建议:
基本上就这些。掌握DTD的核心是理解元素和属性的声明方式,以及如何在XML中正确引用。虽不如Schema强大,但在简单场景下依然实用。
以上就是XML架构DTD如何使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号