DTD
DTD 是“Document Type Definition”的缩写。DTD 定义了 XML 文档的结构、元素和属性。它提供了一组 XML 文件必须遵循的规则,确保类似文档之间的一致性和有效性。
DTD 规定:
- 允许使用哪些元素(标签)
- 元素的顺序和嵌套方式
- 元素可以包含哪些属性
- 这些属性可以包含的值的类型
下面是一个将汽车数据保存为 XML 的 DTD 示例:
<!DOCTYPE automobile [
<!ENTITY header "Car Details">
<!ELEMENT make (#PCDATA)>
<!ELEMENT model (#PCDATA)>
<!ATTLIST model doors (two | four) #REQUIRED>
<!ELEMENT year (#PCDATA)>
<!ELEMENT engine (#PCDATA)>
<!ATTLIST engine transmission (manual | automatic) #REQUIRED>
]>
在上面的 DTD 中:
- 定义了一个名为 header 的实体,其值为“Car Details”。
- 像 <make>、<model>、<year> 和 <engine> 这样的元素被声明为包含已解析的字符数据(#PCDATA),这意味着它们可以接受文本。
- 属性列表(ATTLIST)定义有效的属性值。例如,model 元素的 doors 属性必须指定为“two”或“four”之一,而 engine 元素必须包含 transmission 属性,并将其设置为“manual”或“automatic”之一。
这个汽车示例是一个相对简单的 Document Type Definition。现实应用中使用的 DTD,尤其是支持大型 XML 数据集的 DTD,可能包含数百行甚至数千行。较小的 DTD 通常包含在 XML 文档中,而较大的 DTD 则会保存为单独的文件(扩展名为 .DTD),并通过 URL 引用。尽管较新的 架构语言(如 XML Schema(XSD))提供了更灵活的验证选项,但 DTD 仍然是定义 XML 文档结构的标准方式。
NOTE: HTML 2 到 4.01(1995-1999 年)使用 DTD 定义 HTML 文件中允许使用的标签和属性。HTML5 放弃了外部 DTD 引用,并以 <DOCTYPE html> 开始每个 HTML 文档。
测试你的知识