第3章_文档类型定义(DTD).pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 文档类型定义(DTD) 了解DTD的作用掌握DTD的语法规则掌握DTD的使用方法掌握用XMLSpy2005进行DTD的编辑利用XMLSpy2005自动生成DTD 3 文档类型定义(DTD)XML文档最主要的用途是被程序处理,然而开发XML文档的时候是自由,这可能会给程序处理带来一定的麻烦!!比如说,对于“作者”这一属性,你可以定义成“author”,也可以定义成“作者”,此时程序变得不好处理,因此需要一定的规范。XML提供了一种机制——文档类型定义(Document Type Definition,DTD),并将其作为规范来对XML文挡的编写加以限制,并且大家都来遵守,这样程序处理起来就容易多了。3.1DTD的作用DTD是一套关于标记的语法规则,它说明了在XML文档中可以使用哪些标记,哪些标记具有属性,以及所使用的标记出现的顺序是什么。 通过创建DTD,能够正式而精确地定义词汇表。所有词汇表规则都包含在DTD中。凡是没有在DTD中出现的规则都不属于词汇表的一部分,因此解析器可以利用DTD验证文档标记的有效性。使用DTD时只需在文档实例中写入一条简单的声明语句,解析器就能够获取DTD,并将其中的内容与文档实例进行比较。 3.1DTD的作用XML创作工具也可以通过类似的方式使用DTD。一旦选择了DTD,创作工具就能够实施DTD中的规则,它根据DTD中说明的结构,仅允许用户在文档中添加DTD允许的元素或属性。 3.2 DTD元素 3.2.1 DTD元素的定义元素类型声明指出元素类型的名称以及该元素所允许拥有的内容。 元素类型的声明以”!ELEMENT”开头,以””结束,其格式如下: !ELEMENT 元素名称 元素内容类型3.2 DTD元素对元素声明应注意几点: (1)ELEMENT是关键字,必须大写 (2)根据元素所包含的内容,可以将元素内容类型归纳为以下六种:简单类型:元素内容只能是文本字符内容,且没有属性;包含简单内容的复杂类型:元素内容只能是文本字符内容,但可以有属性;包含复杂内容的复杂类型:元素内容可以包含子元素,也可以有属性;混合内容类型:元素内容既可以有文本字符内容,也可以包含子元素,同时还可以有属性;空内容类型:元素内容为空,但可以有属性,此类元素一般都带有属性;任何内容类型:元素内容不受限制,也可以有属性。简单类型声明简单类型表示元素只能含有文本字符,声明语法如下: !ELEMENT elementName (#PCDATA) 例如对例3-1中的“说明”元素的声明: !ELEMENT 说明 (#PCDATA)对于这个声明,以下的“说明”元素的使用都是合法的: 说明content;/说明 说明某公司部分联系人信息/说明包含简单内容的复杂类型声明带有简单内容的复杂类型的元素类型声明,采用的结构与简单类型声明的结构一样。但是在该元素上还有属性定义,即还要在DTD 中给该元素声明属性。 如例3-1中的“电话”元素的声明:!ELEMENT 电话 (#PCDATA)!ATTLIST 电话 类别 CDATA 固定电话对于这个声明,“电话”元素的以下使用是合法的: 电话 类别=”固定电话”(010电话 电话 类别=”移动电话电话包含复杂内容的复杂类型声明复杂内容表示元素内容可以包含其他元素作为该元素的子元素。复杂类型表示该元素上可以有属性。对复杂内容的声明,只需将含有简单内容的复杂类型的声明中内容模型部分改为相应的子元素即可,语法如下: !ELEMENT elementName (element1,element2,…) 对于所包含子元素,可以控制其出现的先后顺序,出现的次数,从子元素中进行选择,还可以对子元素进行分组。(1)控制子元素出现的先后顺序 在这种格式下,元素拥有哪些子元素、每个子元素出现的次数和位置都有明确的规定,在具体的文档实例中,必须严格执行。这就是子元素列表的设置方式。语法如下:!ELEMENT Element_name(child_element,child_element,……) 如:!ELEMENT 个人信息 (姓名,性别,喜好,喜好) 这个声明中,“个人信息”就可以包含两个“喜好”子元素,以下实例是合法的: 个人信息 姓名张三/姓名 性别男/性别 喜好书法/喜好 喜好音乐/喜好 /个人信息(2)控制元素出现的次数 可以利用简单的符号来控制元素出现的次数。DTD支持的可以控制元素出现次数的符号有: ?0次或1次 +1次或多次 *0次或多次,即任意次(3)从元素中进行选择 有时需要在两个或多个互斥的元素中选择其中一个。从多个元素中进行选择使用“或”符号即“|”,语法如下:!ELEMENT element_a (element_b|element_c

文档评论(0)

专业好文档 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6110200002000000

1亿VIP精品文档

相关文档