第3章有效的XML文件ppt课件_第1页
第3章有效的XML文件ppt课件_第2页
第3章有效的XML文件ppt课件_第3页
第3章有效的XML文件ppt课件_第4页
第3章有效的XML文件ppt课件_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-4-171第第3章有效的章有效的XML文件文件章节构造章节构造l 3.1有效有效XML文件的定义文件的定义l 3.2如何检查有效性如何检查有效性l 3.3DTD中的元素中的元素l 3.4DTD的完好性的完好性l 3.5DTD中的属性约束列表中的属性约束列表l 3.6内部内部DTDl eg. 3-1.xml 国贸大厦国贸大厦 08:30至至18:30 华联商场华联商场 07:30至至22:30 3-2.xml 国贸大厦国贸大厦 08:30 18:30 华联商场华联商场 07:30 22:30 DTD与与XML文档文档l 为什么需求文档类型定义为什么需求文档类型定义(DTD) ?l XM

2、L的中心是运用标志组织数据之构造,以便让信息的交的中心是运用标志组织数据之构造,以便让信息的交互更加方便。互更加方便。 l 规范性仅仅是规范性仅仅是XML言语的根本语法,没有对言语的根本语法,没有对XML文件怎文件怎样组织数据进展详细的限制。样组织数据进展详细的限制。l 在某些系统中,假设不对在某些系统中,假设不对XML怎样组织数据进展合理的约怎样组织数据进展合理的约束,那么对同一问题编写的束,那么对同一问题编写的XML文件,在数据组织构造上文件,在数据组织构造上就能够有很大的不同就能够有很大的不同 。l 如何根据需求对如何根据需求对XML文档进展限制文档进展限制? 如何公布一个如何公布一个X

3、ML文文档的构造档的构造? 如何重用如何重用XML文档的数据文档的数据? DTD与与XML文档文档l 对对XML的数据构造进展限制有两种方式:运用文档类型定的数据构造进展限制有两种方式:运用文档类型定义义DTDDocument Type Definition和和XML Schema方式。方式。l 一个规范的一个规范的XML文件假设和某个文件假设和某个DTD文件相关联,并遵文件相关联,并遵守该守该DTD文件规定的约束条件,就称之为有效的文件规定的约束条件,就称之为有效的XML文件。文件。 DTD与与XML文档文档l 什么是文档类型定义什么是文档类型定义(DTD) ?lDTD描画了一个标志言语的语

4、法和词汇表,也就是定义描画了一个标志言语的语法和词汇表,也就是定义了可以在了可以在XML文档中出现的元素、这些元素出现的次序、它文档中出现的元素、这些元素出现的次序、它们可以如何相互嵌套以及们可以如何相互嵌套以及XML文档构造的其它详细信息。文档构造的其它详细信息。l DTD引入有效的引入有效的XML文档文档l一个一个“有效的有效的 XML文档既是文档既是“格式良好的,又必需遵格式良好的,又必需遵守文档类型描画守文档类型描画DTD中定义的种种规定。中定义的种种规定。l DTD:Document Type Definition内部内部DTDl 内部内部DTD:是在:是在XML文档的内部分参与一个

5、文档的内部分参与一个DTD描画。描画。参与的位置是紧接在参与的位置是紧接在XML处置指示之后。处置指示之后。l 语法:语法:l 定义了一个文件,它以定义了一个文件,它以DOCTYPE中规定的根元素名作为中规定的根元素名作为其根元素的名字。其根元素的名字。XML数据数据l eg.3-3.xml!DOCTYPE 联络人列表联络人列表 张三张三 001 A公司公司 zhangaaa (010)62345678 五街五街1234号号 北京市北京市 北京北京 李四李四 002 B公司公司 (021)87654321 南京路南京路9876号号 上海上海 上海上海 外部外部DTDl 外部

6、外部DTD: 将将DTD置于置于XML文档之外的文件中。文档之外的文件中。l 主要用于援用一个作者或组织所编写的众多主要用于援用一个作者或组织所编写的众多XML文件中通文件中通用的用的DTD。l 语法:语法:XML数据数据l?xml version = 1.0 encoding=GB2312 standalone = no?l!DOCTYPE SYSTEM 3-4.dtdl l l 张三张三/ l 001 001l AA公司公司/ l zhangaaa zhangaaal (010)62345678 (010)62345678l l 五街五街12341234号号/ l 北京市北京市/ l 北京

