XML基础教程第3章课件.ppt

上传人(卖家):三亚风情 文档编号:3371306 上传时间:2022-08-24 格式:PPT 页数:46 大小:674KB
下载 相关 举报
XML基础教程第3章课件.ppt_第1页
第1页 / 共46页
XML基础教程第3章课件.ppt_第2页
第2页 / 共46页
XML基础教程第3章课件.ppt_第3页
第3页 / 共46页
XML基础教程第3章课件.ppt_第4页
第4页 / 共46页
XML基础教程第3章课件.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

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中,定义属性的缺省值时,可以对其取值作出许多中,定义属性的缺省值时,可以对其取值作出许多规定,包括文档是否需要为一个属性提供取值,是否在未定规定,包括文档是否需要为一个属性提供取值,是否在未定义取值时使用它的缺省值,这个缺省值是否可以修改等。根义取值时使用它的缺省值,这个缺省值是否可以修改等。根据这些规定,在定义属性时可以指定属性的默认值,可以用据这些规定,在定义属性时可以指定属

22、性的默认值,可以用REQUIREDREQUIRED、IMPLIEDIMPLIED、FIXEDFIXED三个关键字分别来指定在对应的三个关键字分别来指定在对应的XMLXML文档中必须提供元素属性的属性值,忽略元素属性的属性文档中必须提供元素属性的属性值,忽略元素属性的属性值,使用固定值作为元素属性的属性值。值,使用固定值作为元素属性的属性值。1.1.必须赋值的属性必须赋值的属性 关键字关键字REQUIREDREQUIRED用来声明用来声明XMLXML文档中必须给出属性的属文档中必须给出属性的属性值。性值。在在DTDDTD中,为元素声明属性必须赋值的格式为:中,为元素声明属性必须赋值的格式为:!A

23、TTLIST#REQUIRED2.2.属性值可有可无的属性属性值可有可无的属性 当使用当使用IMPLIEDIMPLIED关键字时,语法分析器不再强行要求关键字时,语法分析器不再强行要求在在XMLXML文档中给该属性赋值,而且也不必在文档中给该属性赋值,而且也不必在DTDDTD中为该属中为该属性提供缺省值。性提供缺省值。在在DTDDTD中,为元素声明一个属性值可有可无的属性的中,为元素声明一个属性值可有可无的属性的格式为:格式为:!ATTLIST!ATTLIST 元素名元素名 属性名属性名 属性类型属性类型#IMPLIED#IMPLIED3.3.有固定取值的属性有固定取值的属性 有一种特殊情况,

24、需要为一个特定的属性提供一个缺省有一种特殊情况,需要为一个特定的属性提供一个缺省值,且不希望值,且不希望XMLXML文档的程序员用别的值替代这个缺省值。文档的程序员用别的值替代这个缺省值。这时,可使用这时,可使用FIXEDFIXED关键字来声明属性,并为该属性提供一关键字来声明属性,并为该属性提供一个固定取值的缺省值。个固定取值的缺省值。在在DTDDTD中,为元素声明一个属性值固定的属性的格式为:中,为元素声明一个属性值固定的属性的格式为:!ATTLIST!ATTLIST 元素名元素名 属性名属性名 属性类型属性类型#FIXED“#FIXED“缺省值缺省值”4.4.事先定义了缺省值的属性事先定

25、义了缺省值的属性 在在DTDDTD中,在属性定义时若没有使用任何关键字,就必须中,在属性定义时若没有使用任何关键字,就必须为该属性提供一个缺省值。如果在对应的为该属性提供一个缺省值。如果在对应的XMLXML文档中为该属性文档中为该属性提供一个新的属性值,这个新属性值就覆盖了事先定义的缺省提供一个新的属性值,这个新属性值就覆盖了事先定义的缺省值,若不给出属性值,就默认采用值,若不给出属性值,就默认采用DTDDTD中给出的缺省值。中给出的缺省值。在在DTDDTD中,为元素定义一个具有默认属性值的属性的格式为:中,为元素定义一个具有默认属性值的属性的格式为:!ATTLIST!ATTLIST 元素名元

