第2章XML数据的底层结构—DTD.ppt
《第2章XML数据的底层结构—DTD.ppt》由会员分享,可在线阅读,更多相关《第2章XML数据的底层结构—DTD.ppt(80页珍藏版)》请在三一办公上搜索。
1、第2章 XML数据的底层结构DTD 和XML Schema,2.1 XML类型定义语言DTD 2.2 XML模式Schema,两个基本的概念:1 格式良好的 XML文档符合语法的XML文档称为结构良好的XML文档 2 有效XML文档 有效XML文档:内容结构严格遵守它自身的标记说明,能通过自身的语法检查;通过DTD验证的XML文档称为有效的XML文档。格式良好的XML文档与有效的XML文档的区别?有效地XML文档肯定是格式良好的XML文档。反过来,一个格式良好的XML文档不一定是有效的XML文档。有效的XML文档遵守DTD或Schema定义的规则。,格式良好XML:,George John R
2、eminder Dont forget the meeting!,有效(验证)的XML:,DTD 文件:,XML Schema,为什么要用DTD,有了DTD,每个XML文件可以携带一个自身格式的描述。有了DTD,不同组织的人可以使用一个通用DTD用来交换数据。应用程序可以使用一个标准DTD校验从外部世界接受来的XML数据是否有效可以使用DTD校验自己的XML数据,DTD 文档类型定义,在xml中,1描述了如何创建DTD,2如何将它与根据它的规则所编写的XML文档相关联,3并且XML处理器如何对DTD进行处理,4有了DTD就可以XML文档的结构是否正确。DTD为XML文档的编写者和处理者提供了共
3、同遵循的标准,使得XML文档有了统一的标准。,2.1 XML类型定义语言DTD(Document Type Definition),文档类型定义DTD是一套关于标记符的语法规则,它定义了可用在文档中的元素、属性和实体,以及这些内容之间的相互关系。,建立XML文档的步骤,对相关信息项进行命名,将其映射为相应的元素或属性。确定XML文档的层次结构,即各元素之间的嵌套关系。根据DTD编写相应的XML文档。,元素的定义,李亮 男 1978.2.5,例题:,2.1.1.1 元素定义,1.元素声明 DTD中所用的第一种声明是元素声明。其形式如下:例:其中,name是一个标准的XML标记的名字。conten
4、t由以下三种之一组成:,关键字EMPTY关键字ANY描述包含在本元素中的子元素的顺序和重复次数的内容模型 DTD中声明元素应注意:声明以关键字ELEMENT开头,后面是元素名和包含于元素中的子元素列表。数据类型不是DTD的一个特征。DTD中所定义的每个元素,在对应的XML文档中有且仅有一个。XML区分大小写。,元素的声明,2.元素内容类型(Element content model),元素内容通常有五种情况:EMPTY、ANY、#PCDATA、子元素型和混合型。EMPTY类型 EMPTY用于定义空元素,即该元素只可能有属性而不会有字符数据或子元素 声明空元素的语法是:例:,空模式,元素不能包含
5、任何子元素,也不能包含任何数据内容。语法:例DTD定义如下:对应的XML实例1:花花 对应的XML实例2:,ANY类型 这种类型的元素声明是:这表明该元素可以包含DTD中定义的其它任何元素或已编译的字符数据。PCDATA类型 不包含其他子元素而只包含字符数据的元素(如),用关键字#PCDATA进行定义,它代表“已编译的字符数据”(parsed character data)。PCDATA可以包含除标记以外的一切字符,包括数字、字母和符号等。被定义为包含PCDATA的元素不能包含任何其他的子元素。,AC MilanItalyPipo,子元素类型 元素可以包含一系列的子元素,子元素内容模型用于指定
6、某个元素可以包含哪些子元素.根据子元素间的关系,子元素内容模型可以有两种可能的结构:序列和选择。序列:其所有子元素必须出现且只能出现一次,并且按顺序出现。注意:序列中不能出现#PCDATA 子元素还可以包含其他子元素。,2.选择。选择不能同时包含两个以上的子元素。,混合类型 若某元素既包含子元素又包含已编译的字符数据,则该元素具有混合内容。其声明的语法如下:注意:必须以#PCDATA 开头,*必须放在括号之后,混合类型中不能出现,?,+等符号。,3.元素出现次数指示符(Element occurrence indicator)?字符 它说明元素可以出现0次或1次。*字符 它说明元素可以不出现,
7、或出现1次或多次。+字符 它说明元素必须出现至少一次,或者说可以出现一到多次,例:,正确的示例:错误的示例:,李华 男 XML Java 2006该生学习较刻苦,但成绩一般 2007该生学习改进了学习方法,成绩有较大进步,DTD,属性定义,属性用于将名字-值,对与元素进行关联。属性说明只能在开始标签和空元素标签中出现。属性声明中详细说明了与给定元素相关联的每个属性名,数据类型和缺省值。,2.1.1.2属性定义1属性声明 属性声明的语法如下:其中,ATTLIST关键字用来定义元素所具有的属性,Element_name是元素名,Attribute_name是该元素所具有的属性名,Type是属性的类
8、型,(十种类型)最常用的类型是CDATA,Default_value是属性的默认值。,声明属性时应注意以下几点:属性名称遵循的规则与有效的元素名称相同。在一个给定的元素中不能有两个属性同名。若属性值中含有双引号,则该属性值应用单引号括起来。,设置属性的类型,2属性的类型,CDATA属性类型:字符数据 我可不这么认为!为什么呢?,枚举属性类型:可从列表中选择属性类型属性也可以被描述为一组可接受的取值的列表,XML文件中对属性的赋值将从这个列表中选取一个值。各选择值通过竖线“|”分隔;关键字ENUMERATED是不出现在DTD定义中的。,属性的默认取值为“鸡肉”。,不需要引号,ID属性类型:属性值
9、能唯一标识,一个元素只能有一个ID属性。,张三 李四 libbb.org,不是有效的XML名称,IDREF/IDREFS类型:用来引用同一个文档中另一个元素的ID属性,并且这个属性已经存在。利用这种属性我们可以把两个对象建立一种关联。IDREFS是若干个ID属性的值,之间用空格分开。,张三 李四,IDREF/IDREFS,IDREFS同IDREF,是可以具有由空格分开的多个引用。,空格,NMTOKEN/NMTOKENS属性类型,名称标记是任何命名字符的混合体只能包含名称字符,不能包含空白字符(空格)所有XML名称都是名称标记,但不是所有的名称标记都是XML名称。例:文档:,八阵图 功盖三分国,
10、名成八阵图,江流石不转,遗恨失吞吴.,八阵图 功盖三分国,名成八阵图,江流石不转,遗恨失吞吴.,八阵图 功盖三分国,名成八阵图,江流石不转,遗恨失吞吴.,八阵图 功盖三分国,名成八阵图,江流石不转,遗恨失吞吴.,NOTATION类型:在记号声明中的名称 例如图象、声音、影象等等,NOTATION(续),在下面这个例子中,为电影元素指定了两种可选设备:一种是movPlayer.exe,用来播映.mov文件,另一种则用来绘制GIF图象。,ENTITY和ENTITYES属性类型,引用文档中不可解析的外部实体。把外部二进制数据链接到文档。例:,属性的缺省设置,属性声明可以给属性指定一个默认值,使得当在
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XML 数据 底层 结构 DTD

链接地址:https://www.31ppt.com/p-5635488.html