DTD总结

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!--  
	xml声明头,必须在第一行,注释也不能放前边。
	
	version 使用的xml文件版本,目前只有1.0,w3c于2000年发布;
	encoding 标识该xml文件以那种编码解析,如果保存时的编码集与该声明不一致,则会
	出现乱码,默认值为UTF-8。
	standalone 表示该文件是否是独立的,yes|no,yes表示是独立的。
-->

<!-- 
	DTD约束包括三个部分,元素、属性、实体的定义。
	元素标签为ELEMENT,该标签用来表现XML文件的元素之间的层级关系。
	属性标签为ATTLIST,该标签用来说明元素与属性之间的表现关系。
	实体标签为ENTITY,该标签用来简化内容输入。
 -->
<!DOCTYPE SCHOOL [
<!-- 
	语法:<!ELEMENT 元素名称 使用规则>
	使用规则只能任选其一:
		(#PCDATA):说明该元素内部出现的是普通文本
		EMPTY:说明不能有主体内容
		ANY:用于指示元素的主体内容为任意类型
		(子元素):指示标签内部的其他嵌套标签
-->

<!--  
	pcdata表示该元素内部是文本,并且没有子元素。
-->
<!ELEMENT PCDATA (#PCDATA)>

<!-- 
	该规则表示元素不能有任何内容,包括字节点等等,与PCDATA有区别为,PCDATA允许空字符。
	并且与指令和CDATA区没有关系。
-->
<!ELEMENT EMPTY EMPTY>

<!-- 
	该规则表示元素可以有任何内容。
-->
<!ELEMENT ANY ANY>

<!-- 	
	element元素不能重复定义来指定子元素,只能通过,和|来定义子元素集合。
-->
<!ELEMENT PARENT (CHILD)>
<!--ELEMENT PARENT (ABC) -->

<!-- 
	逗号分割表示子元素必须按照顺序使用。
-->
<!ELEMENT CHILDS (A,B,C)>

<!--
	|表示子元素只能有一个存在.
-->
<!ELEMENT CHILDRENS (A|B|C)>

<!--
	+表示子元素至少出现一次.
-->
<!ELEMENT CHILD_PLUS (A+)>

<!--
	*表示子元素出现任意次.
-->
<!ELEMENT CHILDRENS_MULTIPLY (A*)>

<!--
	?表示子元素出现1次或者0次.
-->
<!ELEMENT CHILDRENS_WHAT (A?)>

<!--
	默认表示子元素必须出现1次并只能出现一次.
-->
<!ELEMENT CHILDRENS_DEFAULT (A)>

<!--
	元素的子集和可以用小括号进行分组来使用统一的规则,也可以进行复杂的设计。
-->
<!ELEMENT CHILDRENS_DEFAULTA (A,(C+|D)*,(F?,G)?,(X*,Y)+)>

<!-- 
	<!ATTLIST 元素名称
			  属性名称1 属性值类型 设置说明
			  属性名称2 属性值类型 设置说明
	>
				
		属性值类型:
			CDATA:属性取值为普通字符
			ENUMERATED (DTD没有此关键字):表示枚举,只能从枚举列表中任选其一,如(鸡肉|牛肉|猪肉|鱼肉)
			ID:表示属性的取值不能重复
		设置说明:
			#REQUIRED:说明该属性为必填项
			#IMPLIED:说明属性为可选项
			#FIXED:说明属性的取值为固定值
			直接值:表示属性的取值为该默认值
-->

<!-- 
	属性表可以单行单个属性定义,也可以进行多行同时定义.
-->
<!ATTLIST PCDATA body CDATA #REQUIRED>
<!ATTLIST PCDATA game CDATA #IMPLIED>	
<!ATTLIST PCDATA 
				body CDATA #REQUIRED
				game CDATA #REQUIRED
>

<!-- 
	枚举需要用选择列表来表示,以|分割,同时默认值必须是列表内的元素。
-->
<!ATTLIST CHILDRENS_DEFAULT CASE (HardShell|Soft|NotApplicable) "HardShell">

<!-- 
	ID表示属性值不能重复,并且不能以数字和非法字符开头。
-->
<!ATTLIST CHILDRENS_DEFAULTA CASE ID "HardShell">

]>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值