26、素名 属性名属性名 属性类型属性类型 缺省值缺省值 3.3.3 3.3.3 属性的类型属性的类型 属性类型规定了属性的值是哪种类型的数据,常见属性类型规定了属性的值是哪种类型的数据,常见的属性类型为的属性类型为CDATACDATA,即字符数据类型的属性。事实上,即字符数据类型的属性。事实上,XMLXML规范允许为元素的属性指定规范允许为元素的属性指定1010种不同的类型。种不同的类型。属性类型属性类型说说 明明CDATACDATA属性值为普通的字符数据属性值为普通的字符数据IDID属性值在属性值在XMLXML文档中必须是唯一的文档中必须是唯一的IDREFIDREF表示该属性值参考了表示该属性值

27、参考了XMLXML文档中另一个文档中另一个IDID属性属性IDREFSIDREFS表示该属性值参考了用空格分隔的多个表示该属性值参考了用空格分隔的多个XMLXML文档中的文档中的IDID属性属性ENTITYENTITY表示该属性的设定值是一个外部实体,例如,一个声音文件表示该属性的设定值是一个外部实体,例如,一个声音文件ENTITIESENTITIES表示该属性包含了多个外部实体,实体间用空格分隔表示该属性包含了多个外部实体,实体间用空格分隔NMTOKENNMTOKEN属性值只能由字母、数字、下划线、连字符、圆点、冒号等组属性值只能由字母、数字、下划线、连字符、圆点、冒号等组成成NMTOKEN

28、SNMTOKENS属性值能由多个属性值能由多个NMTOKENNMTOKEN组成,组成,NMTOKENNMTOKEN间用空格分隔间用空格分隔NOTATIONNOTATION属性值是在属性值是在DTDDTD中声明过的注释名称中声明过的注释名称EnumeratedEnumerated(枚举)(枚举)属性值是从给定的值的列表中选定的一个属性值是从给定的值的列表中选定的一个1.CDATA1.CDATA类型类型 CDATA CDATA指的是纯文本,是由多个字符组成的字符串,其中,指的是纯文本,是由多个字符组成的字符串,其中,字符可以是除了字符可以是除了“”、“”和和“”的任意字符。的任意字符。属性值中既包

29、含双引号又包含单引号,则定界符最好使属性值中既包含双引号又包含单引号,则定界符最好使用双引号,属性值中的引号用预定义实体引用代替。例如:用双引号,属性值中的引号用预定义实体引用代替。例如:如果属性值中包含了其他特殊字符,也要使用预定义实如果属性值中包含了其他特殊字符,也要使用预定义实体引用替代,如体引用替代,如“&”&”代替代替“&”&”等。等。需要特别注意的是,在需要特别注意的是,在DTDDTD中声明中声明XMLXML元素的内容为字符元素的内容为字符串时,用的是串时,用的是“#PCDATA”,#PCDATA”,而声明属性值为字符数据时,用而声明属性值为字符数据时,用的是的是“

30、#CDATA”#CDATA”。2.ID2.ID类型类型 在一个在一个XMLXML文档中,所有声明为文档中,所有声明为IDID属性类型的元素,其属性类型的元素,其对应属性的值不能重复。对应属性的值不能重复。使用使用IDID类型的属性需要注意的是:类型的属性需要注意的是:(1 1)一个元素只能声明一个)一个元素只能声明一个IDID类型的属性。类型的属性。(2 2)因为)因为IDID类型的属性要求属性值在一个类型的属性要求属性值在一个XMLXML文档内唯文档内唯一,而一,而FIXEDFIXED类型要求属性的属性值都是声明时的值,在一类型要求属性的属性值都是声明时的值,在一个个XMLXML文档内都是一

31、样的,因此文档内都是一样的,因此IDID类型的属性与类型的属性与FIXEDFIXED类型缺类型缺省值不能同时出现,否则是非法的。省值不能同时出现,否则是非法的。3.IDREF3.IDREF类型类型 ID ID是是identifieridentifier的缩写,的缩写,IDREFIDREF是是identifier identifier referencereference的缩写。的缩写。IDREFIDREF类型属性的属性值必须是其他元类型属性的属性值必须是其他元素的素的IDID类型属性的属性值,而且此类型属性的属性值,而且此IDID类型的属性值必须在类型的属性值必须在文档的其他位置已经设定过。文

