DTD是xml的校验文件,现在xml的应用地方很多,什么框架的配置文件,数据交换文件,webservice。所以要想弄懂这些,研究一下DTD是必要的。在此我总结了一下,希望能对大家有所帮助。
DTD全称Document Type Definition。一个DTD文档包括元素定义规则、元素之间的关系、属性的定义规则和可使用的实体或符号规则。
DTD声明<!DOCTYPE root[
<!-- 子元素 --> ]>
<!-- 文件体 -->
DOCTYPE即document type(文档定义)。DOCTYPE必须放在文档顶部,在所有代码和表示之上,DOCTYPE是必不可少的关键组成部分。
元素定义:<!ELEMENT 元素名 元素类型>
DTD元素类型包括:ANY(元素中可以包含任何DTD中定义的内容);
EMPTY(元素能包含任何内容,但可以包含属性);
#PCDATA(元素可以包含任何字符数据,但是不可以包含任何子元素);
元素类型中可以使用的字符即含义:
“()”用来给元素分组;
“|”在列出的元素中选择一个;
“+”改元素最少出现一次,可以出现多次(1,n);
“*”改元素可以出现0次或多次(0,n);
“?”改元素可以出现,但只能出现一次(0,1);
“,”用于定义元素出现的顺序;
属性定义: <!ATTLIST 元素名 属性名 类型 属性特征>
元素的类型包括以下几种:
NMTOKENS属性类型
CDATA属性类型
NMTOKEN属性类型
IDREF属性类型
IDREFS属性类型
Enumerated(枚举型)属性类型
NOTATION属性类型
ENTITY属性类型
ENTITIES属性类型
Enumerated不是关键字
ID属性类型
CDATA属性类型
CDATA类型表示属性值可以是任意的字符、数字、符号等。
元素的属性特征包括:
“#REQUIRED”元素中该属性必须存在
“#IMPLIED” 元素中该属性可以忽略
“#FIXED value”元素中改属性存在且值为value指定的值
“default value” 改属性的默认值为value
到此DTD的基础知识就结束,希望对大家学习DTD有帮助。给一个例子供大家分析DTD
<!ELEMENT NEWSPAPER (ARTICLE+)>
<!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)>
<!ELEMENT HEADLINE (#PCDATA)>
<!ELEMENT BYLINE (#PCDATA)>
<!ELEMENT LEAD (#PCDATA)>
<!ELEMENT BODY (#PCDATA)>
<!ELEMENT NOTES (#PCDATA)>
<!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED>
<!ATTLIST ARTICLE EDITOR CDATA #IMPLIED>
<!ATTLIST ARTICLE DATE CDATA #IMPLIED>
<!ATTLIST ARTICLE EDITION CDATA #IMPLIED>