DTD可以为应用程序提供一种统一的XML文档格式。XML的可扩展性虽然提供了很高的灵活性,但有时需要文档格式统一。例如,为了使一部书易于排版,出版商会要求作者遵循一定的格式。如果作者用XML写作,那么出版商就能很容易地检查出作者是否遵守了DTD定义的预定格式,甚至找出作者在哪里以及怎样偏离了格式。
DTD有助于数据交流和共享。如果指定DTD,依靠清晰、准确的语法定义文档,程序员就不必为了理解XML文档而与文档的设计者面对面地交流。这些规则也形成了一种可靠的错误监测机制,程序员或解析器可以由此查找可能的错误。
DTD可以使用户脱离实际数据就能知道文档的逻辑结构。这意味着可以将不同的样式和格式加在基本结构上,而对基本结构毫无损害。
DTD可以验证数据的有效性。一个合法的文档必须符合DTD指定的约束条件,而且它的基本元素必须是在文档类型声明中指定的。只有符合DTD规则的XML文档才是有效的文档。
DTD可以使用户脱离实际数据就能知道文档的逻辑结构。这意味着可以将不同的样式和格式加在基本结构上,而对基本结构毫无损害。
DTD可以验证数据的有效性。一个合法的文档必须符合DTD指定的约束条件,而且它的基本元素必须是在文档类型声明中指定的。只有符合DTD规则的XML文档才是有效的文档。
DTD的基本结构
XML文档由元素和相应的属性组成。虽然我们还可以定义其他项,但元素和属性是组成XML文档的两个主要的要素。此外,元素的内容是通过其他元素或XML标准中规定的基本类型进行定义的。DTD必须能够定义文档中的所有元素、元素可以设置的属性以及元素之间的关系。下面通过一个案例来说明DTD文档的基本结构。
XML文档由元素和相应的属性组成。虽然我们还可以定义其他项,但元素和属性是组成XML文档的两个主要的要素。此外,元素的内容是通过其他元素或XML标准中规定的基本类型进行定义的。DTD必须能够定义文档中的所有元素、元素可以设置的属性以及元素之间的关系。下面通过一个案例来说明DTD文档的基本结构。
DTD文档---总格式:
<!DOCTYPE 根元素[
元素、属性、实体的定义
]>
元素的定义:
<!ELEMENT 元素名字 (原始类型)>
元素类型:
子元素类型:
#PCDATA:字符串
EMPTY:空元素 注意:没括号
ANY:表示任何字符数据或者定义的子元素类型
#PCDATA和ANY的区别:
ANY表示任何字符数据或者子元素类型 #PCDATA只能表示字符串
混合类型:(#PCDATA/子类型)
如:<!ELEMENT students (#PCDATA|student)*> *
就可以在根标记后 添加字符串 <students> aa
?:表示该元素可以出现0次或者1次
+:表示该元素可以出现1次或者多次
*:表示该元素可以任意次
,:表示顺序出现
():分组
|:表示两者选其一
没有任何符号修饰表示必须出现并且只能出现一次