DTD对XML文档的约束包括以下几个方面:
1.DTD可以定义XML的根元素、内容和结构。
2.定义XML文档中可以接受哪些元素
3.定义XML文档中每个元素接受的合法内容,比如说是否为空,是否可以是文本,可以接受哪些子元素,和子元素出现的顺序和子元素出现的次数,以及各元素的包含规则等等。
4.定义XML文档中每个元素能接受哪些属性
5.定义XML文档中每个属性的类型,能接受哪些值,以及元素对属性的约束等。
6.定义属性的默认值和固定值。
7.定义XML文档中或DTD中可以使用哪些实体。
DTD的功能?
DTD采用了非XML的语法来描述语义约束,可以实现如下的功能:
1.通过使用DTD可以让每个XML文档带有一个有关自身的格式描述
2.不同的企业或公司等组织一致的使用某个标准的DTD来交换数据
3.应用程序也可使用某个标准的DTD验证所介绍的XML文档是否符合语义约束
4.开发者也可以使用DTD来验证所创建的XML文档
引入DTD的方式:
1 使用DTD的最简单的方式,内部DTD就是指将语义约束与XML文档的内容放在同一个XML文档中。紧跟在XML生命和处理指令之后,以<!DOCTYPE[开始,以]>结束.
2 元素内容中可以使用如下方式,描述内容的组成关系
用逗号分隔,表示内容的出现顺序必须与声明时一致。<!ELEMENT MYFILE (TITLE,AUTHOR,EMAIL)>
用|分隔,表示任选其一,即多个只能出现一个
<!ELEMENT MYFILE (TITLE|AUTHOR|EMAIL)>
3.外部DTD
外部DTD的引用:
首先创建一个dtd文件,将DTD的约束写到文件中,然后在XML文档中按以下语法格式添加:
<!DOCTYPE (根元素名称)SYSTEM “外部DTD的URL地址”>
4.公用DTD
引用公用的DTD的语法格式如下:
<!DOCTYPE (根元素名称)PUBLIC “DTD的标识名” “公用DTD的URL地址”>
在元素内容中也可以使用+、*、?等符号表示元素出现的次数:
+: 一次或多次 (书+)
?: 0次或一次 (书?)
*: 0次或多次 (书*)
也可使用圆括号( )批量设置
|