第2章 XML数据底层结构—DTD92439(精品).ppt
-
资源ID:70746360
资源大小:696.50KB
全文页数:80页
- 资源格式: PPT
下载积分:16金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
第2章 XML数据底层结构—DTD92439(精品).ppt
第第2章章XML数据的底层结构数据的底层结构DTD和和XMLScheman2.1XML类型定义语言DTDn2.2XML模式Schema两个基本的概念:n1格式良好的XML文档符合语法的XML文档称为结构良好的XML文档n2有效XML文档有效XML文档:内容结构严格遵守它自身的标记说明,能通过自身的语法检查;通过DTD验证的XML文档称为有效的XML文档。n格式良好的XML文档与有效的XML文档的区别?有效地有效地XML文档肯定是格式良好的文档肯定是格式良好的XML文档。文档。反过来,一个格式良好的反过来,一个格式良好的XML文档不一定是文档不一定是有效的有效的XML文档。有效的文档。有效的XML文档遵守文档遵守DTD或或Schema定义的规则。定义的规则。格式良好格式良好XML:GeorgeJohnReminderDontforgetthemeeting!有效(验证)的有效(验证)的XML:DTD文件:文件:XMLSchema为什么要用为什么要用DTDn有了DTD,每个XML文件可以携带一个自身格式的描述。n有了DTD,不同组织的人可以使用一个通用DTD用来交换数据。n应用程序可以使用一个标准DTD校验从外部世界接受来的XML数据是否有效n可以使用DTD校验自己的XML数据DTD文档类型定义文档类型定义n n在xml中,1描述了如何创建DTD,2如何将它与根据它的规则所编写的XML文档相关联,3并且XML处理器如何对DTD进行处理,4有了DTD就可以XML文档的结构是否正确。n nDTD为XML文档的编写者和处理者提供了共同遵循的标准,使得XML文档有了统一的标准。2.1XML类型定义语言类型定义语言DTD(DocumentTypeDefinition)文档类型定义DTD是一套关于标记符的语法规则,它定义了可用在文档中的元素、属性和可用在文档中的元素、属性和实体,以及这些内容之间的相实体,以及这些内容之间的相互关系。互关系。建立建立XML文档的步骤文档的步骤1.对相关信息项进行命名,将其映射为相应的元素或属性。2.确定XML文档的层次结构,即各元素之间的嵌套关系。3.根据DTD编写相应的XML文档。元素的定义元素的定义!DOCTYPE员工李亮男1978.2.5例题:2.1.1.1元素定义元素定义1.1.元素声明元素声明DTDDTD中所用的第一种声明是元素声明。其形式如中所用的第一种声明是元素声明。其形式如下:下:例:例:其中,其中,namename是一个标准的是一个标准的XMLXML标记的名字。标记的名字。contentcontent由以下三种之一组成:由以下三种之一组成:n n关键字EMPTYn n关键字ANYn n描述包含在本元素中的子元素的顺序和重复次数的内容模型DTD中声明元素应注意:1.1.声明以关键字ELEMENT开头,后面是元素名和包含于元素中的子元素列表。2.2.数据类型不是DTD的一个特征。3.3.DTD中所定义的每个元素,在对应的XML文档中有且仅有一个。4.4.XML区分大小写。元素的声明元素的声明元素内容说元素内容说明明含义含义#PCDATA#PCDATA 表示元素内部只能是可解析的文本数据表示元素内部只能是可解析的文本数据表示元素内部只能是可解析的文本数据表示元素内部只能是可解析的文本数据EMPTYEMPTY表示元素为空元素,但是元素中可以包含表示元素为空元素,但是元素中可以包含表示元素为空元素,但是元素中可以包含表示元素为空元素,但是元素中可以包含属性属性属性属性ANYANY表示元素的内容为任意的内容,可以是空表示元素的内容为任意的内容,可以是空表示元素的内容为任意的内容,可以是空表示元素的内容为任意的内容,可以是空元素、可解析文本数据、子元素、混合型元素、可解析文本数据、子元素、混合型元素、可解析文本数据、子元素、混合型元素、可解析文本数据、子元素、混合型元素中的任意一种元素中的任意一种元素中的任意一种元素中的任意一种子元素子元素子元素子元素表示元素的内容只能是指定顺序和出现次表示元素的内容只能是指定顺序和出现次表示元素的内容只能是指定顺序和出现次表示元素的内容只能是指定顺序和出现次数的子元素数的子元素数的子元素数的子元素混合型内容混合型内容混合型内容混合型内容表示元素的内部可以是可解析的文本数据,表示元素的内部可以是可解析的文本数据,表示元素的内部可以是可解析的文本数据,表示元素的内部可以是可解析的文本数据,也可以是子元素,甚至是两者的结合也可以是子元素,甚至是两者的结合也可以是子元素,甚至是两者的结合也可以是子元素,甚至是两者的结合2.元素内容类型(元素内容类型(Elementcontentmodel)元素内容通常有五种情况:EMPTY、ANY、#PCDATA、子元素型和混合型。EMPTY类型类型EMPTY用于定义空元素,即该元素只可能有属性而不会有字符数据或子元素声明空元素的语法是:例:例:空模式空模式n元素不能包含任何子元素,也不能包含任何数据内容。n语法:n例DTD定义如下:对应的XML实例1:花花对应的XML实例2:ANY类型类型这种类型的元素声明是:这表明该元素可以包含DTD中定义的其它任何元素或已编译的字符数据。PCDATA类型类型不包含其他子元素而只包含字符数据的元素(如),用关键字#PCDATA进行定义,它代表“已编译的字符数据”(parsedcharacterdata)。PCDATA可以包含除标记以外的一切字符,包括数字、字母和符号等。被定义为包含PCDATA的元素不能包含任何其他的子元素。!DOCTYPETeam!DOCTYPETeam!ELEMENTTeam(,Country,Member+)!ELEMENT(#PCDATA)ACMilanACMilan ItalyItaly PipoPipo 子元素类型子元素类型元素可以包含一系列的子元素,子元素内容模型用于指定某个元素可以包含哪些子元素.根据子元素间的关系,子元素内容模型可以有两种可能的结构:序列和选择。1.1.序列:其所有子元素必须出现且只能出现一次,并且按顺序出现。注意:序列中不能出现#PCDATA子元素还可以包含其他子元素。2.选择。选择。选择不能同时包含两个以上的子元素。选择不能同时包含两个以上的子元素。混合类型混合类型若某元素既包含子元素又包含已编译的字符数据,则该元素具有混合内容。其声明的语法如下:注意:必须以#PCDATA开头,*必须放在括号之后,混合类型中不能出现,?,+等符号。3.元素出现次数指示符(Elementoccurrenceindicator)n n?字符?字符它说明元素可以出现0次或1次。n n*字符字符它说明元素可以不出现,或出现1次或多次。n n+字符字符它说明元素必须出现至少一次,或者说可以出现一到多次例:例:nn正确的示例:n错误的示例:李华男XMLJava2006该生学习较刻苦,但成绩一般2007该生学习改进了学习方法,成绩有较大进步DTD属性定义属性定义n n属性用于将名字-值,对与元素进行关联。n n属性说明只能在开始标签和空元素标签中出现。n n属性声明中详细说明了与给定元素相关联的每个属性名,数据类型和缺省值。2.1.1.22.1.1.2属性定义属性定义1 1属性声明属性声明属性声明的语法如下:属性声明的语法如下:!ATTLIST 其中,其中,ATTLISTATTLIST关键字用来定义元素所具有的属性,关键字用来定义元素所具有的属性,Element_nameElement_name是元素名,是元素名,Attribute_nameAttribute_name是该元是该元素所具有的属性名,素所具有的属性名,TypeType是属性的类型,(十种是属性的类型,(十种类型)最常用的类型是类型)最常用的类型是CDATACDATA,Default_valueDefault_value是是属性的默认值。属性的默认值。n n!ATTLIST 声明属性时应注意以下几点:n n属性名称遵循的规则与有效的元素名称相同。n n在一个给定的元素中不能有两个属性同名。n n若属性值中含有双引号,则该属性值应用单引号括起来。设置属性的类型设置属性的类型元素内容说明元素内容说明含义含义CDATACDATA可解析的文本数据可解析的文本数据可解析的文本数据可解析的文本数据EnumeratedEnumerated枚举型数据枚举型数据枚举型数据枚举型数据ENTITYENTITY在在在在DTDDTD中声明的实体中声明的实体中声明的实体中声明的实体ENTITYESENTITYES在在在在DTDDTD中声明的若干实体中声明的若干实体中声明的若干实体中声明的若干实体IDID文档中唯一的取值文档中唯一的取值文档中唯一的取值文档中唯一的取值IDREFIDREF文档中某个元素文档中某个元素文档中某个元素文档中某个元素IDID属性值属性值属性值属性值IDREFSIDREFS文档中若干个元素的文档中若干个元素的文档中若干个元素的文档中若干个元素的IDID属性值属性值属性值属性值NMTOKENNMTOKEN任意不含空格的任意不含空格的任意不含空格的任意不含空格的XMLXML名称名称名称名称NMTOKENSNMTOKENS多个多个多个多个XMLXML名称名称名称名称NOTATIONNOTATION在在在在DTDDTD中声明的记号名中声明的记号名中声明的记号名中声明的记号名类型类型描述描述CDATA值为字符数据(characterdata)(en1|en2|.)此值是枚举列表中的一个值ID值为唯一的idIDREF值为另外一个元素的idIDREFS值为其他id的列表NMTOKEN值为合法的XML名称NMTOKENS值为合法的XML名称的列表ENTITY值是一个实体ENTITIES值是一个实体列表NOTATION此值是符号的名称xml:值是一个预定义的XML值2属性的类型属性的类型n nCDATA属性类型:字符数据!DOCTYPE剧本我可不这么认为!为什么呢?枚举属性类型:可从列表中选择属性类型n属性也可以被描述为一组可接受的取值的列表,XML文件中对属性的赋值将从这个列表中选取一个值。n各选择值通过竖线“|”分隔;n关键字ENUMERATED是不出现在DTD定义中的。!DOCTYPE购物篮属性的默认取值为“鸡肉”。不需要引号ID属性类型:属性值能唯一标识,一个元素只能有一个ID属性。!DOCTYPE联系人列表张三李四libbb.org不是有效的不是有效的不是有效的不是有效的XMLXML名称名称名称名称n nIDREF/IDREFS类型:用来引用同一个文档中另一个元素的ID属性,并且这个属性已经存在。利用这种属性我们可以把两个对象建立一种关联。IDREFS是若干个ID属性的值,之间用空格分开。!DOCTYPE联系人列表联系人列表张三张三李四李四IDREF/IDREFSnIDREFS同IDREF,是可以具有由空格分开的多个引用。空格NMTOKEN/NMTOKENS属性类型属性类型n n名称标记是任何命名字符的混合体n n只能包含名称字符,不能包含空白字符(空格)n n所有XML名称都是名称标记,但不是所有的名称标记都是XML名称。例:文档:!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图,江流石不转江流石不转,遗恨失吞吴遗恨失吞吴.!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图,江流石不转江流石不转,遗恨失吞吴遗恨失吞吴.!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图,江流石不转江流石不转,遗恨失吞吴遗恨失吞吴.!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图,江流石不转江流石不转,遗恨失吞吴遗恨失吞吴.n nNOTATION类型:在记号声明中的名称例如图象、声音、影象等等NOTATION(续)(续)在下面这个例子中,为电影元素指定了两种可选设备:一种是movPlayer.exe,用来播映.mov文件,另一种则用来绘制GIF图象。!DOCTYPE文件ENTITY和和ENTITYES属性类型属性类型n n引用文档中不可解析的外部实体。n n把外部二进制数据链接到文档。例:属性的缺省设置属性的缺省设置元素内容元素内容说明说明含义含义只有默认只有默认只有默认只有默认值值值值如果元素中不包含该属性,解析器将缺省值如果元素中不包含该属性,解析器将缺省值如果元素中不包含该属性,解析器将缺省值如果元素中不包含该属性,解析器将缺省值作为属性值。否则,该属性可以有其他值作为属性值。否则,该属性可以有其他值作为属性值。否则,该属性可以有其他值作为属性值。否则,该属性可以有其他值#REQUI#REQUIREDRED元素的每个实例都必须包含该属性元素的每个实例都必须包含该属性元素的每个实例都必须包含该属性元素的每个实例都必须包含该属性#IMPLIE#IMPLIED D元素的每个实例可以选择是否包含该属性元素的每个实例可以选择是否包含该属性元素的每个实例可以选择是否包含该属性元素的每个实例可以选择是否包含该属性#FIXED#FIXED元素的属性取值不能更改,只能为设定好的元素的属性取值不能更改,只能为设定好的元素的属性取值不能更改,只能为设定好的元素的属性取值不能更改,只能为设定好的默认值,如果元素的实例中不包含该属性,默认值,如果元素的实例中不包含该属性,默认值,如果元素的实例中不包含该属性,默认值,如果元素的实例中不包含该属性,系统将自动将该默认值作为元素的属性值系统将自动将该默认值作为元素的属性值系统将自动将该默认值作为元素的属性值系统将自动将该默认值作为元素的属性值属性声明可以给属性指定一个默认值,使得当在XML文档中未明确地指定该属性的值时,XML处理器会将此默认值作为该属性的值。属性的默认值可以分别用下面三个关键字进行定义:#REQUIRED、#IMPLIED和#FIXED。3属性的默认值属性的默认值n nREQUIRED:当一个元素的属性被声明为#REQUIRED之后,那么这个元素在使用时必这个元素在使用时必须具有该属性,否则须具有该属性,否则XML文档就是无效的。文档就是无效的。n nIMPLIED:若将一个元素的属性声明为IMPLIED,则该属性可以出现在指定的元素中,也可以缺省,即该属性不是必须使用的。可以包含也可能不包含该属性。可以包含也可能不包含该属性。n nFIXED:将一个属性声明为FIXED之后,在相应XML文档中可以不用明确地指定该属性的值,处理器会自动地给出其值;但如果要明确地指出属性值,该值必须是属性定义时给出的默认值。XML示例:XML示例:或XML示例:XML示例:属性综合示例属性综合示例信息工程计算机应用李华男对应的对应的DTDDTD与XML文档实例的关系1.类与对象2.数据库表结构与数据记录XML文档和文档和DTD的匹配的匹配DTD的声明n内部DTD的声明:n外部DTD的声明n内部DTD与外部DTD结合2.1.2XML文档和文档和DTD的匹配的匹配2.1.2.1内部DTDn n声明内部DTD的语法是:其中document.type.name与XML文档的根元素名相同n n在DTD中,所有的关键字都是大写。但DTD中所定义的元素大小写是任意的。内部内部DTD的缺点:的缺点:n n在文档中定义DTD会导致文档本身的长度增加,在传输数据时时,即使不需要验证文档的有效性,这些声明也会随着文档一起传输。n n如果多个XML文档要共用一个DTD,每个文档中都要加入一个DTD,相当繁琐。2.1.2.2外部个人外部个人DTD如果有多个文档要使用同一个DTD,则该DTD可被置于一个单独的文档中(注意DTD文件的文件扩展名为dtd),并在每个使用它的文档中放入一指向它的链接。最简单的方式是提供一个指向该文件的URL。n n名称的格式是:例:2.1.2.3外部公用外部公用DTD(ExternalPublicDTD)如果某个外部个人(SYSTEM)DTD很通用,可供其他的很多XML共享的话,可以给它一个正式的公用的标识符。首先是给该DTD一个正式的公用的名称。n n名称的格式是:-/BigBank/DTDsustomer_support/EN/例:例:n n外部个人外部个人DTD:DTD:!DOCTYPEgreetSYSTEM n n外部公用外部公用DTDDTD!DOCTYPEcustomerPUBLICn n名称以加号(+)或减号()开头。加号表示该DTD已经通过像ISO这样的标准组织的批准。减号表示该DTD未经标准化。n n“/BigBank/DTD”表示编写和维护该DTD的个人或组织。n n“sustomer_support”是对此DTD的描述,/EN/表示该DTD所用的语言,本例中是英语。DTD具有一个名称的优点是查找该DTD的应用程序可通过名字来查找,并且可以引用其最新版本,而不是在某一特定服务器(使用URL的情况)上的某一特定版本(可能已经过期)。名称的各个部分是:名称的各个部分是:文档类型定义与文档类型声明的文档类型定义与文档类型声明的区别:区别:n n文档类型声明:n n文档类型定义:*:文档类型声明包含文档类型定义,但类型定义不可以包含文档类型声明。2.1.2.3实体的定义实体的定义实体有各种类型,如下面所示的分类。但它们所起的作用是相同的。1、一般实体一般实体(General):文档内容中使用的实体。2、参数实体参数实体(Parameter):已经在DTD中使用过的分析实体。实体一般实体一般实体内部实体:将实体所指代的内容已经包含在DTD文件本身中。外部实体:指实体所指代的内容独立于XML文档。XML能过URL定位来引入外部实体;解释实体:一定会被XML解析器所解释并使用的实体。非解释实体:可能被XML解析器忽略的实体。n实体可以指代其他复杂的结构,包括形式规范的XML、其他形式的文本或二进制数据。n其中,非解释实体一定是外部实体,故实体可分为三类:内部解释实体(内部实体)内部解释实体(内部实体)外部解释实体外部解释实体外部非解释实体外部非解释实体实体使用标记限制实体使用标记限制n在实体中使用标记时,任何标记字符必须双重转义。nXML文档的逻辑结构和物理结构必须一致。物理结构和逻辑结构物理结构和逻辑结构逻辑结构:XML文档、替换文本中的元素。物理结构:文档实体和内部实体。XML文档n内部一般实体格式:引用实体方式:“&实体名;”n n外部一般实体格式:引用实体方式:“&实体名;”!DOCTYPEroster李华&skill1;&skill2;倪冰&skill1;&skill2;&skill3;使用外部文件定义内部解释实体使用外部文件定义内部解释实体outEntity.dtd:相应的XML:李华&skill1;&skill2;内部解释实体(内部普通实体)内部解释实体(内部普通实体)n使用外部文档类型定义的优点:方便XML文档的编写、修改、复用;nXML文档的归一化:将XML文档中的所有实体扩展成它所指代的具体内容;n实体的内容必须是完整的XML组成部分;n实体中可以嵌套实体;参数实体参数实体n n参数实体只能在DTD中使用。n n参数实体可解析。格式:引用实体方式:“%实体名;”4、不可解析实体:二进制文件和图像。参数实体的特征参数实体的特征n n参数实体是针对外部DTD所使用的实体。n n除了在实体声明的定义中可引用其他参数实体外,在元素声明时也可引用参数实体。例:实体声明和引用实体实体声明和引用实体n n一般实体声明后,可在XML文档中引用,不可以在元素声明中引用。n n在实体声明中引用实体时,不能形成死循环。实体声明和引用实体实体声明和引用实体n n参数实体必须在外部DTD中声明,而不能在内部DTD中声明。!DOCTYPEbookn n在XML文档中只能引用一般实体,引用参数实体并不能达到引用相应内容的效果。类型类型一般实体一般实体参数实体参数实体使用使用场合场合用在用在XML文档中文档中只用在只用在DTD中元素和属性中元素和属性的声明中的声明中声声明明方方式式内内部部外外部部引用引用方式方式&实体名实体名;%实体名实体名;元素的声明DTD包括属性的声明实体的声明预定义实体内部解释实体一般实体外部解释实体外部非解释实体参数实体本章小结本章小结n nDTDDTD设置了有效的设置了有效的XMLXML文档必须遵循的规则。文档必须遵循的规则。n nDTDDTD可以分为内部可以分为内部DTDDTD和外部和外部DTDDTD两类。两类。n n元素的内容可以为元素的内容可以为#PCDATA#PCDATA、EMPTYEMPTY、ANYANY、子元素和混合型内容。、子元素和混合型内容。n n#PCDATA#PCDATA表示元素的内容只能是可解析的文本数据。表示元素的内容只能是可解析的文本数据。n nEMPTYEMPTY表示元素内容为空。表示元素内容为空。n nANYANY表示任意的元素内容。表示任意的元素内容。n n子元素表示元素的内部只能是子元素。子元素表示元素的内部只能是子元素。n n混合型内容表示元素的内部可以是可解析的文本数据,也可以是子元素,甚混合型内容表示元素的内部可以是可解析的文本数据,也可以是子元素,甚至是两者的结合。至是两者的结合。n n如果如果DTDDTD中的元素名称后面跟有一个星号中的元素名称后面跟有一个星号*,那么这个元素可以不出现、出现,那么这个元素可以不出现、出现一次或多次。一次或多次。n n如果如果DTDDTD中的元素名称后面跟有一个星号中的元素名称后面跟有一个星号+,那么这个元素可以出现一次或多,那么这个元素可以出现一次或多次。与星号次。与星号*不同的是,该元素至少要出现一次。不同的是,该元素至少要出现一次。n n如果如果DTDDTD中的元素名称后面跟有一个问号中的元素名称后面跟有一个问号?,那么这个元素可以不出现或只出,那么这个元素可以不出现或只出现一次。现一次。n n字符代表字符代表“或或”,意思是一个或者另外一个命名元素可以出现。,意思是一个或者另外一个命名元素可以出现。有了或字符,就可以选择一个或多个元素。有了或字符,就可以选择一个或多个元素。n n实体根据其所处的位置不同可以分为内部实体和外部实体。实体根据其所处的位置不同可以分为内部实体和外部实体。n n内部一般实体是指在内部一般实体是指在XMLXML文档内部定义的并且可以在文档内部定义的并且可以在XMLXML文档文档中使用的实体。中使用的实体。n n外部一般实体是指实体是在外部一般实体是指实体是在XMLXML文档外部定义,然后通过文档外部定义,然后通过URLURL在文档内部进行引用。在文档内部进行引用。n n内部参数实体是指在内部参数实体是指在DTDDTD中定义的并且在只能在中定义的并且在只能在DTDDTD中引用的中引用的实体。实体。n n外部参数实体是在文档外部定义了,并且只能在外部参数实体是在文档外部定义了,并且只能在DTDDTD中使用的中使用的实体。实体。n n属性只能出现在开始标记和空元素标记中。属性的声明以属性只能出现在开始标记和空元素标记中。属性的声明以ATTLISTATTLIST开头,后面紧跟属性所述的元素名称,然后才是每个开头,后面紧跟属性所述的元素名称,然后才是每个属性的定义。属性的定义。n nCDATACDATA型数据就是指属性的取值必须是可解析的文本数据。型数据就是指属性的取值必须是可解析的文本数据。n nEnumeratedEnumerated型数据是指通过型数据是指通过“|”分隔可能的属性值列表,用分隔可能的属性值列表,用户可以从这些列表中选取其中的一个作为属性值,而且属性的户可以从这些列表中选取其中的一个作为属性值,而且属性的默认值必须为列表中的一个。默认值必须为列表中的一个。n nENTITYENTITY型数据用于表示外部不可解析的实体,例如二进制文件型数据用于表示外部不可解析的实体,例如二进制文件等。等。n nENTITYESENTITYES型数据与型数据与ENTITYENTITY型类似,不同的是这一类型类似,不同的是这一类型的属性可以存储一个实体序列。型的属性可以存储一个实体序列。n nIDID型数据是指元素的该类型的属性的取值在型数据是指元素的该类型的属性的取值在XMLXML文档文档中必须是唯一的,不能出现重复,这种类型的数据通中必须是唯一的,不能出现重复,这种类型的数据通常用于作为元素的标识。常用于作为元素的标识。n nIDREFIDREF型数据同前面提到的型数据同前面提到的IDID型数据有着紧密的关系,型数据有着紧密的关系,它是用于表示它是用于表示XMLXML文档中元素之间的一种联系,它的文档中元素之间的一种联系,它的取值必须是取值必须是XMLXML文档中被定义好的某一元素的文档中被定义好的某一元素的IDID类型类型属性值。属性值。n nIDREFSIDREFS型数据同型数据同IDREFIDREF型数据类似,不同之处是这种型数据类似,不同之处是这种类型的属性的取值可以是文档中已经定义好多个元素类型的属性的取值可以是文档中已经定义好多个元素的的IDID型属性值,这些取值之间必须用空格隔开。型属性值,这些取值之间必须用空格隔开。n nNMTOKENNMTOKEN型数据是指不含空格的型数据是指不含空格的XMLXML名称,它的作名称,它的作用是对属性的取值进行限制,通俗点讲就是规定了合用是对属性的取值进行限制,通俗点讲就是规定了合法的命名机制。法的命名机制。n nNMTOKENSNMTOKENS型数据同型数据同NMTOKENNMTOKEN型数据类似,它能型数据类似,它能够给一个元素的属性赋予多个够给一个元素的属性赋予多个NMTOKENNMTOKEN类型的数类型的数据,不同的据,不同的NMTOKENNMTOKEN数据之间用空格隔开。数据之间用空格隔开。n nNOTATIONNOTATION型数据用于在型数据用于在XMLXML声明特定的记号。声明特定的记号。n n属性的缺省值分为三类:属性的缺省值分为三类:#REQUIRED#REQUIRED、#IMPLIED#IMPLIED和和#FIXED#FIXED。n n#REQUIRED#REQUIRED关键字表示该属性在元素中不可缺少。关键字表示该属性在元素中不可缺少。n n#IMPLIED#IMPLIED表示该属性在包含它的元素中可以出现表示该属性在包含它的元素中可以出现也可以不出现。也可以不出现。n n#FIXED#FIXED缺省设置表示该属性的取值保持不变,而缺省设置表示该属性的取值保持不变,而且必须指定该属性的默认取值,如果在包含它的元且必须指定该属性的默认取值,如果在包含它的元素的实例中没有出现该属性的话,元素就自动取该素的实例中没有出现该属性的话,元素就自动取该默认值为属性值。默认值为属性值。