7、北京/ l / l / l l 李四李四/ l 002 002l BB公司公司/ l l (021)87654321 (021)87654321l l 南京路南京路98769876号号/ l 上海上海/ l 上海上海/ l / l / l/ 3-4.dtd:3-4.dtd:!ELEMENT !ELEMENT )!ELEMENT )!ELEMENT (#PCDATA)!ELEMENT (#PCDATA)!ELEMENT (#PCDATA)!ELEMENT (#PCDATA)!ELEMENT (#PCDATA)eg.3-4.xml公用公用DTDl 公用公用DT

8、D:是一个由权威机构制定的,提供应特定行业或公众运用的外部是一个由权威机构制定的,提供应特定行业或公众运用的外部DTD。l 援用公共援用公共DTD的方式为:的方式为:ll 例:例:l 由多个双斜线组成。由多个双斜线组成。l 第一部分是一切者,第二部分是文本标识符,第三部分是文件运用的言语代第一部分是一切者,第二部分是文本标识符,第三部分是文件运用的言语代码描画符。假设还有其它的描画那么放在第四或第五部分。码描画符。假设还有其它的描画那么放在第四或第五部分。l 假设一切者没有注册,那么第一部分为一连字符,其后是开发该假设一切者没有注册,那么第一部分为一连字符,其后是开发该DTD的公司的公司称号,

9、再其后是文本标识符,之后是言语代码描画符。称号,再其后是文本标识符,之后是言语代码描画符。例:例: “-/W3C/DTD HTML 4.0/EN; “ISO 12083:1994/DTD Math/EN定义元素及其后代定义元素及其后代l 元素的声明:元素的声明:l 阐明了每个阐明了每个XML文件中能够存在的元素,给出了元素的名文件中能够存在的元素,给出了元素的名字,而且给出了元素的详细类型。字,而且给出了元素的详细类型。l 一个一个XML元素可以为空,也可以是一段纯文本,还可以有元素可以为空,也可以是一段纯文本,还可以有假设干个子元素,而这些子元素同时又可以有它们的子元假设干个子元素,而这些子

10、元素同时又可以有它们的子元素。素。l DTD正是经过元素之间的父子关系,描画了整个文件的构正是经过元素之间的父子关系,描画了整个文件的构造关系。造关系。l 元素的命名方式为:元素的命名方式为:l XML文档内容是一树状构造,所以文档内容是一树状构造,所以DTD中的元素声明包括中的元素声明包括如下两种:如下两种:l 叶元素声明叶元素声明l 枝干元素声明枝干元素声明叶元素叶元素l 叶元素:标志只包含有文本数据叶元素:标志只包含有文本数据l 声明语法:声明语法:l l eg. l DTD范例:范例:XML范例:范例: 张三张三 李逵李逵 男男 枝干元素声明枝干元素声明l DTD枝干元素声明语法:枝干

11、元素声明语法:l l l l 阐明:阐明:l 子元素子元素1等表示当前元素的下一级子元素等表示当前元素的下一级子元素l 子元素间用子元素间用“,分割开来。用,分割开来。用“,分割的子元素是有顺,分割的子元素是有顺序的,输入时必需按定义顺序输入。序的,输入时必需按定义顺序输入。l 一个元素在同一时间有且只能有一次出现一个元素在同一时间有且只能有一次出现leg DTD范例范例l!DOCTYPE PersonalData lllln eg XML范例范例n nLarryn89342324n cityn l eg3-5.xmll l !DOCTYPE 联络人列表联络人列表 l l .l l这个这个DT

12、D定义了一个定义了一个XML文件,它只需一个根元素,名为文件,它只需一个根元素,名为“联络人联络人列表,这个元素可以有任何类型的子元素,也可以是纯文本,还可以为列表,这个元素可以有任何类型的子元素,也可以是纯文本,还可以为空。空。l 有效的有效的XML文档中的元素都应在文档中的元素都应在DTD中声明。中声明。eg.3-6-1.xml!DOCTYPE 联络人列表联络人列表 张三张三Xl eg3-6-2.xml!DOCTYPE 联络人列表联络人列表 张三张三此例定义了一个此例定义了一个XML文件,它的根元素名为文件,它的根元素名为“联络人列表。联络人列表。“联络人列表中可以包含任何纯联络人列表中可

13、以包含任何纯文本数据,也可以含有子元素。文本数据,也可以含有子元素。“联络人列表中可以包含子元素联络人列表中可以包含子元素“联络人,也可以直接包含联络人,也可以直接包含子元素子元素“姓名;姓名;“联络人元素又可以包含本人的子元素,名为联络人元素又可以包含本人的子元素,名为“姓名;而姓名;而“姓名那么只能姓名那么只能包含纯文本数据,即包含纯文本数据,即#PCDATA。 ANY元素元素l 一切元素都被设为自在的顺序,同时元素的数量也不限定,一切元素都被设为自在的顺序,同时元素的数量也不限定,可以运用可以运用DTD中定义的一切元素为其子元素。中定义的一切元素为其子元素。l 语法:语法:l l l l

14、eg3-7 DTD范例范例l!DOCTYPE PersonalData l l l l l ln eg3-7 XML范例范例n nLarryn6388000n Johnn Zhengzhou Cityn 元素元素l 留意:留意: l 除了根元素外,在定义其它元素时运用关键字除了根元素外,在定义其它元素时运用关键字ANY是不好是不好的习惯。的习惯。l 在在DTD中定义元素时,顺序是无关紧要的。中定义元素时,顺序是无关紧要的。l 不能对不同的元素运用一样的元素名。不能对不同的元素运用一样的元素名。l 定义元素及其子元素:定义元素及其子元素:lDTD虽然要求严厉,但也有它的灵敏性。虽然要求严厉,但也

15、有它的灵敏性。l 运用正那么表达式,我们就可以描画父元素与子元素之间运用正那么表达式,我们就可以描画父元素与子元素之间非常复杂的关系。非常复杂的关系。l 下面就是描画子元素的正那么式:下面就是描画子元素的正那么式:描画子元素的正那么式描画子元素的正那么式要求顺序的子元素要求顺序的子元素l 要求顺序的子元素要求顺序的子元素l 语法:语法:lll eg.张三张三zhangaaazhangaaa张三张三反复元素反复元素(+) l 反复元素反复元素 l DTD定义定义(+:至少出现一次至少出现一次)l 语法:语法:l l l eg.l 张三张三 zhangaaa zhanghotmail zhangy

16、ahoo出现恣意次出现恣意次*l 元素出现恣意次元素出现恣意次l *:出现恣意次:出现恣意次l 语法:语法:l l l eg. 张三张三 zhangaaa zhanghotmail zhangyahoo 张三张三 可选子元素?可选子元素?l 可选子元素可选子元素l ?:阐明一个子元素是可选的,可出现,也可不出现?:阐明一个子元素是可选的,可出现,也可不出现l 语法:语法:l l l eg. 张三张三 五街五街1234号号 北京市北京市 张三张三 成组元素成组元素l 成组元素成组元素:一组元素放在括号内一组元素放在括号内l DTD定义定义(元素组元素组)l 语法:语法:l l l l eg.3-

17、7.xmll eg.3-7.xml成组元素成组元素:ll!DOCTYPE 联络人联络人 llllll张三张三lzhangaaal李四李四l王五王五lOR或或|l |:描画了一个:描画了一个OR操作。操作。l 语法:语法:l l l l “|具有排他性的或运算符,从多个选项中选取一个且只具有排他性的或运算符,从多个选项中选取一个且只能选取一个出现能选取一个出现l eg.3-8.xmll eg.3-8.xml!DOCTYPE 联络人联络人 张三张三zhangaaa张三张三63887291l 留意:留意:l 在一个组中,只允许运用一种衔接符例如在一个组中,

18、只允许运用一种衔接符例如“,或,或“|。l eg.下面这样定义的下面这样定义的DTD是不合法的:是不合法的:l元素按内容分类元素按内容分类元素按内容可分为四类:元素按内容可分为四类:ANYANY元素元素#PCDATA#PCDATA元素元素空元素空元素混合元素混合元素混合元素混合元素l 混合元素:在一个元素中能够包含子元素,也能够包含纯混合元素:在一个元素中能够包含子元素,也能够包含纯文本。把这种元素称为混合内容的元素。文本。把这种元素称为混合内容的元素。l 语法:语法:l l eg.3-9.xml!DOCTYPE 联络人列表联络人列表 张三张三(010)62345678zhangaaa这是关于

19、张三的信息这是关于张三的信息空元素空元素l 空元素:在一个元素中,既不包含任何子元素,也不包含空元素:在一个元素中,既不包含任何子元素,也不包含纯文本。纯文本。l 语法:语法:l l eg.!DOCTYPE HR PCDATA类型类型l 只包含字符数据的元素。只包含字符数据的元素。l 它代表它代表“已编译的字符数据已编译的字符数据parsed character data。l PCDATA可以包含除保管字以外的一切字符,包括数字、可以包含除保管字以外的一切字符,包括数字、字母和符号等。被定义为包含字母和符号等。被定义为包含PCDATA的元素不能包含任的元素不能包含任何其他的子元素。何其他的子元

20、素。l 语法:语法:l l eg. 自我引见的有效文档自我引见的有效文档!DOCTYPE PersonalData ZhangSan 63880000 66668888 zhengzhou City元素的属性元素的属性l 在在DTD中定义属性时,格式:中定义属性时,格式:l l 其中:其中:l 元素名:是属性所属的元素的名字;元素名:是属性所属的元素的名字;l 属性名:是属性的命名;属性名:是属性的命名;l 属性类型:是用来指定该属性是属于十个有效属性类型中属性类型:是用来指定该属性是属于十个有效属性类型中的哪种类型。的哪种类型。l 默许值情况:是在没有特别阐明属性时的取值,可定义默许值情况:

21、是在没有特别阐明属性时的取值,可定义也可不定义也可不定义l 留意:留意:ATTLIST是一个属性的列表,它可以包含很多属性是一个属性的列表,它可以包含很多属性的定义。的定义。l eg. 元素的属性元素的属性属性缺省值属性缺省值 在在DTD中定义的属性的缺省值可以分为以下四类:中定义的属性的缺省值可以分为以下四类: 必需赋值的属性必需赋值的属性关键字关键字REQUIRED阐明阐明XML文件中必需为这个属性给出一个属性值。文件中必需为这个属性给出一个属性值。属性值可有可无的属性属性值可有可无的属性当运用当运用IMPLIED关键字时,不强行要求在关键字时,不强行要求在XML文件中给该属性赋值,也文件

22、中给该属性赋值,也无须在无须在DTD中为该属性提供缺省值。中为该属性提供缺省值。 固定取值的属性固定取值的属性还有一种特殊情况,他需求为一个特定的属性提供一个缺省值,并且不希还有一种特殊情况,他需求为一个特定的属性提供一个缺省值,并且不希望望XML文件的编写者把他的缺省值替代掉。这时候,就应该运用文件的编写者把他的缺省值替代掉。这时候,就应该运用FIXED关键字,同时为该属性提供一个缺省值。关键字,同时为该属性提供一个缺省值。 定义缺省值的属性定义缺省值的属性假设不运用上面任何一种关键字的话,就需求在假设不运用上面任何一种关键字的话,就需求在DTD中为它提供一个缺中为它提供一个缺省值。在省值。

23、在XML文件中可以为该属性给出新的属性值来覆盖事先定义的缺文件中可以为该属性给出新的属性值来覆盖事先定义的缺省值,也可以不另外给出属性值,默以为采用省值,也可以不另外给出属性值,默以为采用DTD中给出的缺省值。中给出的缺省值。定义元素的属性定义元素的属性(3)下面给出一个详细的例子:下面给出一个详细的例子:属性类型属性类型一个元素的属性可以为以下十种类型中的恣意一种:一个元素的属性可以为以下十种类型中的恣意一种: 1.CDATA 6.ENTITY2.Enumerated 7.ENTITIES3.ID 8.NMTOKEN4.IDREF 9.NMTOKENS5.IDREFS 10.NOTATION

24、定义元素的属性定义元素的属性(4)CDATA类型类型 CDATA指的是纯文本,即由字符、符号指的是纯文本,即由字符、符号“&、小于号、小于号“和引号和引号“组成的字符串。当然,应该运用实体组成的字符串。当然,应该运用实体&替代替代“&,<替代替代“,&quot替代替代“。请看下面这个关于剧本的例子:请看下面这个关于剧本的例子:!DOCTYPE 剧本剧本 我可不这么以为!我可不这么以为! 为什么呢?为什么呢?4-3 定义元素的属性定义元素的属性(5)枚举类型枚举类型ENUMERATED 属性也可以被描画为一组可接受的取值的列表,属性也可以被描

25、画为一组可接受的取值的列表,XML文件中对属性的赋文件中对属性的赋值将从这个列表中选取一个值。这类属性属于枚举类型值将从这个列表中选取一个值。这类属性属于枚举类型ENUMERATED,不过,关键字不过,关键字ENUMERATED是不出如今是不出如今DTD定义中的。定义中的。!DOCTYPE 购物篮购物篮 留意,在上面这个例子中,给属性留意,在上面这个例子中,给属性“类型定义的缺省值是类型定义的缺省值是“鸡肉,所以鸡肉,所以“购购物篮中的第三个元素的物篮中的第三个元素的“类型属性取值为类型属性取值为“鸡肉。鸡肉。4-3 定义元素的属性定义元素的属性(6)ID类型类型 ID是用属性值的方式为文件中

26、的某个元素定义独一标识的方法。是用属性值的方式为文件中的某个元素定义独一标识的方法。ID的值必需是一的值必需是一个有效的个有效的XML称号,不要给称号,不要给ID类型的属性事先指定缺省值,更不能运用类型的属性事先指定缺省值,更不能运用FIXED型的缺省值。型的缺省值。!DOCTYPE 联络人列表联络人列表 张三张三 zhangaaa 李四李四 4-3 定义元素的属性定义元素的属性(7)IDREF类型类型 IDREF类型允许一个元素的属性运用文件中的另一个元素的类型允许一个元素的属性运用文件中的另一个元素的ID标识值作为该属标识值作为该属性的取值。例如下面的例子:性的取值。例

27、如下面的例子:!DOCTYPE 联络人列表联络人列表 张三张三 zhangaaa 李四李四 liaaa 4-3 定义元素的属性定义元素的属性(8)NMTOKEN 和和 NMTOKENS 类型类型 NMTOKEN 和和 NMTOKENS 是诸多属性类型中面向处置程序的又是诸多属性类型中面向处置程序的又一个类型。这两个类型用于指示一个有效的一个类型。这两个类型用于指示一个有效的XML称号。例如可以经过称号。例如可以经过NMTOKEN 类型的属性来访问一个类型的属性来访问一个JAVA类等等。类等等。关于元素的定义:关于元素的定义: 授权用户授权用户 NMTOKENS #IMPLIEDXML片段:片段

28、:blah blah blah4-3 定义元素的属性定义元素的属性(9)NOTATION类型类型 NOTATION类型允许属性值为一个类型允许属性值为一个DTD中声明的符号,这个类型对于中声明的符号,这个类型对于运用非运用非XML格式的数据非常有用。格式的数据非常有用。现实世界中存在着很多无法或不易用现实世界中存在着很多无法或不易用XML格式组织的数据,例如图象、格式组织的数据,例如图象、声音、影像等等。对于这些数据,声音、影像等等。对于这些数据,XML运用程序经常并不提供直接的运运用程序经常并不提供直接的运用支持。经过为它们设定用支持。经过为它们设定NOTATION类型的属性,可以向运用程序

29、指定类型的属性,可以向运用程序指定一个外部的处置程序。例如,当他想要为一个给定的文件类型指定一个演一个外部的处置程序。例如,当他想要为一个给定的文件类型指定一个演示设备时,可以用示设备时,可以用NOTATION类型的属性作为触发。类型的属性作为触发。要运用要运用NOTATION类型作为属性的类型,首先要在类型作为属性的类型,首先要在DTD中为可选用的中为可选用的记号作出定义。定义的方式有两种,一种是运用记号作出定义。定义的方式有两种,一种是运用MIME类型,方式是:类型,方式是:再有一种是运用一个再有一种是运用一个URL途径,指定一个处置程序的途径。途径,指定一个处置程序的途径。4-3 定义元素的属性定义元素的属性(10)在下面这个例子中,为在下面这个例子中,为电影电影元素指定了两种可选设备:一元素指定了两种可选设备:一种是种是movPlayer.exe,用来播映,用来播映.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论