DTD文档定义,数据类型总结

一、定义标记:

1、规定子标记的标记:

<!ELEMENT 标记名称 (子标记列表)>

<!ELEMENT 标记名称 (子标记1+,子标记2*,自标记3?)>

<!ELEMENT 标记名称 (子标记1+,(子标记2|子标记3|子标记4)*,(子标记5|子标记6)?)>

2、限制只有文本数据的标记:

<!ELEMENT 标记名称 (#PCDATA)>

3、有混合内容的标记:

<!ELEMENT 标记名称 (#PCDATA|子标记1|子标记2|子标记3)*>

其中最外层括号外的“*”必不可少

4、EMPTY和ANY:

<!ELEMENT 标记名称 EMPTY>

以上定义一个空标记,或只含空字符的非空标记

<!ELEMENT 标记名称 ANY>

以上定义一个没有任何约束的标记

二、DTD的完整性:

不允许无穷嵌套:如果某个标记可以出现某个子标记,那么该子标记不能再被定义成它的父标记;XML文件中的每个标记都必须在DTD中有相应的元素进行约束。

三、标记的属性的定义:

<!ATTLIST 标记名称

属性名称1 属性类型1 默认值情况1

属性名称2 属性类型2 默认值情况2

属性名称3 属性类型3 默认值情况3

>

对于XML文件中出现的每个标记的每个属性,都必须进行如上的定义

1、默认值情况总结:

"字符串" ——标记必须有该属性,且有默认值

#IMPLIED——标记可以没有该属性,没有默认值

#REQUIRED——标记必须有该属性,没有默认值

#FIXED "字符串"——标记可以没有该属性,但一旦有,属性值就固定不变

2、属性类型总结:

CDATA:

即CHARACTER DATA,是不能含有“<”、“>”、“|”、“'”、“"”的字符串,如果想使用这些符号,应使用字符引用和实体引用。

Enumerated:

它不是关键字,是指类型定义的格式,表示该属性只能取枚举出来的值,如:

<!ATTLIST 标记名称 属性名称 (属性值1|属性值2|属性值3|属性值4) 默认值情况>

NMTOKEN:

属性值可由字母、数字、“_”、“.”、“-”组成,不能有空格。

NMTOKENS:

同上,但可以有空格。

ID:

属性值可由字母、数字、“_”、“.”、“-”组成,具有专有性,即不允许其它同类属性与自己有相同的值。其“默认值情况”只能是“#REQUIRED”和“#IMPLIED”。

IDREF:

该属性值只能取某个标记中ID类型的属性的属性值。用于通过标记的属性值来判断标记之间的关系。

IDREFS:

同上,但可以有空格来分割多个值。

你可能感兴趣的:(xml)