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:
同上,但可以有空格来分割多个值。
发表评论
- 浏览: 16155 次
- 性别:

- 来自: 杭州

- 详细资料
搜索本博客
我的相册
共 10 张
最近加入圈子
最新评论
-
虎书P8问题(1)
上面的代码有缺憾,没有考虑“如果print语句中的expList里面还有prin ...
-- by pf_miles -
如果我们不上大学,那么去 ...
我的经历很有限,我很庆幸,这让我对新东西如饥似渴. 但我年年都回答"我该报考哪所 ...
-- by pf_miles -
毕业宣告
太神奇.不懂... - -#
-- by Rooock -
如果我们不上大学,那么去 ...
怎么说呢?这个说法也很不错,但只能算是你个人有限的经历范围之内产生的一种观点而已 ...
-- by liuming -
Jboss Seam, mysql中文乱 ...
引用如果seam工程里面用到了richfaces也会出现乱码,因为richfac ...
-- by pf_miles






评论排行榜