32、档的其他位置已经设定过。4.IDREFS4.IDREFS类型类型 IDREFS IDREFS类型的属性与类型的属性与IDREFIDREF类型的属性是有关系的。类型的属性是有关系的。IDREFSIDREFS类型属性的属性值可以有多个,每一个都是在文档类型属性的属性值可以有多个,每一个都是在文档中其他位置设定过中其他位置设定过IDID类型的属性值,多个属性值之间用空类型的属性值,多个属性值之间用空格分隔。格分隔。5.ENTITY5.ENTITY类型类型 ENTITY ENTITY类型的属性值必须是一个外部实体,而这个外类型的属性值必须是一个外部实体,而这个外部实体为二进制形式的文件,如部实体为二进

33、制形式的文件,如GIFGIF、TIFTIF、JPEGJPEG、MP3MP3、AVIAVI、RMVBRMVB等格式的文件。等格式的文件。ENTITYENTITY类型的属性提供了将外类型的属性提供了将外部的不可析实体链接到部的不可析实体链接到XMLXML文档的方式。文档的方式。6.ENTITIES6.ENTITIES类型类型 ENTITIES ENTITIES类型和类型和ENTITYENTITY类型的关系,类型的关系,IDREFSIDREFS类型和类型和IDREFIDREF类型的关系,以及与后面要介绍的类型的关系,以及与后面要介绍的NMTOKENSNMTOKENS类型和类型和NMTOKENNMTO

34、KEN类型的关系是一样的,实际上,前者就是后者的类型的关系是一样的,实际上,前者就是后者的复数形式。复数形式。ENTITIESENTITIES类型的属性值由多个外部的不可解析类型的属性值由多个外部的不可解析实体组成,名称之间用空格分隔。实体组成,名称之间用空格分隔。7.NOTATION7.NOTATION类型类型 在在XMLXML文档中引入外部的不可解析实体后,文档中引入外部的不可解析实体后,XMLXML解析器解析器是无法解析这些二进制文件的。通过是无法解析这些二进制文件的。通过NOTATIONNOTATION类型的属性类型的属性可以指定一个其他的应用程序来识别和处理这些二进制文可以指定一个其

35、他的应用程序来识别和处理这些二进制文件,但要具有这种能力需要和件,但要具有这种能力需要和NOTATIONNOTATION声明结合起来。声明结合起来。NOTATION NOTATION声明定义了一个外部应用程序,相应类型的声明定义了一个外部应用程序,相应类型的属性引用了这个外部应用程序的定义,从而可达到为不可属性引用了这个外部应用程序的定义,从而可达到为不可解析的数据指定一个应用程序的目的。解析的数据指定一个应用程序的目的。8.NMTOKEN8.NMTOKEN类型类型 NMTOKEN NMTOKEN类型的属性值只能是英文字母、数字、类型的属性值只能是英文字母、数字、“.”.”、“:”:”、“”、

36、“_”_”等字符。等字符。在设计在设计XMLXML文档的处理程序时,文档的处理程序时,NMTOKENNMTOKEN类型将会发挥出类型将会发挥出它的作用。由于它的作用。由于NMTOKENNMTOKEN类型对合法字符的要求非常严格,类型对合法字符的要求非常严格,使得它在使得它在JavaJava、JavaScriptJavaScript、VBScriptVBScript等许多编程语言中,等许多编程语言中,获得的都是合法数据,所以将会减少处理程序的许多麻烦。获得的都是合法数据,所以将会减少处理程序的许多麻烦。9.NMTOKENS9.NMTOKENS类型类型 NMTOKENS NMTOKENS类型是类型

