XML基础教程第3章课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《XML基础教程第3章课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XML 基础教程 课件
- 资源描述:
-
1、第第3 3章章 文档类型定义文档类型定义熟练掌握:熟练掌握:DTDDTD元素的声明语法及对不同元素类型的声明元素的声明语法及对不同元素类型的声明方法;方法;DTDDTD属性的类型及属性的类型及DTDDTD属性的声明。属性的声明。掌握:掌握:内部内部DTD和外部和外部DTD的概念。的概念。了解:了解:了解了解DTD实体的声明以及实体的声明以及DTD属性的类型。属性的类型。XML XML是是SGMLSGML的子集,在的子集,在XMLXML文档元素、元素属性、实体等文档元素、元素属性、实体等内容的声明和定义方面,沿用内容的声明和定义方面,沿用SGMLSGML的文档类型定义来描述和的文档类型定义来描述
2、和定义定义XMLXML文档内容变得顺理成章的事情。文档内容变得顺理成章的事情。3.1 DTD3.1 DTD概述概述 SGML SGML是通过一个独立的描述性文本文件来定义是通过一个独立的描述性文本文件来定义SGMLSGML中出中出现的所有元素类型、元素属性、字符集、实体、现的所有元素类型、元素属性、字符集、实体、PCDATAPCDATA和和CDATACDATA等,等,SGMLSGML文档中的这些内容结构及其组合称为模式,文档中的这些内容结构及其组合称为模式,这个描述性文本文件称为文档类型定义(这个描述性文本文件称为文档类型定义(document type document type defin
3、itiondefinition,DTDDTD)。)。DTD DTD明确地说明了明确地说明了SGMLSGML文档的元素、元素类型、内容模文档的元素、元素类型、内容模型,还为它们的结构和它们与其他元素的关系定义了规则。型,还为它们的结构和它们与其他元素的关系定义了规则。3.1.1 DTD3.1.1 DTD简介简介 DTD DTD是用来描述是用来描述XMLXML文档结构的一种常见方法,用来定义文文档结构的一种常见方法,用来定义文档的逻辑结构。一个有效的档的逻辑结构。一个有效的XMLXML文档应该是一个符合相应文档应该是一个符合相应DTDDTD验验证的证的XMLXML文档。有了统一制定的文档。有了统一
4、制定的DTDDTD,XMLXML解析器就能够依据解析器就能够依据DTDDTD来验证这类来验证这类XMLXML文档的结构和数据是否正确有效,并能正确解文档的结构和数据是否正确有效,并能正确解析。析。除此之外,除此之外,DTDDTD还有以下作用:还有以下作用:为应用程序员提供为应用程序员提供XML文档逻辑文档逻辑结构的参考。结构的参考。4能够保证在一定范围内,交流和共享能够保证在一定范围内,交流和共享XML文档数据。文档数据。3统一某行业或组织联盟的统一某行业或组织联盟的XML文档的格式文档的格式和结构。和结构。2用来验证用来验证XML文档数据的有效性。文档数据的有效性。13.1.2 DTD3.1
5、.2 DTD的基本结构的基本结构 DTD DTD用来对用来对XMLXML文档所使用的元素、元素间的关系、文档所使用的元素、元素间的关系、元素可用的属性以及可使用的实体等定义规则。实际元素可用的属性以及可使用的实体等定义规则。实际上,上,DTDDTD是由若干条元素、属性、实体等的定义和声明是由若干条元素、属性、实体等的定义和声明语句组成的。语句组成的。一个内部包含一个内部包含DTDDTD的的XMLXML完整文档。完整文档。!DOCTYPE 书目书目 C语言程序设计(第三版)语言程序设计(第三版)谭浩强谭浩强计算机网络(第四版)计算机网络(第四版)谢希仁谢希仁属性列表声属性列表声明语句。明语句。D
6、TD声明语句。声明语句。元素类型声明语句。元素类型声明语句。实体声明语实体声明语句。句。12345注释。注释。通过示例可以看出,一个通过示例可以看出,一个DTDDTD的基本结构包括以下几部分:的基本结构包括以下几部分:示例在示例在XML WriterXML Writer中的有效性验证中的有效性验证 一个合法有效的一个合法有效的XMLXML文档所使用的每一种元素,都必文档所使用的每一种元素,都必须在相应的须在相应的DTDDTD中明确声明,声明的内容包括元素的名称、中明确声明,声明的内容包括元素的名称、可能包含的内容、元素的数据类型、元素允许具有的子元可能包含的内容、元素的数据类型、元素允许具有的
7、子元素及子元素出现的顺序以及元素所具有的属性等。在素及子元素出现的顺序以及元素所具有的属性等。在DTDDTD中中精确控制元素所包含的内容可以控制一个有效精确控制元素所包含的内容可以控制一个有效XMLXML文档的逻文档的逻辑结构。辑结构。3.2 3.2 元素声明元素声明3.2.1 3.2.1 元素声明的语法元素声明的语法在在DTDDTD中,元素声明的语法格式如下:中,元素声明的语法格式如下:!ELEMENT!ELEMENT 元素名称元素名称 元素内容模型元素内容模型 其中的参数说明如下:其中的参数说明如下:!:表示一条元素声明语句的结束。表示一条元素声明语句的结束。举例说明合法的元素声明,如:举
8、例说明合法的元素声明,如:!ELEMENT(#PCDATA)!ELEMENT(#PCDATA)!ELEMENT(#PCDATA)!ELEMENT(#PCDATA)!ELEMENT)!ELEMENT)(1 1)例子共定义了标题、型号、价格和品牌)例子共定义了标题、型号、价格和品牌4 4个基本元素,个基本元素,也就是不包含其他元素的元素,这些元素的内容均为字符数据,也就是不包含其他元素的元素,这些元素的内容均为字符数据,由由“(#PCDATA)”(#PCDATA)”指明;其中指明;其中PCDATAPCDATA为可解析数据。为可解析数据。(2 2)语句)语句“!ELEMENT”)”定义定义了一个名为
9、了一个名为 的复合元素,包含的复合元素,包含 、和和 33个子元素,而且子元素出现的顺序必须是个子元素,而且子元素出现的顺序必须是 子元素在最子元素在最前,接着是前,接着是 子元素,最后是子元素,最后是 子元素。子元素。(3 3)语句)语句“!ELEMENT”)”定义定义了一个名为了一个名为 的复合元素,其包含的复合元素,其包含 和和 两个子元素,两个子元素,子元素必须出现在子元素必须出现在 子元素之前。子元素之前。(4 4)若由上述语句组成的)若由上述语句组成的DTDDTD所定义的元素都直接或间接地所定义的元素都直接或间接地包含在元素包含在元素 中,当然除了中,当然除了 元素自身,元素自身,
10、因此上述语句还隐含地定义了因此上述语句还隐含地定义了DTDDTD的根元素,即的根元素,即 。对上述说明举例如下:对上述说明举例如下:1.1.基本字符元素声明基本字符元素声明XMLXML文档中的基本元素是指那些含有字符数据,而不含任何子文档中的基本元素是指那些含有字符数据,而不含任何子元素的元素。元素的元素。在相应的在相应的DTDDTD中,声明基本字符元素的具体格式如下:中,声明基本字符元素的具体格式如下:!ELEMENT(#PCDATA)这里的这里的PCDATAPCDATA是指可解析字符数据,小括号和是指可解析字符数据,小括号和PCDATAPCDATA前面的前面的“#”#”不能省略。不能省略。
11、3.2.2 3.2.2 不同元素类型的声明不同元素类型的声明2.2.含有子元素的元素声明含有子元素的元素声明 有时有时XMLXML文档中的一个元素可以包含若干指定的子元素,文档中的一个元素可以包含若干指定的子元素,也就是说,元素含有子元素。也就是说,元素含有子元素。在相应的在相应的DTDDTD中,声明含有子元素的元素的具体格式如下:中,声明含有子元素的元素的具体格式如下:!ELEMENT 3,)经上述声明的元素只能包含所指定的子元素,而不能直经上述声明的元素只能包含所指定的子元素,而不能直接包含其他任何字符数据;同时这些子元素在接包含其他任何字符数据;同时这些子元素在XMLXML文档中必须文档
12、中必须以声明中的排列顺序依次出现在其父元素中,每个子元素必以声明中的排列顺序依次出现在其父元素中,每个子元素必须出现且只能够出现一次。须出现且只能够出现一次。3.3.子元素出现次数的声明子元素出现次数的声明 在在XMLXML文档中,有的元素可能会出现多次或者一次也不文档中,有的元素可能会出现多次或者一次也不出现。在对应的出现。在对应的DTDDTD中,对包含子元素的元素声明时,除了中,对包含子元素的元素声明时,除了对父元素使用对父元素使用ANYANY关键字声明外,还可以在该元素的后面加关键字声明外,还可以在该元素的后面加上特定的符号来控制其可以出现的次数。上特定的符号来控制其可以出现的次数。在对
13、应的在对应的DTDDTD中,控制子元素出现次数的声明格式为:中,控制子元素出现次数的声明格式为:!ELEMENT 符号符号允许元素出现的次数允许元素出现的次数无符号无符号没有基数操作符,表示必须出现且只能出没有基数操作符,表示必须出现且只能出现一次现一次?可不出现或只出现一次可不出现或只出现一次*可不出现或可多次出现,即可出现任意次可不出现或可多次出现,即可出现任意次+出现一次或多次,即至少出现一次出现一次或多次,即至少出现一次DTDDTD中控制子元素出现次数的特定符号中控制子元素出现次数的特定符号4.4.选择性子元素的声明选择性子元素的声明 在在XMLXML文档中,有时一个父元素可以在指定的
14、多个子元素文档中,有时一个父元素可以在指定的多个子元素中选择其中的一个作为子元素。中选择其中的一个作为子元素。在对应的在对应的DTDDTD中,选择性子元素的声明格式为:中,选择性子元素的声明格式为:!ELEMENT3|)此声明语句规定了一个父元素可以包含的子元素必须是小此声明语句规定了一个父元素可以包含的子元素必须是小括号内所指定的多个子元素中的一个。指定的可供选择的子元括号内所指定的多个子元素中的一个。指定的可供选择的子元素之间用素之间用“|”|”作为分隔符。作为分隔符。5.EMPTY5.EMPTY元素的声明元素的声明 在在HTMLHTML中,中,如如、等标记都是没有内容等标记都是没有内容的
15、,称之为空元素。在的,称之为空元素。在XMLXML文档中也可能会包含一些空元素,文档中也可能会包含一些空元素,这些空元素只有一个独立标记,而没有任何内容。这些空元素只有一个独立标记,而没有任何内容。在对应的在对应的DTDDTD中,空元素的声明格式为:中,空元素的声明格式为:!ELEMENT EMPTY 空元素在空元素在XMLXML文档中的表示格式为文档中的表示格式为/,可以没有,可以没有结束标记,但必须在标记名之后添加结束标记,但必须在标记名之后添加“/”/”。6.ANY6.ANY元素的声明元素的声明 内容模型为内容模型为ANYANY的元素实质上是没有结构的,若在的元素实质上是没有结构的,若在
16、DTDDTD中声明了某一元素为中声明了某一元素为ANYANY类型时,说明这一元素可以类型时,说明这一元素可以包含任意内容、任何数据、任何声明的子元素及其数据、包含任意内容、任何数据、任何声明的子元素及其数据、子元素的组合。子元素的组合。在对应的在对应的DTDDTD中,中,ANYANY元素的声明格式为:元素的声明格式为:!ELEMENT ANY如定义一个包含任意内容的元素如定义一个包含任意内容的元素 :!ELEMENT ANY7.7.混合内容类型元素的声明混合内容类型元素的声明 混合内容类型元素既允许包含字符数据,又允许包含以混合内容类型元素既允许包含字符数据,又允许包含以任意顺序出现的、指定的
17、一个或多个子元素,还允许不包含任意顺序出现的、指定的一个或多个子元素,还允许不包含任何内容。任何内容。混合内容类型元素与混合内容类型元素与ANYANY型元素最主要的区别在于,前型元素最主要的区别在于,前者所能包含的子元素必须是在指定的若干个元素之中,而后者所能包含的子元素必须是在指定的若干个元素之中,而后者则没有任何限制。者则没有任何限制。在在DTDDTD中,声明混合内容类型元素的元素声明格式:中,声明混合内容类型元素的元素声明格式:!ELEMENT 小括号内的每个子元素名应写在小括号内的每个子元素名应写在#PCDATA#PCDATA之后,并用之后,并用“|”|”符号分隔,再在右小括号之后加星
18、号符号分隔,再在右小括号之后加星号“*”。8.8.实体的声明实体的声明 在在DTDDTD中,可以声明一个实体来将多种不同类型的数据并中,可以声明一个实体来将多种不同类型的数据并入到一个入到一个XMLXML文档中,这样能够节省大量的时间,大大提高编文档中,这样能够节省大量的时间,大大提高编制制XMLXML文档的效率。文档的效率。实体是一个事先定义好的数据或数据集合,可以被方便实体是一个事先定义好的数据或数据集合,可以被方便地引用到任何需要这些数据或数据集合的地方。地引用到任何需要这些数据或数据集合的地方。在在DTDDTD中,声明实体的一般格式为:中,声明实体的一般格式为:!ENTITY 其中,其
19、中,ENTITYENTITY是关键字,必须大写。是关键字,必须大写。3.3 3.3 属性声明属性声明 DTD DTD中除了元素需要声明外,元素的属性也要进行相应中除了元素需要声明外,元素的属性也要进行相应的声明。的声明。属性声明规定了与给定的元素相联系的属性的名字、数属性声明规定了与给定的元素相联系的属性的名字、数据类型和默认值,还规定了属性是可选择的还是必需的,是据类型和默认值,还规定了属性是可选择的还是必需的,是否有默认值等。属性和元素的关系是隶属关系,属性隶属于否有默认值等。属性和元素的关系是隶属关系,属性隶属于元素。在书写元素。在书写XMLXML文档时,属性写在元素结束标记文档时,属性
20、写在元素结束标记“”之前。之前。3.3.1 3.3.1 属性声明的语法属性声明的语法 在在XMLXML文档中,属性是元素组成的可选部分,是由文档中,属性是元素组成的可选部分,是由“”分隔开的名称分隔开的名称键值对的组成,其作用是对元素及其内容的附键值对的组成,其作用是对元素及其内容的附加信息进行描述;加信息进行描述;DTDDTD中的属性声明用来定义其相应的中的属性声明用来定义其相应的XMLXML文档文档中某些元素可接受的属性。中某些元素可接受的属性。DTD DTD中对属性定义的一般语法为:中对属性定义的一般语法为:!ATTLIST 属性声明示例属性声明示例!DOCTYPE!DOCTYPE 手机
21、卡品手机卡品 !ELEMENT)!ELEMENT(#PCDATA)!ATTLIST 移动动感地带卡移动动感地带卡/移动动感地带卡移动动感地带卡/3.3.2 3.3.2 属性默认值的设置属性默认值的设置 在在DTDDTD中,定义属性的缺省值时,可以对其取值作出许多中,定义属性的缺省值时,可以对其取值作出许多规定,包括文档是否需要为一个属性提供取值,是否在未定规定,包括文档是否需要为一个属性提供取值,是否在未定义取值时使用它的缺省值,这个缺省值是否可以修改等。根义取值时使用它的缺省值,这个缺省值是否可以修改等。根据这些规定,在定义属性时可以指定属性的默认值,可以用据这些规定,在定义属性时可以指定属
展开阅读全文