第2章XML数据的底层结构—DTD和XMLSchema课件

上传人:风*** 文档编号:240934749 上传时间:2024-05-19 格式:PPT 页数:44 大小:245.41KB
返回 下载 相关 举报
第2章XML数据的底层结构—DTD和XMLSchema课件_第1页
第1页 / 共44页
第2章XML数据的底层结构—DTD和XMLSchema课件_第2页
第2页 / 共44页
第2章XML数据的底层结构—DTD和XMLSchema课件_第3页
第3页 / 共44页
点击查看更多>>
资源描述
第第2章章 XML数据的底层结构数据的底层结构DTD 和和XML Scheman n2.1 XML类型定义语言DTD 教学内容:2.1.1 DTD的作用;2.1.2 DTD元素;2.1.3 DTD属性;2.1.4 DTD中的实体;2.1.5 使用DTD.第2章 XML数据的底层结构DTD 和XML Schema1 12.1.1 DTD的作用的作用 XML文档是一种元标记语言,即一种定义标记语言的语言。在XML中可以创建新的标记语言,这些新的标记语言(也叫标记集)要通过文档类型定义(Document Type Definitions,DTD)来定义。DTD文档是这些新的标记语言的法律性文档。如果XML文档的语法符合DTD的定义和规定,那么就称为一个合法的XML文档,否则就是非法的XML文档。.2.1.1 DTD的作用 XML文档是一种元2 2DTDDTD定义了文档的逻辑结构,规定了文档中所使用定义了文档的逻辑结构,规定了文档中所使用定义了文档的逻辑结构,规定了文档中所使用定义了文档的逻辑结构,规定了文档中所使用的元素、实体、元素的属性、元素与实体之间的关的元素、实体、元素的属性、元素与实体之间的关的元素、实体、元素的属性、元素与实体之间的关的元素、实体、元素的属性、元素与实体之间的关系。其作用主要表现在以下几个方面:系。其作用主要表现在以下几个方面:系。其作用主要表现在以下几个方面:系。其作用主要表现在以下几个方面:n n使用使用DTDDTD可以可以提供一种统一的格式提供一种统一的格式。XMLXML的可扩展性为文档的可扩展性为文档的作者提供了很高的灵活性,可有时候需要的是统一,要求的作者提供了很高的灵活性,可有时候需要的是统一,要求某一类文档具有相同的结构。某一类文档具有相同的结构。n n使用使用DTDDTD可以可以保证数据交流和共享的顺利保证数据交流和共享的顺利进行。进行。n nDTDDTD使用户能够不依赖具体的数据就知道文档的逻辑结构。使用户能够不依赖具体的数据就知道文档的逻辑结构。在没有在没有XMLXML文档的时候,也可以文档的时候,也可以根据根据DTDDTD为为XMLXML文档编写样文档编写样式单,编写处理程序式单,编写处理程序,有效地提高工作效率。,有效地提高工作效率。n n使用使用DTDDTD可以可以验证数据的有效性验证数据的有效性。DTDDTD对文档的逻辑结构进对文档的逻辑结构进行了约束,这种约束可以比较宽松,也可以十分严格。可以行了约束,这种约束可以比较宽松,也可以十分严格。可以根据根据DTDDTD检查数据,以验证其是否符合规定和要求,这可以检查数据,以验证其是否符合规定和要求,这可以保证数据的正确和有效。保证数据的正确和有效。(课本(课本p12 p12 例例2.12.1).DTD定义了文档的逻辑结构,规定了文档中所使用的元素、实体、3 32.1.2 DTD元素元素 DTDDTD中描述的基本部件是元素和属性,它们负责中描述的基本部件是元素和属性,它们负责确定确定XMLXML文档的逻辑结构。元素表示一个信息对象,而文档的逻辑结构。元素表示一个信息对象,而属性表示这个对象的性质。所有元素中有且只有一个根属性表示这个对象的性质。所有元素中有且只有一个根元素,其他的元素都是它的子元素,除根元素外,每个元素,其他的元素都是它的子元素,除根元素外,每个元素都被其他元素包含,一个元素可以有几个不同类型元素都被其他元素包含,一个元素可以有几个不同类型的子元素。的子元素。.2.1.2 DTD元素 DTD中描述的基本部件4 41、元素的基本类型、元素的基本类型 元素的基本类型大致可分为两种,一种称为简单型,另一种称为复合型。简单型具有文本数据,即可析字符数据,该类型也称为上下文中的“#PCADTA”;复合型可以包含其他元素和文本数据。.1、元素的基本类型 元素的基本类型大致可分为5 5(1 1)简单型:)简单型:)简单型:)简单型:“#PCDATA”(Parsed Character Data)“#PCDATA”(Parsed Character Data)表示标记的表示标记的内容是可解析文本,所谓的可解析文本就是非标记文本。内容是可解析文本,所谓的可解析文本就是非标记文本。用用“#PCDATA”“#PCDATA”规范了的元素规范了的元素不能再包含子元素。不能再包含子元素。例如例如How do you doHow do you do是不包含标记的文本,而是不包含标记的文本,而How How do you dodo you do就不是可解析的数据类型。另外就不是可解析的数据类型。另外DTDDTD文档中不同元素定义的次序没有先后关系,但文档文档中不同元素定义的次序没有先后关系,但文档的语法对大小写敏感。的语法对大小写敏感。“#PCDATA”“#PCDATA”的声明格式:的声明格式:.(1)简单型:.6 6(2 2)复合型:)复合型:)复合型:)复合型:复合型元素与简单型元素相对,复合型复合型元素与简单型元素相对,复合型元素可包含其他元素。元素可包含其他元素。.(2)复合型:复合型元素与简单型元素相对,7 72、元素的声明、元素的声明(1 1)元素声明的基本语法)元素声明的基本语法元素的声明格式:元素的声明格式:其中,其中,Element_NameElement_Name为声明的元素名称,为声明的元素名称,Element_Defination Element_Defination为元素内容格式的定义。为元素内容格式的定义。合法的元素声明语句例:合法的元素声明语句例:.2、元素的声明(1)元素声明的基本语法.8 8(2 2)空元素的声明空元素的声明空元素的声明空元素的声明 在第在第1 1章中已介绍了空标记的使用方法,那么在章中已介绍了空标记的使用方法,那么在DTDDTD中如何对与其对应的空元素进行声明呢?中如何对与其对应的空元素进行声明呢?其声明格式:其声明格式:例如下面的语句:例如下面的语句:.(2)空元素的声明 在第1章中已介绍了9 9(3 3)不限定元素内容的声明)不限定元素内容的声明)不限定元素内容的声明)不限定元素内容的声明 ANY ANY是是DTDDTD中使用很频繁的一个关键字,特中使用很频繁的一个关键字,特别是对于文档根元素的声明。在定义一个别是对于文档根元素的声明。在定义一个DTDDTD文文档时通常很难准确地确定一个元素是否具有子元档时通常很难准确地确定一个元素是否具有子元素的情况,此时一般的做法是指定该元素的子元素的情况,此时一般的做法是指定该元素的子元素为素为ANYANY型型(表示可以是任意的元素表示可以是任意的元素),这样在它,这样在它之中可以包含任何数据、任何声明的子元素及其之中可以包含任何数据、任何声明的子元素及其数据和子元素的组合。数据和子元素的组合。ANY ANY元素的声明格式:元素的声明格式:.(3)不限定元素内容的声明.1010(4 4)子元素列表的设定)子元素列表的设定)子元素列表的设定)子元素列表的设定 在在XMLXML中有一种针对复合元素的最为严格中有一种针对复合元素的最为严格的设定方法,称为子元素列表的设定。这种方的设定方法,称为子元素列表的设定。这种方式下,元素都拥有哪些子元素、每个子元素出式下,元素都拥有哪些子元素、每个子元素出现的次数和位置都有明确的规定,在具体文档现的次数和位置都有明确的规定,在具体文档实现时,必须严格执行。实现时,必须严格执行。子元素列表的设定语法如下:子元素列表的设定语法如下:!ELEMENT Element_Name(Child_Element1,Child_Element2,)其中其中“(Child_Element1,Child_Element2,)”“(Child_Element1,Child_Element2,)”部分为部分为Element_NameElement_Name所拥有的子元素列表。所拥有的子元素列表。.(4)子元素列表的设定.1111(5 5)可选择的子元素)可选择的子元素)可选择的子元素)可选择的子元素 有些时候,需要在两个或多个互斥的元素有些时候,需要在两个或多个互斥的元素中进行选择。即多选一的情况,如一个人的性中进行选择。即多选一的情况,如一个人的性别可以是男或女,两者中只能有一种情况。别可以是男或女,两者中只能有一种情况。DTDDTD有专门的语法来处理这种情况,其语法格有专门的语法来处理这种情况,其语法格式如下:式如下:!ELEMENT nt2|)其中,其中,“(Child_Element1|Child_Element2|)”“(Child_Element1|Child_Element2|)”部部分为选择性元素组合,具体使用时必须要在这分为选择性元素组合,具体使用时必须要在这个列表中选择其一。个列表中选择其一。(课本(课本p16 p16 例例2.32.3).(5)可选择的子元素.1212(6 6)元素出现次数的控制)元素出现次数的控制)元素出现次数的控制)元素出现次数的控制n n一个元素可能出现一次,也可能不出现。这时可通过在一个元素可能出现一次,也可能不出现。这时可通过在元素名后面加上一个元素名后面加上一个“?”“?”来实现。来实现。“?”:0 0或或1 1次次n n一个元素可能不出现,也可能出现多次。这时可通过在一个元素可能不出现,也可能出现多次。这时可通过在元素名后面加上一个元素名后面加上一个“*”“*”来实现。来实现。“*”“*”:任意次:任意次n n一个元素可能出现一次,也可能出现多次,但至少也要一个元素可能出现一次,也可能出现多次,但至少也要出现一次。这时可通过在元素名后面加上一个出现一次。这时可通过在元素名后面加上一个“+”“+”来来实现。实现。“+”“+”:11次次(课本(课本p17 p17 例例2.42.4).(6)元素出现次数的控制(课本p17 例2.4).1313(7 7)混合型元素)混合型元素)混合型元素)混合型元素 还有另一种元素,其内容既可以为字符数据,也还有另一种元素,其内容既可以为字符数据,也可以为子元素,这种元素称为混合型元素。混合型元可以为子元素,这种元素称为混合型元素。混合型元素的声明格式:素的声明格式:!ELEMENT ment2,)*必须采用可选项,以必须采用可选项,以#PCDATA#PCDATA开始,后面是混合开始,后面是混合内容中可能出现的子元素,内容中可能出现的子元素,“*”“*”必须放在右括号之必须放在右括号之后后.(7)混合型元素 还有另一种元素,其内容既可以为14142.1.3 DTD属性属性 简单来讲就是元素的附加特性,在简单来讲就是元素的附加特性,在DTDDTD中声明元中声明元素时,也必须对该元素的属性进行声明。素时,也必须对该元素的属性进行声明。1 1、属性的声明、属性的声明 在在DTDDTD中,属性的声明格式:中,属性的声明格式:!ATTLIST Element_name Attribute_name TYPE Default_value 其中,其中,为属性声明的关键字,为属性声明的关键字,Element_nameElement_name为元素名,为元素名,Attribute_nameAttribute_name为属性名,为属性名,TYPETYPE是属性类型,是属性类型,Default_valueDefault_value为没有设定属性值为没有设定属性值时的默认值。时的默认值。.2.1.3 DTD属性 简单来讲就是元素的附加特1515在声明属性时有以下需要注意的事项:在声明属性时有以下需要注意的事项:在声明属性时有以下需要注意的事项:在声明属性时有以下需要注意的事项:(对照课本(对照课本p18-19 p18-19 例例2.52.5分析)分析)(1)(1)、可以多次为一个元素声明其中所包含的属性。、可以多次为一个元素声明其中所包含的属性。(2)(2)、属性的声明在文档中的次序没有严格的要求,、属性的声明在文档中的次序没有严格的要求,可位于与其相连的元素声明之前或之后。可位于与其相连的元素声明之前或之后。(3)(3)、所有元素的属性,都要在各自所对应的标记中、所有元素的属性,都要在各自所对应的标记中声明。声明。.在声明属性时有以下需要注意的事项:(对照课本p18-19 例16162 2、属性的类型、属性的类型、属性的类型、属性的类型 在属性的声明中在属性的声明中TYPETYPE部分为属性的类型设部分为属性的类型设定,定,DTDDTD中属性的类型有中属性的类型有1010种,下面将对这些数据种,下面将对这些数据类型进行逐一的介绍。(课本类型进行逐一的介绍。(课本p20p20)(1 1)CDATA CDATA型型 CDATA CDATA型表明属性值为不包含型表明属性值为不包含“”“”和和“”“”的任的任意字符串,如果属性值中需要包含意字符串,如果属性值中需要包含“”“”和和“”“”,则,则可使用特殊字符来代替。可使用特殊字符来代替。(2 2)EnumeratedEnumerated型型 如果属性值并不是任意的字符串,而是在几个可如果属性值并不是任意的字符串,而是在几个可能的值中进行选择。能的值中进行选择。.2、属性的类型.1717(3 3)ID ID型型 当元素的某个属性值是不能重复时,如书籍的当元素的某个属性值是不能重复时,如书籍的ISBNISBN属性、个人的属性、个人的“身份证号身份证号”属性等,要定义这样属性等,要定义这样的属的属性则需使用属性的性则需使用属性的IDID类型。在一个类型。在一个XMLXML文档中,所有元文档中,所有元素的素的IDID类型属性的属性值必须是唯一的,不可重复,另类型属性的属性值必须是唯一的,不可重复,另外,一个元素不能有超过一个外,一个元素不能有超过一个IDID类型的属性。类型的属性。(4 4)IDREF IDREF与与IDREFSIDREFS型(课本型(课本p20 p20 例例2.62.6)IDREF IDREF为为Identifier ReferenceIdentifier Reference的缩写,的缩写,IDREFIDREF与与IDID类型属性的关系为子元素与父元素的关系,即类型属性的关系为子元素与父元素的关系,即IDREFIDREF类类型属性的值必须是其他元素的型属性的值必须是其他元素的IDID类型属性的值类型属性的值,且该,且该IDID类型属性的值必须在文档的其他地方被设定过。类型属性的值必须在文档的其他地方被设定过。IDREFS IDREFS类型属性的属性值可有多个,每一个都必类型属性的属性值可有多个,每一个都必须是在文档其他地方被设定了的须是在文档其他地方被设定了的IDID类型属性的值,而这类型属性的值,而这多个属性值之间用空格隔开。多个属性值之间用空格隔开。.(3)ID型.1818(5 5)ENTITY ENTITY与与ENTITIESENTITIES型型 ENTITY ENTITY类型的属性提供了把外部二进制形式的文类型的属性提供了把外部二进制形式的文件件(如如.jpeg.jpeg、.mp3.mp3等等)和外部不可解析实体链接到和外部不可解析实体链接到XMLXML文文档的功能。因此其属性值也必须为不可解析的链接外部档的功能。因此其属性值也必须为不可解析的链接外部实际数据的通用实体名。实际数据的通用实体名。ENTITIESENTITIES类型属性的属性值类型属性的属性值可由多个不可解析的外部实体名称组成,可由多个不可解析的外部实体名称组成,各实体名称之各实体名称之间使用空格隔开间使用空格隔开。(6 6)NMTOKENNMTOKEN与与NMTOKENSNMTOKENS型(课本型(课本p22 p22 例例2.72.7)NMTOKEN NMTOKEN类型的属性限定属性值是有效的类型的属性限定属性值是有效的XMLXML名名称,这个属性值可以由英文、数字、称,这个属性值可以由英文、数字、“.”“.”、“_”“_”、“-”“-”、“:”“:”等组成,这里有几点需要注意。等组成,这里有几点需要注意。a a、不能包括空格。不能包括空格。b b、以上字符中除以上字符中除“:”“:”以外,其他字符都可以作为开以外,其他字符都可以作为开头字符。头字符。c c、“:”“:”可以出现在中间,但由于它是命名域的关键可以出现在中间,但由于它是命名域的关键字符,所以一般不提倡使用。字符,所以一般不提倡使用。.(5)ENTITY与ENTITIES型.1919(7 7)NOTATION NOTATION型(课本型(课本p23 p23 例例2.82.8)XML XML文档中引入了外部不可解析的实体后,解析器文档中引入了外部不可解析的实体后,解析器无法解析这些二进制文件,这时,就可以使用无法解析这些二进制文件,这时,就可以使用NOTATIONNOTATION类型的属性为这些二进制文件指定与其对应类型的属性为这些二进制文件指定与其对应的应用软件以对其进行处理。的应用软件以对其进行处理。.(7)NOTATION型(课本p23 例2.8).20203 3、属性的默认值、属性的默认值、属性的默认值、属性的默认值 属性有属性有4 4种不同类型的默认值,可在属性声明中的种不同类型的默认值,可在属性声明中的Default_valueDefault_value部分指定。(课本部分指定。(课本p24p24)default default:表示使用提供的默认值,:表示使用提供的默认值,defaultdefault不是一不是一个关键字,它代表一个预设的字符串。个关键字,它代表一个预设的字符串。!ATTLIST bookinfo bookcategory(此例句表示当在此例句表示当在XMLXML文档中省略了对文档中省略了对bookinfobookinfo元素元素的的bookcategorybookcategory属性值进行设定时,该属性的默认值就属性值进行设定时,该属性的默认值就是是“文艺文艺”。#REQUIRED#REQUIRED:表示属性值必须指定。:表示属性值必须指定。#IMPLIED#IMPLIED:表示元素的这个属性可用可不用。:表示元素的这个属性可用可不用。#FIXED#FIXED:表示元素的这个属性值是一个固定值,:表示元素的这个属性值是一个固定值,且必须是指定的值。且必须是指定的值。.3、属性的默认值 属性有4种不同类型的默认21212.1.4 DTD中的实体中的实体1 1、实体的概念、实体的概念 实体是包含了文档片段的虚拟存储单元,可用来存实体是包含了文档片段的虚拟存储单元,可用来存储储XMLXML声明、声明、DTDDTD、其他形式的文本及二进制数据等。、其他形式的文本及二进制数据等。简单来讲就是一段代码或数据的代称,这个代称即为实简单来讲就是一段代码或数据的代称,这个代称即为实体的名字。当需要在文档中引用某段代码或数据时,可体的名字。当需要在文档中引用某段代码或数据时,可以引用与这段代码或数据相对应的实体名称来代替实体以引用与这段代码或数据相对应的实体名称来代替实体的具体内容。具有正确性检查功能的的具体内容。具有正确性检查功能的XMLXML处理器在提交处理器在提交文档给最终应用程序之前或在显示文档以前,将先把所文档给最终应用程序之前或在显示文档以前,将先把所有不同的实体引用替换为与其对应的具体内容,从而构有不同的实体引用替换为与其对应的具体内容,从而构成一个结构完整的文档。成一个结构完整的文档。.2.1.4 DTD中的实体1、实体的概念.22222 2、实体的分类、实体的分类(1 1)按照实体的具体内容来分类,实体可分为)按照实体的具体内容来分类,实体可分为可解析可解析与与不可解析不可解析两类。可解析实体的具体内容为简单的字符、两类。可解析实体的具体内容为简单的字符、数字、文本块,而不可解析实体的具体内容则为图片、数字、文本块,而不可解析实体的具体内容则为图片、声音等二进制文件。声音等二进制文件。(2 2)按照逻辑存储来分类,实体可分为)按照逻辑存储来分类,实体可分为内部实体内部实体与与外外部实体部实体两类。内部实体的内容是在文档内部设定的;而两类。内部实体的内容是在文档内部设定的;而外部实体则是一个外部独立的物理存储对象,如某个外外部实体则是一个外部独立的物理存储对象,如某个外部文件。部文件。(3 3)按照使用的范围来分类,实体可分为)按照使用的范围来分类,实体可分为一般实体一般实体与与参数实体参数实体两类。一般实体都用来构成文档的具体内容,两类。一般实体都用来构成文档的具体内容,可出现在可出现在XMLXML文档中,也可出现在文档中,也可出现在DTDDTD中;而参数实体中;而参数实体只能出现在只能出现在DTDDTD中,不能出现在中,不能出现在XMLXML文档中。文档中。.2、实体的分类.2323(1 1)、内部一般实体)、内部一般实体 内部一般实体就是在文档实体内部定义和使用的实内部一般实体就是在文档实体内部定义和使用的实体,其内容通常是一段文本字符。这种实体要在体,其内容通常是一段文本字符。这种实体要在DTDDTD中中通过通过DTDDTD语句的定义,可以在语句的定义,可以在XMLXML文档中使用,也可在文档中使用,也可在DTDDTD中使用。其定义的语法格式如下:中使用。其定义的语法格式如下:其中,其中,为关键字,为关键字,Eentity_nameEentity_name为实体为实体名称,名称,ReplacementReplacement为实体所代替的文本内容。引用内为实体所代替的文本内容。引用内部一般实体的方法如下:部一般实体的方法如下:&Eentity_name;&Eentity_name;课本课本p29 p29 例例2.152.15.(1)、内部一般实体课本p29 例2.15.2424当内部一般实体在当内部一般实体在DTDDTD中引用时,有以下几方面需注意。中引用时,有以下几方面需注意。不能在元素及属性的声明中引用内部一般实体,如下不能在元素及属性的声明中引用内部一般实体,如下面的语句即为非法的:面的语句即为非法的:在语句中不能出现循环,如下面的语句即为非法的:在语句中不能出现循环,如下面的语句即为非法的:!ENTITY thepub&pub;!ENTITY pub&thepub;课本课本p31 p31 例例.当内部一般实体在DTD中引用时,有以下几方面需注意。课本p32525(2 2)、)、外部一般实体外部一般实体 所谓外部一般实体就是在文档实体以外定义的,要所谓外部一般实体就是在文档实体以外定义的,要通过一个通过一个URLURL才能引用到的实体。外部一般实体为独立才能引用到的实体。外部一般实体为独立的文件,可被多个文档所引用。正因为每一个完整的的文件,可被多个文档所引用。正因为每一个完整的XMLXML文档都是一个合法的实体,所以文档都是一个合法的实体,所以XMLXML通过对外部一通过对外部一般实体的引用,可以在一个般实体的引用,可以在一个XMLXML文档中嵌入另一个文档中嵌入另一个XMLXML文档,或者将多个文档组合成一个文档。其定义的语法文档,或者将多个文档组合成一个文档。其定义的语法格式如下:格式如下:其中,其中,URLURL为引用的外部实体的为引用的外部实体的URLURL地址。引用外部一地址。引用外部一般实体也与引用内部一般实体的方法一样:般实体也与引用内部一般实体的方法一样:&Eentity_name;&Eentity_name;课本课本p32 p32 例例2.172.17.(2)、外部一般实体课本p32 例2.17.2626在引用外部一般实体时,有以下几方面需注意。在引用外部一般实体时,有以下几方面需注意。(1)(1)因为在一个文档中需引用某些外部文件,所以该文档因为在一个文档中需引用某些外部文件,所以该文档声明中的声明中的standalonestandalone属性不再是默认值属性不再是默认值yesyes,而应该为,而应该为nono。(2)(2)作为外部一般实体的文档,若使用的是作为外部一般实体的文档,若使用的是XMLXML的默认字的默认字符集即符集即UTF-8UTF-8或或UNICODEUNICODE,则可以在文档头部不进行,则可以在文档头部不进行XMLXML声明,否则,必须有声明,否则,必须有XMLXML声明,且声明时,一定要声明,且声明时,一定要说明说明encodingencoding属性。属性。.在引用外部一般实体时,有以下几方面需注意。.2727(3 3)、)、内部参数实体内部参数实体 内部参数实体是指在独立的外部内部参数实体是指在独立的外部DTDDTD文档的内部定文档的内部定义和使用的实体,其内容为仅能为义和使用的实体,其内容为仅能为DTDDTD而非而非XMLXML文档内文档内容的书写文本。这里提到参数实体与前面所讲的一般实容的书写文本。这里提到参数实体与前面所讲的一般实体是有区别的:体是有区别的:(1)(1)在引用形式上,一般实体的引用为在引用形式上,一般实体的引用为 “&Eentity_name;”“&Eentity_name;”,而参数实体的引用则为而参数实体的引用则为“%Eentity_name;”“%Eentity_name;”(2)(2)在引用范围上,一般实体可在在引用范围上,一般实体可在XMLXML文档中引用,也可文档中引用,也可在在DTDDTD中引用,而参数实体只可在中引用,而参数实体只可在DTDDTD中引用。中引用。定义内部参数实体的语法格式如下:定义内部参数实体的语法格式如下:.(3)、内部参数实体.2828(4 4)、)、外部参数实体外部参数实体 外部参数实体是指在独立的外部外部参数实体是指在独立的外部DTDDTD文档的外部定文档的外部定义和使用的实体,外部参数实体用于将多个独立的义和使用的实体,外部参数实体用于将多个独立的DTDDTD文档组合成一个大的文档组合成一个大的DTDDTD文档。定义外部参数实体的语文档。定义外部参数实体的语法格式如下:法格式如下:.(4)、外部参数实体.29292.1.5 使用使用DTD引用引用DTDDTD的方法有两种:的方法有两种:内部内部DTDDTD引用与外部引用与外部DTDDTD引用。引用。内部内部DTDDTD引用即在引用即在XMLXML文档中直接设定文档中直接设定DTDDTD;外部外部DTDDTD引用则是在引用则是在XMLXML文档中引用一个扩展名为文档中引用一个扩展名为.dtd.dtd的独立文件。的独立文件。.2.1.5 使用DTD引用DTD的方法有两种:.30301 1、内部、内部DTDDTD 内部内部DTDDTD的定义语句和的定义语句和XMLXML文档在同一个文档中,文档在同一个文档中,且通常放置在且通常放置在XMLXML文档的头部。在定义内部文档的头部。在定义内部DTDDTD时,时,定义内部定义内部DTDDTD的语句要全部放置在文档类型声明中,的语句要全部放置在文档类型声明中,其语法格式:其语法格式:!DOCTYPE Root_Element_Name 其中,其中,为关键字,为关键字,Root_Element_NameRoot_Element_Name为根元素名,为根元素名,部分则为内部分则为内部部DTDDTD定义语句。定义语句。.1、内部DTD.31312 2、外部、外部DTDDTD 外部外部DTDDTD就是有关文档定义的语句都被独立出来就是有关文档定义的语句都被独立出来放在一个外部文件中,对其进行独立的管理。跟据其放在一个外部文件中,对其进行独立的管理。跟据其内容的性质,可分为两种,一种是私有文件,指未公内容的性质,可分为两种,一种是私有文件,指未公开的、属于某组织或个人私有的开的、属于某组织或个人私有的DTDDTD文件;另一种是文件;另一种是公开文件,是指由国际标准组织如公开文件,是指由国际标准组织如ISOISO等或可发布技等或可发布技术建议的组织如术建议的组织如W3CW3C等,为某一领域所制定的公开等,为某一领域所制定的公开的标准的标准DTDDTD。引用私有引用私有DTDDTD文件的语法格式:文件的语法格式:其中,其中,URLURL为外部为外部DTDDTD文件的相对路径或绝对路径,文件的相对路径或绝对路径,该语句必须置于该语句必须置于XMLXML文档的头部,且在文档的头部,且在XMLXML文档处理文档处理指令中要将指令中要将standalonestandalone属性值设定为属性值设定为nono。.2、外部DTD.32323 3、混合、混合DTDDTD 所谓混合所谓混合DTDDTD,即为内部,即为内部DTDDTD与外部与外部DTDDTD混合使用。混合使用。在在DTDDTD使用的实际情况中,使用的实际情况中,很少使用完全标准的很少使用完全标准的DTDDTD,往往是公司先为所有的开发小组提供一分公共的,往往是公司先为所有的开发小组提供一分公共的DTDDTD作为外部作为外部DTDDTD,然后各个成员在实际的使用过程中再进,然后各个成员在实际的使用过程中再进行扩展定义,这时的扩展定义常常是使用内部行扩展定义,这时的扩展定义常常是使用内部DTDDTD来实来实现的。现的。.3、混合DTD.3333.34342.2 XML模式模式Scheman n2.2.1 Schema2.2.1 Schema与与DTDDTD的区别和优势的区别和优势n n模式(模式(SchemaSchema)所起的作用与)所起的作用与DTDDTD相同,也是由相同,也是由W3CW3C开发的。与开发的。与 DTD DTD相比,相比,XMLXML模式具有如下的几模式具有如下的几个优点:个优点:n nDTDDTD是用一种与是用一种与 XML XML不同的语法编写的,而不同的语法编写的,而XMLXML模式模式使用的是一种类使用的是一种类XMLXML的语言。的语言。n nDTDDTD中的所有声明都是全局声明,而中的所有声明都是全局声明,而XMLXML模式则既有模式则既有全局声明也有局部声明,可以视情况而定。全局声明也有局部声明,可以视情况而定。n nDTDDTD不能对一给定的元素或属性的数据类型进行定义,不能对一给定的元素或属性的数据类型进行定义,而而XMLXML模式具有一套完整的数据类型系统,它允许对模式具有一套完整的数据类型系统,它允许对数据类型如整型,时间型或字符串型等进行详细定义。数据类型如整型,时间型或字符串型等进行详细定义。.2.2 XML模式Schema2.2.1 Schema与DT35352.2.2局部和全局定义局部和全局定义n n在在DTDDTD中,每个元素都被声明为全局的,所以每个元中,每个元素都被声明为全局的,所以每个元素必须有一个唯一的名字并且只能声明一次。元素可素必须有一个唯一的名字并且只能声明一次。元素可被多个其他元素所引用,但在这些情况下,它们的定被多个其他元素所引用,但在这些情况下,它们的定义必须完全相同。义必须完全相同。n n然而在然而在XMLXML模式中,上下文是非常重要的。在模式的模式中,上下文是非常重要的。在模式的顶层声明的元素被认为是全局声明。在定义一个复杂顶层声明的元素被认为是全局声明。在定义一个复杂类型时,可以参考和使用这些全局定义的元素作为该类型时,可以参考和使用这些全局定义的元素作为该类型的一个子部分,也可以同时定义一些新的局部元类型的一个子部分,也可以同时定义一些新的局部元素,但作用域被限制在该复杂类型之内。素,但作用域被限制在该复杂类型之内。.2.2.2局部和全局定义.36362.2.3 Schema的基本结构的基本结构和使用和使用 xsd:schema ma This is my very first schema.This is my very first schema.It does not have any elements yet,but it will.It does not have any elements yet,but it will.2.2.3 Schema的基本结构和使用?xml ve37372.2.4简单类型简单类型2.2.4.1简单类型的定义2.2.4.2简单类型的种类(见下图).2.2.4简单类型2.2.4.1简单类型的定义.3838.3939n n2.2.4.32.2.4.3自定义的简单类型自定义的简单类型n n有时可以对各种简单类型进行适当的修改以更好地满有时可以对各种简单类型进行适当的修改以更好地满足需要,形成自定义的简单类型。定义过程分为两个足需要,形成自定义的简单类型。定义过程分为两个步骤:步骤:n n选择一个合适的简单类型作为基类型选择一个合适的简单类型作为基类型n n对此基类型添加一些限制条件,例如:指定其值的一对此基类型添加一些限制条件,例如:指定其值的一个有限的范围,指定其值的一个确定的集合,或者指个有限的范围,指定其值的一个确定的集合,或者指定值的格式等。定值的格式等。.2.2.4.3自定义的简单类型.4040 2.2.4.4 2.2.4.4对元素自定义格式对元素自定义格式 2.2.4.5 2.2.4.5 数值的嵌入和范围的设定数值的嵌入和范围的设定 2.2.4.6 2.2.4.6枚举类型的定义枚举类型的定义 2.2.4.7 2.2.4.7列表类型的定义列表类型的定义 2.2.4.8 2.2.4.8限制简单类型的长度限制简单类型的长度 2.2.4.9 2.2.4.9在模式中设定在模式中设定XMLXML元素的值元素的值 2.2.5 2.2.5 复杂类型复杂类型 2.2.5.1 2.2.5.1复杂类型概述复杂类型概述 XML XML中有四种复杂类型的元素:中有四种复杂类型的元素:第一种类型是第一种类型是“只含元素只含元素”类型,它只能含有子元素类型,它只能含有子元素或属性,而不能含有文本。或属性,而不能含有文本。第二种类型是第二种类型是“只含文本只含文本”类型,它只能含有文本和类型,它只能含有文本和属性,而不能含有子元素。属性,而不能含有子元素。.2.2.4.4对元素自定义格式.4141 第三种类型是第三种类型是“空元素空元素”类型,它可以有属性,但不类型,它可以有属性,但不能含有子元素或文本。能含有子元素或文本。第四种类型是第四种类型是“混合内容混合内容”类型,它可以包含元素,类型,它可以包含元素,属性和文本的组合。属性和文本的组合。2.2.5.2“2.2.5.2“只含元素只含元素”的元素定义的元素定义 一个复杂的一个复杂的“只含元素只含元素”的元素是由一系列的简单的元素是由一系列的简单和和/或其他复杂的元素构成。或其他复杂的元素构成。2.2.5.3“2.2.5.3“只含文本只含文本”的元素定义的元素定义 该类型有点类似于一个只含文本的简单类型,但不该类型有点类似于一个只含文本的简单类型,但不同的是它也可以有属性。同的是它也可以有属性。.第三种类型是“空元素”类型,它可以有属性,但不能含有子4242 2.2.5.4 2.2.5.4 空元素的定义空元素的定义 空元素不包含任何内容,但可以有属性。空元素不包含任何内容,但可以有属性。2.2.5.5 2.2.5.5 混合内容的元素定义混合内容的元素定义 XML XML模式中允许一个字段既包含文本有包含其他子字模式中允许一个字段既包含文本有包含其他子字段的混合内容元素。段的混合内容元素。2.2.5.6 2.2.5.6 复杂类型的元素定义复杂类型的元素定义 2.2.5.7 2.2.5.7组的定义组的定义 有时一组元素会在模式的多个地方出现。如果能给有时一组元素会在模式的多个地方出现。如果能给一元素赋予一个名称,然后在需要时通过调用组名来一元素赋予一个名称,然后在需要时通过调用组名来引用这组元素,这是很方便的。引用这组元素,这是很方便的。2.2.5.8 2.2.5.8属性定义属性定义 2.2.5.9 2.2.5.9一个案例一个案例 .2.2.5.4 空元素的定义.4343 谢谢 谢!谢!.谢 谢!.4444
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!