37、是NMTOKENNMTOKEN类型的复数形式,但是在类型的复数形式,但是在NMTOKENSNMTOKENS类型中,空格也属于合法字符。类型中,空格也属于合法字符。NMTOKENS NMTOKENS类型允许属性有多个属性值,属性值之间类型允许属性有多个属性值,属性值之间用空格分隔,并且要求它们在同一对引号内。用空格分隔,并且要求它们在同一对引号内。10.Enumerated10.Enumerated枚举类型枚举类型 如果属性值不是一个任意的字符串,而只可能是几个如果属性值不是一个任意的字符串,而只可能是几个指定的值中的一个,例如,一般的指定的值中的一个,例如,一般的“性别性别”属性只可能是属性只

38、可能是“男男”和和“女女”中的一个,不可能是其他值,就可以将这中的一个,不可能是其他值,就可以将这个属性声明为个属性声明为EnumeratedEnumerated(枚举)类型。(枚举)类型。这里的这里的EnumeratedEnumerated不是一个关键字。实际上,将一个不是一个关键字。实际上,将一个属性设置为属性设置为EnumeratedEnumerated类型,就是在属性声明语句的类型,就是在属性声明语句的“类类型型”位置列出用位置列出用“|”|”分隔的可选值。分隔的可选值。3.4 3.4 内部内部DTDDTD和外部和外部DTDDTD3.4.1 3.4.1 内部内部DTDDTD 所有的文档

39、都是由前导说明和文档体构成的。前导所有的文档都是由前导说明和文档体构成的。前导说明中包含了说明中包含了XMLXML声明,而文档体中则是具体的数据信声明,而文档体中则是具体的数据信息,文档中还可以包含一些处理指示,如在前导说明中息,文档中还可以包含一些处理指示,如在前导说明中包含包含DTDDTD。使用使用DTDDTD的最简单的方法是在的最简单的方法是在XMLXML文档的前导说明部文档的前导说明部分加入一个分加入一个DTDDTD描述,加入的位置是紧接在描述,加入的位置是紧接在XMLXML处理指示处理指示之后。之后。?xml version=1.0 encoding=GB2312 standalon

40、e=yes?!DOCTYPE 文档体文档体这样就定义了一个文档,它以这样就定义了一个文档,它以DOCTYPEDOCTYPE中规定的根元素名作中规定的根元素名作为其根元素的名称。为其根元素的名称。一个包含一个包含DTDDTD的的XMLXML文档的结构文档的结构3.4.2 3.4.2 外部外部DTDDTD 可以在可以在“格式良好的格式良好的”XMLXML文档中定义使用文档中定义使用DTDDTD,也就是,也就是使用内部使用内部DTDDTD;也可以将外部;也可以将外部DTDDTD作为一个外部文档被引用,作为一个外部文档被引用,而且需在而且需在XMLXML文档中说明,如文档中说明,如standalone

41、standalonenono。使用外部使用外部DTDDTD的最大好处是的最大好处是DTDDTD可以方便高效地被多个可以方便高效地被多个XMLXML文档共享。这样,只要写一个文档共享。这样,只要写一个DTDDTD文档,就可以供多个文档,就可以供多个XMLXML文文档引用。事实上,许多国际组织就是通过外部档引用。事实上,许多国际组织就是通过外部DTDDTD来统一它们来统一它们的数据交换格式的。这样不仅大大减少了输入代码的工作量,的数据交换格式的。这样不仅大大减少了输入代码的工作量,而且还能保证修改而且还能保证修改DTDDTD时,不用去一一修改每个引用了它的时,不用去一一修改每个引用了它的XMLXM

42、L文档,只需修改一个公用的文档,只需修改一个公用的DTDDTD文档即可。文档即可。为了引用一个外部为了引用一个外部DTDDTD,必须修改,必须修改XMLXML声明和声明和DOCTYPEDOCTYPE声明。声明。首先,首先,XMLXML声明中必须把声明中必须把standalonestandalone属性的属性值设置为属性的属性值设置为nono,用以说明这个,用以说明这个XMLXML文档不是自成一体的。代码如下:文档不是自成一体的。代码如下:?xml version=1.0 encoding=GB2312 standalone=no?其次,在其次,在DOCTYPEDOCTYPE声明中,应该加入声明中,应该加入SYSTEMSYSTEM属性,代码属性,代码格式如下:格式如下:!DOCTYPE URL第3章结束!Thank you!

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(XML基础教程第3章课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|