1、DTD的作用
DTD是XML的型,列出了XML中的元素有哪些、元素间的关系、元素可以有哪些内容,元素的属性也有哪些。DTD实质说明的是元素间的关系,也就是类之间的关系。是一棵树状结构的说明,与XML相似。
DTD的职责只负责对文档的结构进行规范,真正的验证工作由应用程序执行。所以XML不是一门处理语言,而是一门描述数据的语言。
DTD的关键字是面向对象中的Attribute属性,是对各种类型的一个说明。
DTD是对要描述的XML所有的关键字的一个定义,相当于自定义了关键字(XML的元素的标签结构)
2、DTD的内容:
(1)DTD的引用
DTD可以在XML的内部,必须要有DOCTYPE关键字进行引导。在外部则要进行相关的引用,分为系统标识符和公共标识符。采用多种方式来参照DTD。
<!DOCTYPE XXX根元素 SYSTEM “路径” [内部定义]>
<!DOCTYPE XXX根元素 PUBLIC “FPI的定义”“文件名称”>
(2)元素的声明
元素的内容模型 元素内容、混合内容、空内容、任意内容。
元素内容:子元素、顺序、选择。(,,)(|)
混合内容与元素内容形似。(PCDATA|元素)
空 <!ELEMENT 元素 EMPTY>
任意<!ELEMENT 元素 ANY>
(3)属性声明
<!ATTLIST 元素名 属性名 属性类型 属性值声明>
属性类型:对属性能够取的值进行限制。特别强调,在定义的时候是对属性的类型限制,但在使用的时候却不一样。
ID类型,则属性在使用的时候必须保证唯一性。
定义一个属性为IDREF类型,则此属性在用的时候要参考元素属性类型为ID的属性名称。
标识作用NMTOKEN
枚举类型的属性
实体(配合实体的定义使用,实体在属性中存在的时候)
属性值的取值方式:可以是默认、固定,必须、隐含。是对属性是否存在的进行限制。可以理解为属性的值是多少。
(4)实体引用(在XML中使用这些在DTD中定义的实体)
内置实体(5个标准的)字符实体(字符直接引用&)普通实体(一段内容的替换通常XML引用DTD--DTD引用文本文件无符号 &)参数实体(DTD的定义中进行替换%)