DTD 构建模块学习笔记
什么是DTD?
DTD即“文档类型定义”(Document Type Definition),用于定义XML文档的结构、元素、属性和实体等信息。它可以约束XML文档中的数据类型和元素结构,以确保XML文档的有效性。
DTD 的语法
DTD由元素、属性、实体和注释四部分组成。下面我们将对其进行详细介绍。
元素
元素是XML文档中最基本的构建单元,用于描述XML文档中的数据类型和结构。在DTD语法中,元素可使用以下方式进行声明:
xmlCopy Code<!ELEMENT 元素名 (子元素列表)>
其中,“元素名”是所声明的元素的名称,“子元素列表”是指当前元素的子元素或者为空。
属性
属性用于为元素提供附加的信息,例如元素的颜色、大小等信息。在DTD语法中,属性可使用以下方式进行声明:
xmlCopy Code<!ATTLIST 元素名 属性名 属性类型 默认值>
其中,“元素名”是所要为其添加属性的元素的名称,“属性名”是属性的名称,“属性类型”是属性的数据类型,“默认值”则是该属性的缺省值。
实体
实体是用于描述XML文档中特殊字符的结构。在DTD语法中,实体可使用以下方式进行声明:
xmlCopy Code<!ENTITY 实体名 “实体值”>
其中,“实体名”是所要声明的实体的名称,“实体值”则是该实体所代表的特殊字符或字符串。
注释
注释用于对DTD的声明进行说明和解释,不会在XML文档中显示。在DTD语法中,注释可使用以下方式进行声明:
xmlCopy Code<!-- 这里是注释内容 -->
DTD 的实例
下面是一个简单的DTD实例,用于约束一个包含姓名、性别、年龄和籍贯信息的XML文档:
xmlCopy Code<!DOCTYPE PERSON [
<!ELEMENT PERSON (NAME, SEX, AGE, PLACE)>
<!ELEMENT NAME (#PCDATA)>
<!ELEMENT SEX (#PCDATA)>
<!ELEMENT AGE (#PCDATA)>
<!ELEMENT PLACE (#PCDATA)>
<!ATTLIST PERSON ID CDATA #IMPLIED>
]>
在这个DTD中,元素“PERSON”包含四个子元素,分别为“NAME”、“SEX”、“AGE”和“PLACE”。其中,“NAME”、“SEX”、“AGE”和“PLACE”均为叶子元素,其内容由“#PCDATA”指定。同时,DTD还为“PERSON”元素添加了一个属性“ID”,其数据类型为CDATA,并且为可选项。