第三章 XML文档类型定义 《XML编程原理与实例教程》电子教案.pptVIP

第三章 XML文档类型定义 《XML编程原理与实例教程》电子教案.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 XML文档类型定义 《XML编程原理与实例教程》电子教案

第三章 XML文档类型定义 3.1 文档类型定义 3.1.1 内部DTD 3.1.2 外部DTD 3.1.3 内部和外部DTD的混合使用 3.1.1 内部DTD 内部文档类型定义(internal DTD)用于与特定XML文档相关联,它必须位于这个XML文档中,它规定了文档的数据组织方式,文档必须按照该DTD的约束进行标记才能成为一篇具备有效性的文档,否则就算XML文档是良构的,但是只要它的组织方式不是依照内部DTD的要求,则也不能满足有效性的要求。 3.1.1 内部DTD !DOCTYPE FriendsInfo [ !-- FriendsInfo is the root element -- !ELEMENT FriendsInfo (friendA,friendB) !ELEMENT friendA (ID,name,age,sex,city,remark) !ELEMENT friendB (ID,name,age,sex,city,remark) !ELEMENT ID (#PCDATA) !ELEMENT name (#PCDATA) !ELEMENT age (#PCDATA) !ELEMENT sex (#PCDATA) !ELEMENT city (#PCDATA) !ELEMENT remark (#PCDATA) ] 3.1.2 外部DTD 如果每个XML文档要具备有效性就必须与一定的DTD文档相联系,但是如果每个XML文档都使用内部DTD的话,我们每创建一个文档相应的就需要编写一次DTD,这显然很不科学,也对以后管理和维护XML文档造成困难。 需要有一种机制,它可以使得多个XML文档可以共用一个文档类型定义,我们可以使用外部DTD(External DTD)文件来达到这个目标。 3.1.2 外部DTD 外部DTD有两种类型,第一种是私有型DTD,第二种是公共型的 引入外部DTD: !DOCTYPE document-element SYSTEM “URI-of-dtd” 3.1.3 内部和外部DTD的混合使用 如果多个XML文档之间存在着一部分相同的数据描述,相互间也存在部分不同的数据描述时,则如果仅仅是简单的想套用某一个外部DTD文件的做法就不能解决问题,而且在一个XML文档中,文档声明“!DOCTYPE…”语句只能出现一次,这也就意味着我们不可能采用上面两种方法的简单叠加来解决问题。 3.1.3 内部和外部DTD的混合使用 如何把内部DTD和外部DTD相结合呢? 解决的方法就是“求同存异”——尽量的将各个XML文档中相似的结构汇聚到外部DTD中进行定义,然后再针对每个文档的特点定义内部DTD。具体的形式是: !DOCTYPE document-element SYSTEM “URI-of-dtd” [ internal DTD ] 3.2 元素声明 3.2.1 元素类型声明 3.2.2#PCDATA 3.2.3空元素(EMPTY) 3.2.4子元素的声明 3.2.5 ANY 3.2.6混合内容 3.2.7 指示符的使用 3.2.1 元素类型声明 元素类型声明规定了元素的数据内容,设置了在一个文档中究竟能够出现什么类型的元素、出现几次、出现的顺序、每个元素如何取值和如何嵌套子元素等。 3.2.1 元素类型声明 元素类型声明的格式是: !ELEMENT name type 注意ELEMENT一定要大写,并且一定要遵守元素类型声明中规定的元素如何组织的规则。 例如:!ELEMENT friendsInfo (friend)中规定了它仅能包括一个子元素friend,因此不能出现两个以上的friend子元素。 3.2.2 #PCDATA 在元素的类型声明中,如果声明的数据类型是#PCDATA,则表示该元素的内容是可析的字符数据,不能在元素中包含子元素。 3.2.3 空元素(EMPTY) 如何在一个DTD中来说明一个元素是空的呢? 具体的形式是: !ELEMENT element-name EMPTY 注意EMPTY一定要大写,它表明该元素是一个空元素。 3.2.4 子元素的声明 这一类声明表示一个元素只能包含子元素,它规定了一个元素可以包含多少个子元素,每个子元素出现的相对顺序,每个子元素出现的次数以及子元素又是如何嵌套自己的子元素的。 3.2.4 子元素的声明 例1: ?xml version=1.0 encoding=UTF-8? !DOCTYPE year [ !ELEMENT year (season) !ELEMENT season EMPTY ] year season/season /year

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档