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

  • 3
  • 0
  • 约3.03千字
  • 约 37页
  • 2018-05-29 发布于天津
  • 举报

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

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

* * 第三章 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.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 3.2.4 子元素的声明 例2: !DOCTYPE year [ !ELEMENT year (spring,summer,autumn,winter) !ELEMENT spring EMPTY !ELEMENT summer EMPTY !ELEMENT autumn EMPTY !ELEMENT winter EMPTY ] 3.2.4 子元素的声明 例3: !ELEMENT year (spring,summer,autumn,winter) !ELEMENT spring (Jan,Feb,Ma

文档评论(0)

1亿VIP精品文档

相关文档