DTD通过声明元素和属性定义XML结构,可在文档内嵌或外部引用;使用定义元素内容模型,声明属性类型与默认值;尽管语法简单且广泛支持,但因缺乏命名空间和数据类型限制,现多推荐用于小型项目或遗留系统。
DTD(Document Type Definition,文档类型定义)用于定义XML文档的结构和合法元素。它规定了哪些元素可以出现在文档中、元素的属性、元素之间的嵌套关系以及元素内容的类型。虽然现在更推荐使用XML Schema,但DTD仍被广泛支持且简单易用。
DTD可以在XML文档内部声明(内部DTD),也可以单独存放在外部文件中(外部DTD),然后通过DOCTYPE引用。
内部DTD示例:在XML文件开头使用声明,并在其中定义结构:
]>
张三
将DTD保存为独立文件,比如book.dtd:
在XML中引用该DTD:
张三
DTD通过定义元素及其内容模型。
(title, author+)表示title后跟一个或多个author:note必须包含to、from、body,按顺序出现一次
:author元素只能包含文本:book必须包含至少一个chapter使用为元素定义属性,包括属性名、类型和默认值。
id ID REQUIRED
category CDATA #IMPLIED
status (published|draft) "draft"
>
DTD虽然简单,但也有一些限制和使用建议:
基本上就这些。掌握DTD的核心是理解元素和属性的声明方式,以及如何在XML中正确引用。虽不如Schema强大,但在简单场景下依然实用。