版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3 3章章 有效的有效的xmlxml文档之文档之dtddtd规范规范dtddtd基本概念基本概念3.1内部和外部内部和外部dtddtd3.2 dtd dtd对元素的声明对元素的声明3.3 dtd dtd对属性的声明对属性的声明3.4 实体的声明与引用实体的声明与引用3.5规范性规范性仅仅是仅仅是xml语言的基本语法,没有语言的基本语法,没有对对xml文件怎样组织数据进行具体的限制。文件怎样组织数据进行具体的限制。在某些系统中,如果不对在某些系统中,如果不对xml怎样组织数怎样组织数据进行合理的约束,尽管写出据进行合理的约束,尽管写出xml文件没文件没有任何语法错误(是规范的),但此有任何语
2、法错误(是规范的),但此xml文件对系统而言是没有实际价值的。文件对系统而言是没有实际价值的。 本章讲解有效的本章讲解有效的xml文件文件 . 对对xml的数据结构进行限制有两种方式:的数据结构进行限制有两种方式:使用文档类型定义(使用文档类型定义(document type definition,dtd)和)和xml schema模式。模式。 一个规范的一个规范的xml文件如果和某个文件如果和某个dtd文文件相关联,并遵守该件相关联,并遵守该dtd文件规定的约束文件规定的约束条件,就称之为条件,就称之为有效的有效的xml文件文件。 3.1 dtd3.1 dtd基本概念基本概念对对xml文档所
3、作的规范和约定被称为文档所作的规范和约定被称为dtd,也,也就是文档类型定义。可以把就是文档类型定义。可以把dtd看作是编写某类看作是编写某类xml文档的一个模板。文档的一个模板。在一个在一个dtd中,具体规定了引用该中,具体规定了引用该dtd的的xml文档可使用哪些标记、父元素中能够包括哪些子文档可使用哪些标记、父元素中能够包括哪些子元素、各个元素出现的先后顺序、元素可包含的元素、各个元素出现的先后顺序、元素可包含的属性、元素和属性值的数据类型,以及可使用的属性、元素和属性值的数据类型,以及可使用的实体及符号规则等。实体及符号规则等。dtd的分类的分类 一份一份dtd实际上是若干条有关元素、
4、属实际上是若干条有关元素、属性、实体等约束和声明语句的集合,这些性、实体等约束和声明语句的集合,这些语句可以包含在语句可以包含在xml文档内部,被称为内文档内部,被称为内部部dtd; 也可以独立保存为一个文件,而称为外也可以独立保存为一个文件,而称为外部部dtd,然后再将,然后再将xml文件与该外部文件与该外部dtd文件关联。文件关联。 二者的差异主要在位置上。二者的差异主要在位置上。3.2 3.2 内部和外部内部和外部dtddtd3.2.1 内部内部dtd语法:语法:其中:其中:!doctype:表示:表示dtd声明的开始,关键字声明的开始,关键字doctype必须大写。必须大写。根元素名称
5、:指定根元素名称:指定xml文档的根元素名称,这文档的根元素名称,这个根元素名称必须精确地与文档中实际的根元素个根元素名称必须精确地与文档中实际的根元素名称一致。名称一致。dtd声明语句序列:包含在一对方括声明语句序列:包含在一对方括号(号( )之内的若干条语句,用来对)之内的若干条语句,用来对xml文档中所使用的元素、属性和实文档中所使用的元素、属性和实体等进行具体声明。体等进行具体声明。在在xml声明之后紧接着加入声明之后紧接着加入dtd描述内容描述内容书上例书上例3.1.xml就是内部就是内部dtd的例子的例子dtddtd的基本结构的基本结构 !doctype 客户名单客户名单 文档类型
6、定义的结构说明文档类型定义的结构说明 “”为为dtd定义的结束标记,定义的结束标记,doctype为关键字,必须大写。为关键字,必须大写。“客户名单客户名单”为为xml文档的根元素,规定一对中括号要放到文档的根元素,规定一对中括号要放到根元素后面。根元素后面。“”为元素定义的为元素定义的结束标记。这部分内容是结束标记。这部分内容是dtd中最主要的内容。在中最主要的内容。在xml中不中不管是树枝节点还是树叶节点,都需要进行元素定义。管是树枝节点还是树叶节点,都需要进行元素定义。“!attlist”为元素的属性定义。有一些元素具有属性,属为元素的属性定义。有一些元素具有属性,属性是为了在应用程序对
7、文档进行处理时,提供参数或者控制信性是为了在应用程序对文档进行处理时,提供参数或者控制信息。元素所有的属性都必须在息。元素所有的属性都必须在dtd中进行定义。中进行定义。“”为注释。与文档本体一样,为注释。与文档本体一样,dtd中也可以含有注释。中也可以含有注释。内部内部dtd是很有用的,使用起来也很方便,不是很有用的,使用起来也很方便,不会因为找不到会因为找不到dtd文件而苦恼。但是内部文件而苦恼。但是内部dtd的引用会使的引用会使xml源文档的长度剧增。源文档的长度剧增。另外,如果多个另外,如果多个xml文档的结构相同,那么使文档的结构相同,那么使用内部用内部dtd就必须每个就必须每个xm
8、l文档编写一个文档编写一个dtd,那么就会造成资源的浪费,代价非那么就会造成资源的浪费,代价非常昂贵。那么如何解决这个问题呢?常昂贵。那么如何解决这个问题呢?3.2.2 外部外部dtd1外部外部dtd的创建的创建 外部外部dtd是一个独立于是一个独立于xml文档的文件,使文档的文件,使用用 .dtd为其文件扩展名。此种文件实际上也是一为其文件扩展名。此种文件实际上也是一个文本文件,可用任何文本编辑器创建。个文本文件,可用任何文本编辑器创建。 在外部在外部dtd中,除了没有内部中,除了没有内部dtd中的中的“!doctype 根元素名称根元素名称”语句之外,其他声语句之外,其他声明语句都是一样的
9、。基本格式如下:明语句都是一样的。基本格式如下: 元素、属性或实体的元素、属性或实体的dtd描述描述外部外部dtddtd文件示例文件示例 2. 在在xml文档中引用外部文档中引用外部dtd文件文件 在在xml文件中引用外部文件中引用外部dtd文件的基本格式如文件的基本格式如下:下: 引用外部引用外部dtddtd文件示例文件示例 kh-0165重庆重庆任建兴任建兴dd-3453.3 dtd3.3 dtd对元素的声明对元素的声明3.3.1 元素声明的语法元素声明的语法语法:语法:说明:说明:!element: 元素声明语句的开元素声明语句的开始,关键字始,关键字element必须大写。必须大写。元
10、素标记名元素标记名 : 所声明的元素名称。所声明的元素名称。元素内容约束元素内容约束:对该元素内容的定义,:对该元素内容的定义,用来规定该元素可以包含的内容。用来规定该元素可以包含的内容。3.3.2 各种元素内容的约束各种元素内容的约束1只包含子元素的约束只包含子元素的约束2只包含文本数据的约束只包含文本数据的约束3包含混合内容的约束包含混合内容的约束4empty和和any如果想约束如果想约束xml文件中某个元素标记可以文件中某个元素标记可以有怎样的子标记(子元素),那么有怎样的子标记(子元素),那么 dtd中中元素元素声明的声明的“标记的约束条件标记的约束条件”是用小括号括是用小括号括起的子
11、标记列表,格式为起的子标记列表,格式为 注:注:“子标记列表子标记列表”可以约束可以约束xml文件文件中的标记可以包含哪些子标记及这些子标中的标记可以包含哪些子标记及这些子标记出现的先后顺序记出现的先后顺序,这时,这时“子标记列表子标记列表”是用逗号隔开的若是用逗号隔开的若干个子标记,每个标记称为干个子标记,每个标记称为“子标记列表子标记列表”的一个分项,例如的一个分项,例如“子标记列表子标记列表”中若干个标记可以尾加中若干个标记可以尾加模模式限定符号式限定符号来限定该子标记是否允许重复来限定该子标记是否允许重复出现、出现的次数。出现、出现的次数。+:尾加该限定符号的子标记必须出现一次:尾加该
12、限定符号的子标记必须出现一次或多次或多次*:尾加该限定符号的子标记必须出现:尾加该限定符号的子标记必须出现0次次或多次或多次?:尾加该限定符号的子标记必须出现?:尾加该限定符号的子标记必须出现0次次或一次或一次没有尾加任何限定符号的子标记则必须且没有尾加任何限定符号的子标记则必须且只能使用一次只能使用一次可以使用可以使用( )来设置组,括号可以嵌套来设置组,括号可以嵌套 “子标记列表子标记列表”的分项也可以是几个标的分项也可以是几个标记的记的“或运算或运算”,而且,而且“或运算或运算”必须用必须用左、右小括号括起。例如:左、右小括号括起。例如:解释解释:约束名为:约束名为“应聘者应聘者”的标记
13、必须依的标记必须依次包含次包含3个子标记:一个名字是个子标记:一个名字是“姓名姓名”的的子标记,一个名字是子标记,一个名字是“专科专科”或或“本科本科”或或“研究生研究生”子标记(不能同时有),一子标记(不能同时有),一个名字是个名字是“男男”或或“女女”的子标记(不能的子标记(不能同时有)。同时有)。解释:解释:约束标记约束标记“应聘者应聘者”依次包含若干依次包含若干个子标记:一个名字是个子标记:一个名字是“姓名姓名”的标记。的标记。多个(包括零个)名字是多个(包括零个)名字是“奖励奖励”或或“处处分分”的子标记(的子标记(可以同时有可以同时有),最后一个),最后一个名字是名字是“男男”或或
14、“女女”子标记(不能同时子标记(不能同时有)有)p37例例3-5例例3.5.xml3.5.xml约束标记约束标记“客户地址客户地址”依次包含若干个子依次包含若干个子标记:一个名字是标记:一个名字是“地址地址”的标记。可以的标记。可以有也可以没有有也可以没有“电话电话”和和“email”元素元素(由(由?指定),但有的话只能是指定),但有的话只能是“电话电话”或或“email”元素中的一个,不能同时有元素中的一个,不能同时有(由(由|来指定)来指定) 如果准备约束一个标记没有子标记,也就是说只如果准备约束一个标记没有子标记,也就是说只能有文本数据,那么能有文本数据,那么“标记的约束条件标记的约束
15、条件”是用小括是用小括号括起的号括起的#pcdata,格式如下:格式如下: 你好你好 bye bye如果允许标记的内容既可以有可显示的文本数据,如果允许标记的内容既可以有可显示的文本数据,也可以有子标记,那么在也可以有子标记,那么在dtd文件中,元素的文件中,元素的“标记的约束条件标记的约束条件”是关键字是关键字“#pcdata”和和若干若干个子标记的个子标记的“或运算或运算”,而且该,而且该“或运算或运算”必须用必须用小括号括起并尾加一个小括号括起并尾加一个“*”号,格式如下:号,格式如下: 例题例题3.4.xml混合内容既可以为空,也可能只包含子元混合内容既可以为空,也可能只包含子元素,也
16、可能是字符数据(素,也可能是字符数据(#pcdata),或或者是既有字符数据又有子元素的混合形式。者是既有字符数据又有子元素的混合形式。注意:混合内容只能约束可以有哪些子标注意:混合内容只能约束可以有哪些子标记,不能约束这些子标记出现的次数和出记,不能约束这些子标记出现的次数和出现的顺序,另外,约束条件中也不能使用现的顺序,另外,约束条件中也不能使用限制符号限制符号如果准备约束一个标记是空标记,或者是如果准备约束一个标记是空标记,或者是只含有空字符的非空标记,元素的只含有空字符的非空标记,元素的“标记标记的约束条件的约束条件”可以是关键字可以是关键字“empty”;如果不准备对一个元素标记的内
17、容有任何如果不准备对一个元素标记的内容有任何约束,元素的约束,元素的“标记的约束条件标记的约束条件”可以是可以是关键字关键字“any”。例如:。例如: any、empty的前后不能加括号。的前后不能加括号。 例例3.3.xml中,中,“客户名单客户名单”元素定义为元素定义为“any”,似乎可在,似乎可在“客户名单客户名单”中放入中放入任何内容,包括子元素在内,但实际本例任何内容,包括子元素在内,但实际本例错了,因为有效的错了,因为有效的xml文档中任何元素必文档中任何元素必须在须在dtd中给出定义。中给出定义。 因此,尽可能不要使用因此,尽可能不要使用any来定义元素来定义元素内容。内容。3.
18、3.3 dtd的完整性的完整性(1)不允许相互嵌套)不允许相互嵌套 如果一个如果一个dtd元素约束某个标记可以出元素约束某个标记可以出现某个子标记,那么对该子标记进行约束现某个子标记,那么对该子标记进行约束的的dtd元素就不能约束该标记的子标记是元素就不能约束该标记的子标记是它的父标记。它的父标记。(2)xml文件中的每个标记都必须在文件中的每个标记都必须在dtd中有相应元素进行约束。中有相应元素进行约束。3.4 dtd3.4 dtd对属性的声明对属性的声明3.4.1 属性声明的语法属性声明的语法 xml文档中的元素的属性目的是为元素文档中的元素的属性目的是为元素标记提供额外的信息,有些是必要
19、的,有些标记提供额外的信息,有些是必要的,有些则不一定需要设置属性,并且有些属性当没则不一定需要设置属性,并且有些属性当没有设置属性值时会自动以默认值取代。当然,有设置属性值时会自动以默认值取代。当然,元素不一定要属性;元素不一定要属性;但若使用了属性,则每但若使用了属性,则每个属性都需在个属性都需在dtd中予以定义中予以定义。dtd中定义中定义元素属性的基本格式:元素属性的基本格式:或或 attlist是一个属性列表,可包含多个属性。是一个属性列表,可包含多个属性。 例子:例子:说明:说明:在在attlist声明中,涉及到声明中,涉及到“属性名称属性名称”“属性类属性类型型”和和“默认值情况
20、默认值情况”,其意义分别阐述如下:,其意义分别阐述如下:(1)属性名称)属性名称 属性名称的命名规则和标记的命名属性名称的命名规则和标记的命名规则相同,可以由字母、数字、下划线(规则相同,可以由字母、数字、下划线(“_”)、)、点(点(“.”)或连字符()或连字符(“-”)组成,但必须以字母)组成,但必须以字母或下划线开头。或下划线开头。(2)属性类型)属性类型 我们已经知道属性值一定是一个字符串,那么属我们已经知道属性值一定是一个字符串,那么属性类型就决定了属性可以用怎样的字符串作为属性性类型就决定了属性可以用怎样的字符串作为属性的值。的值。(3)默认值情况)默认值情况 attlist声明是
21、为了约束声明是为了约束xml文件中标记的属性,文件中标记的属性,attlist声明中关于属性的声明中关于属性的“默认值情况默认值情况”是对是对xml文件中标记的属性进行约束的细节条件文件中标记的属性进行约束的细节条件. 3.4.2 属性默认值情况属性默认值情况1“默认值情况默认值情况”是字符串是字符串 如果某个属性的如果某个属性的“默认值情况默认值情况”是一个字是一个字符串,符串, xml中对应元素标记必须有该属性,中对应元素标记必须有该属性,但元素标记中但元素标记中可人为添加或不添加可人为添加或不添加该属性,该属性,若不添加的话则默认有该属性若不添加的话则默认有该属性且其属性值即且其属性值即
22、为此处定义的默认值。为此处定义的默认值。 例:例:例题例题3-8 p43属性类型,该属性类型,该类型表明属性类型表明属性值可以是任意值可以是任意字符串字符串默认值情况默认值情况3.4.2 属性默认值情况属性默认值情况2“默认值情况默认值情况”是是#implied 在在attlist定义的属性约束列表中可以定义的属性约束列表中可以设置属性的设置属性的“默认值情况默认值情况”是是#implied。表示该元素的该属性可有可无。表示该元素的该属性可有可无。例:例: 此时该属性就没有默认值,而且相应的此时该属性就没有默认值,而且相应的标记里可以附加或不附加该属性标记里可以附加或不附加该属性3.4.2 属
23、性默认值情况属性默认值情况3“默认值情况默认值情况”是是#required 在在attlist定义的属性约束列表中可以设定义的属性约束列表中可以设置属性的置属性的“默认值情况默认值情况”是是#required 。例:例: 此时该属性没有默认值,相应的元素标记此时该属性没有默认值,相应的元素标记必须要添加该属性并给出属性的值,不能缺必须要添加该属性并给出属性的值,不能缺省。省。例题例题3-9 p44 3.4.2 属性默认值情况属性默认值情况4“默认值情况默认值情况”是是#fixed 默认值默认值 表明属性具有固定的值,不可改变。在表明属性具有固定的值,不可改变。在xml文件中元素的该属性可指定也
24、可不指文件中元素的该属性可指定也可不指定,若没有的话,则默认有该属性且其属定,若没有的话,则默认有该属性且其属性值即为此处定义的默认值;若有的话则性值即为此处定义的默认值;若有的话则属性的值必须与默认值完全相同,即该属属性的值必须与默认值完全相同,即该属性的属性值是不可修改的。性的属性值是不可修改的。例:例: 例题例题3-10 p453.4.3 属性的各种类型属性的各种类型某个属性的类型(某个属性的类型(type)规定了哪种类型)规定了哪种类型的数据可以作为该属性的值。的数据可以作为该属性的值。xml规范允规范允许为元素的属性指定许为元素的属性指定7种不同的类型:种不同的类型:cdata、枚举
25、类型、枚举类型|、nmtoken、nmtokens、id、idref、idrefs3.4.3 属性的各种类型属性的各种类型1cdata类型类型 对于对于cdata(character data)类型的)类型的属性,该属性的值可以是任何一个字符串,属性,该属性的值可以是任何一个字符串,但是,字符串中不能含有含有左尖括号、但是,字符串中不能含有含有左尖括号、右尖括号、与符号、单引号和双引号,如右尖括号、与符号、单引号和双引号,如果想使用这些字符,可以使用实体引用。果想使用这些字符,可以使用实体引用。例题例题3-11 p463.4.3 属性的各种类型属性的各种类型2枚举类型枚举类型 如果属性的类型是
26、枚举类型,那么该属性只可如果属性的类型是枚举类型,那么该属性只可以是枚举值。枚举类型其格式是将属性可以取的以是枚举值。枚举类型其格式是将属性可以取的值用符号值用符号“|”分隔,枚举类型的定义格式如下:分隔,枚举类型的定义格式如下: 各候选属性值不允许出现空格各候选属性值不允许出现空格例题例题3-12 p473.4.3 属性的各种类型属性的各种类型3nmtoken类型类型 如果属性的类型是如果属性的类型是nmtoken类型的属性,则类型的属性,则属性值只能包含字母、数字、小数点、连字符、属性值只能包含字母、数字、小数点、连字符、下划线和冒号,不能含有空格字符和下划线和冒号,不能含有空格字符和#。
27、对应对应xml: 写字桌写字桌 例题例题3-13 p483.4.3 属性的各种类型属性的各种类型4nmtokens类型类型 对于对于nmtoken类型的属性,其属性值类型的属性,其属性值中不能含有空格。如果需要某个属性的中不能含有空格。如果需要某个属性的属属性值含有空格,而且是被空格分隔开的若性值含有空格,而且是被空格分隔开的若干子字符串干子字符串,那么就可以将属性的类型取,那么就可以将属性的类型取为为nmtokens类型类型.例题例题3-14 p493.4.3 属性的各种类型属性的各种类型5id类型类型如果希望某个属性的属性值具有唯一性,即不允如果希望某个属性的属性值具有唯一性,即不允许其它
28、许其它id类型的属性再取这个属性值,那么就可类型的属性再取这个属性值,那么就可以将属性的类型取为以将属性的类型取为id类型。类型。注意注意id类型的属性值必须以字母或下划线或汉类型的属性值必须以字母或下划线或汉字开头,属性值中不能出现空格。字开头,属性值中不能出现空格。一个元素只能一个元素只能有一个有一个id类型的属性。类型的属性。注意注意需要特别注意的是需要特别注意的是id类型属性的类型属性的“默认值默认值情况情况”只能是只能是“#required”和和“#implied” 例题例题3-15 p493.4.3 属性的各种类型属性的各种类型6idref类型类型 如果准备通过标记的属性值来建立标
29、记如果准备通过标记的属性值来建立标记之间的联系,就可以在标记中使用之间的联系,就可以在标记中使用idref(identifier reference)类型的属性。)类型的属性。idref类型属性的属性值类型属性的属性值只能取其他元素只能取其他元素中中id类型属性的属性值类型属性的属性值。idref属性类型属性类型的属性值中不能有空格。的属性值中不能有空格。例题例题3-16 p503.4.3 属性的各种类型属性的各种类型7idrefs类型类型 我们希望约束某个属性的属性值是若干我们希望约束某个属性的属性值是若干个其它个其它id属性的属性值的组合,属性的属性值的组合,idrefds类型属性的属性值
30、能满足这一愿望。对于类型属性的属性值能满足这一愿望。对于idrefs类型的属性,它的值可以是用空类型的属性,它的值可以是用空格分隔的若干个其它格分隔的若干个其它id属性的属性值。属性的属性值。例例题题3-17 p52参见书上参见书上3.6.xml和和3.7.xml3.5 3.5 实体的声明与引用实体的声明与引用3.5.1 实体的概念与分类实体的概念与分类1实体的概念实体的概念 实体在实体在xml中充当宏或别名的角色,中充当宏或别名的角色,其最根本的作用是帮助你为一大段文本创其最根本的作用是帮助你为一大段文本创建一个别名,这样,在文件的另一个位置建一个别名,这样,在文件的另一个位置需要引用这段文
31、本时,仅需要指向它的别需要引用这段文本时,仅需要指向它的别名就可以了。这样一来,用于重新输入这名就可以了。这样一来,用于重新输入这段文本的大量时间就被节约下来了。它还段文本的大量时间就被节约下来了。它还意味着一旦需要修改,仅需在一个地方做意味着一旦需要修改,仅需在一个地方做改动,就完成了全局的改动。改动,就完成了全局的改动。2实体的分类实体的分类一般实体:用来替代文档具体内容的实体一般实体:用来替代文档具体内容的实体。参数实体:只能在外部参数实体:只能在外部dtd中定义和引用的实体,中定义和引用的实体,不能在不能在xml文档中引用。文档中引用。内部实体:不是在外部独立的文档中定义实体内内部实体
32、:不是在外部独立的文档中定义实体内容。容。外部实体:所定义的实体内容为外部独立存在的外部实体:所定义的实体内容为外部独立存在的文件。文件。可解析实体:包含字符、数字、文本块或标记的可解析实体:包含字符、数字、文本块或标记的实体。实体。不可解析实体:包含图片、声音等其他二进制数不可解析实体:包含图片、声音等其他二进制数据的实体。据的实体。3.5.2 内部一般实体内部一般实体 内部一般实体是指在内部一般实体是指在dtd中定义的一段具体文中定义的一段具体文字内容,通常在字内容,通常在xml文档的元素中引用,也可在文档的元素中引用,也可在dtd语句中引用。语句中引用。在在dtd中声明内部一般实体的语法
33、:中声明内部一般实体的语法:说明:说明:!entity :表示开始声明一个实体,关键字:表示开始声明一个实体,关键字entity必须大写。必须大写。实体名:实体名:必须以字母或下划线必须以字母或下划线(_)开头,后面是开头,后面是0个或多个字母、数字、句点个或多个字母、数字、句点(.)、连字符、连字符(-)或下划或下划线线(_)。实体名同样也是区分大小写的。实体名同样也是区分大小写的。实体值:实体值:表示实体的具体内容,表示实体的具体内容,是一个字符串,对于特殊字符要是一个字符串,对于特殊字符要用实体引用。用实体引用。在在xml文档或者文档或者dtd中引用内部一般中引用内部一般实体的语法:实体
34、的语法:&实体名实体名;内部一般实体内部一般实体 张晓迪张晓迪 女女 销售部销售部 &良好良好; 当内部一般实体在当内部一般实体在dtd中引用时,有以下几方面中引用时,有以下几方面需注意。需注意。(1) 不能在元素及属性的声明中引用内部一般实不能在元素及属性的声明中引用内部一般实体,如下面的语句即为非法的:体,如下面的语句即为非法的:参见参见p57:3.8.xml, 3.9.xml(2) 在语句中不能出现循环,如下面的语句即为在语句中不能出现循环,如下面的语句即为非法的:非法的: 参见参见p57:3.10.xml, 3.11.xml(3)实体定义的替换内容中,若包含元素)实体定
35、义的替换内容中,若包含元素标记,则该元素不能在一个实体中开始,标记,则该元素不能在一个实体中开始,而在另一个实体中结束而在另一个实体中结束参见参见p58下至下至p603.5.3 外部一般实体外部一般实体 外部实体所对应的内容通常放在一个独外部实体所对应的内容通常放在一个独立存在的文件中(如立存在的文件中(如txt或或xml文件)定义文件)定义格式:格式: uri地址指定的是包含实体数据的文件地址指定的是包含实体数据的文件的位置。外部实体文件只能包含可以合法的位置。外部实体文件只能包含可以合法插入元素中的项目(字符数据、嵌套元素插入元素中的项目(字符数据、嵌套元素等)。等)。在在xml文档中引用
36、外部一般实体的语法:文档中引用外部一般实体的语法:&实体名实体名;注意:注意:包含实体数据的文件的第一行包含实体数据的文件的第一行必须是必须是xml声明。声明。参见参见p61小结小结dtd的基本结构的基本结构内部内部dtd引用引用外部外部dtd引用引用dtd中的元素定义中的元素定义如何控制元素内容如何控制元素内容dtd中的属性定义中的属性定义内部一般实体的定义及引用内部一般实体的定义及引用练习题练习题(1)在内部)在内部dtd中开始设定中开始设定dtd的关键字为(的关键字为( )a.!element b.!doctype c.!attlist d.!entity(2)引用外部)引用外部dtd的关键字为(的关键字为( ) a.pcdata b.element c.system d.cdata(3)希望子元素出现)希望子元素出现0或或1次,应该怎样定义元素类型(次,应该怎样定义元素类型( ) a.子元素子元素? b.子元素子元素+ c.子元素子元素 d.子元素子元素*(4)如果希望属性值为某些固定值之一,可将该属性定义为)如果希望属性值为某些固定值之一,可将该属性定义为( )类型。)类型。 a.#pcdata b.cdata c.枚举枚举 d.nmtoken(5)如果希望属性的取值唯一,则该属性应定义为()如果希望属性的取值唯一,则该属性应定义为( )类)类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年生物制药研发生产许可使用合同
- 2024年电子商务平台技术开发及运营转让合同
- 定期动产赠与合同范例
- 水果生鲜加盟合同范例
- 活动板房购买合同范例
- 混泥土道路施工方案
- 汕头大学《创意立体剪裁》2023-2024学年第一学期期末试卷
- 2024至2030年返捻机项目投资价值分析报告
- 残联合同范例
- 2024至2030年氯碳化硅项目投资价值分析报告
- IATF16949-过程审核检查表-(含审核记录)-
- 《万疆》歌词全篇
- 电大劳动与社会保障法期末考试(已排版)
- JJF(纺织)074-2018羽绒蓬松度仪校准规范
- GB/T 709-2019热轧钢板和钢带的尺寸、外形、重量及允许偏差
- GB/T 23935-2009圆柱螺旋弹簧设计计算
- 癫痫发作急救及应急预案考核试题及答案
- 【课件】读后续写 suspended coffee
- GB/T 14048.15-2006低压开关设备和控制设备第5-6部分:控制电路电器和开关元件接近传感器和开关放大器的DC接口(NAMUR)
- 2023年上海各区中考物理一模卷及答案
- powerpoint 演示文稿 - 链表的基本概念
评论
0/150
提交评论