预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

DTD规范XML文档 DTD是一套关于标记的语法规则,它定义了文档的逻辑结构,规定了文档中所使用的元素、实体、元素的属性、元素与实体之间的关系。 一引入DTD(3种方式) 1内部DTD——内部的DTD紧跟在XML声明和处理指令之间。 <?xmlversion=”1.0”encoding=”GB2312”standalone=”yes”?> <!DOCTYPE根元素名称[ <!ELEMENT子元素名称(#PCDATA)> ]> 2外部DTD 外部文件类型定义存在于独立文件中,文件扩展名为“dtd”。外部DTD的了处:可以方便地被多个XML文档共享,只需要定义一份DTD文档,即可为多个XML文档定义语义约束。 <!DOCTYPE根元素名SYSTEM"DTD-URL"> SYSTEM:关键字,指该外部DTD是私有的 DTD-URL:通过URL将外部DTD引用到XML文档中,可以是绝对地址也是可以相对地址。 3公用DTD <!DOCTYPE根元素名PUBLIC"DTD-NAME““DTD-URL”> 公用DTD与外部DTD区别在于:公用DTD使用PUBLIC代替了原来的SYSTEM,并增加了DTD标识名。 二DTD文档的结构 <?xmlversion="1.0"encoding="UTF-8"?>DTD声明部分,DTD注释与XML注释的语法完全相同 <!ELEMENT…>定义一个XML元素 <!ELEMENT…> … <!ATTLIST…>定义一个XML元素定义了一个属性 <!ATTLIST…> … <!EMTITY…>定义一个实体 … <!NOTATION…>定义一个符号 ... 三DTD对元素声明【重点】 使用ELEMENT声明XML元素的语法,<!ELEMENT元素名元素内容> 注:元素声明以“<!”开始,以“>”结束; 元素声明指令“ELEMENT”为关键字,必须大写; 元素名:为当前元素指定的元素名称; 元素内容:元素名后面的内容用来指定元素的内容类型,可分为EMPTY(空)、子元素类型,混合型、ANY(任意)和#PCDATA五种类型; DTD必须定义XML文档中允许出现的所有元素。由此可见,虽然XML文档允许开发者自由扩展各种标签,但一旦使用DTD为其增加了语义约束,该XML文档就只能出现在DTD中定义过的元素。 1空元素类型——EMPTY语法:<!ELEMENT元素名EMPTY> 2任意类型的元素——ANY语法:<!ELEMENT元素名ANY> 3字符串内容的元素——#PCDATA语法:<!ELEMENT元名#PCDATA> 4混合内容元素语法:<!ELEMENT父元素名(#PCDATA|子元素1|子元素2|子元素3…..)*> 注意: #PCDATA必须放在最前面; #PCDATA和各子元素之间只能用竖线(|)分割; 子元素1,子元素2和子元素3之间的竖线(|)并不是表示互斥,而只是表示这些元素能无序的重复出现,而且次数不受限制; 不要试图在各个子元素之后添加?,*。+等表示频率的修饰符。 四定义子元素 有序的子元素互斥的子元素无序的子元素 1.有序的子元素:用英文逗号,作为子元素之间的分隔符,则子元素之间必须遵守所定义的顺序。 2.互斥的子元素:互斥的子元素表明一系列子元素之间只能出现其中一次。互斥子元素使用竖线(|)分隔,以竖线(|)分隔的多个元素只能出现其中之一。 3.无序的子元素 从理论上讲,DTD没有专门为定义无序子元素提供语法,如果希望使用DTD来表示某个元素之内可以接受无序的子元素。 注: +:表明子元素可以出现1次或多次; *:表明子元素可以出现0次或多次; ?:表明子元素可以出现0次或1次; **组合子元素:<!ELEMENT计算机书籍((书名,作者)+,价格,简要介绍)> 五DTD对属性声明【重点】 在DTD中,属性通过ATTLIST声明来进行声明。一个属性声明可以声明一个元素的多个属性。 <!ATTLIST元素名属性名属性类型[属性限定条件][默认值]> 注: “属性限定条件”和“默认值‘两部分是可选的吗,有下面几种情况: 在没有指定“元素对属性的约束”时,必须为该属性指定“默认值”; 当“元素对属性的约束”是#REQUIRED时,不能为该属性指定“默认值”; 当“元素对属性的约束”是“IMPLIED”时,不能为该属性指定“默认值”; 当“元素对属性的约束”是“FIXED”时,必须为该属性指定“默认值”; 六定义属性类型【重点】 DTD支持的属性类型 属性类型含义CDATA值为字符串数据(en1|en2|..)此值是枚举列表中的一个值ID该属性值必须是有效地标识符,在XML文档时唯一的IDREF值为另外一个元素的id属性值IDREFS值必须引用自多个已经有的ID属性值,多个ID属性值用空格隔开NM