第2章 XML数据的底层结构—DTD.ppt
《第2章 XML数据的底层结构—DTD.ppt》由会员分享,可在线阅读,更多相关《第2章 XML数据的底层结构—DTD.ppt(80页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第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文档。有效的文档。有效的XM
2、L文档遵守文档遵守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、文档相关联,3并且XML处理器如何对DTD进行处理,4有了DTD就可以XML文档的结构是否正确。n nDTD为XML文档的编写者和处理者提供了共同遵循的标准,使得XML文档有了统一的标准。2.1XML类型定义语言类型定义语言DTD(DocumentTypeDefinition)文档类型定义DTD是一套关于标记符的语法规则,它定义了可用在文档中的元素、属性和可用在文档中的元素、属性和实体,以及这些内容之间的相实体,以及这些内容之间的相互关系。互关系。建立建立XML文档的步骤文档的步骤1.对相关信息项进行命名,将其映射为相应的元素或属性。2.确定XML文档的层次结构,即各元素之间的嵌套关系。3.根
4、据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开头,后面是元素名和包含于元素中
5、的子元素列表。2.2.数据类型不是DTD的一个特征。3.3.DTD中所定义的每个元素,在对应的XML文档中有且仅有一个。4.4.XML区分大小写。元素的声明元素的声明元素内容说元素内容说明明含义含义#PCDATA#PCDATA 表示元素内部只能是可解析的文本数据表示元素内部只能是可解析的文本数据表示元素内部只能是可解析的文本数据表示元素内部只能是可解析的文本数据EMPTYEMPTY表示元素为空元素,但是元素中可以包含表示元素为空元素,但是元素中可以包含表示元素为空元素,但是元素中可以包含表示元素为空元素,但是元素中可以包含属性属性属性属性ANYANY表示元素的内容为任意的内容,可以是空表示元素
6、的内容为任意的内容,可以是空表示元素的内容为任意的内容,可以是空表示元素的内容为任意的内容,可以是空元素、可解析文本数据、子元素、混合型元素、可解析文本数据、子元素、混合型元素、可解析文本数据、子元素、混合型元素、可解析文本数据、子元素、混合型元素中的任意一种元素中的任意一种元素中的任意一种元素中的任意一种子元素子元素子元素子元素表示元素的内容只能是指定顺序和出现次表示元素的内容只能是指定顺序和出现次表示元素的内容只能是指定顺序和出现次表示元素的内容只能是指定顺序和出现次数的子元素数的子元素数的子元素数的子元素混合型内容混合型内容混合型内容混合型内容表示元素的内部可以是可解析的文本数据,表示元
7、素的内部可以是可解析的文本数据,表示元素的内部可以是可解析的文本数据,表示元素的内部可以是可解析的文本数据,也可以是子元素,甚至是两者的结合也可以是子元素,甚至是两者的结合也可以是子元素,甚至是两者的结合也可以是子元素,甚至是两者的结合2.元素内容类型(元素内容类型(Elementcontentmodel)元素内容通常有五种情况:EMPTY、ANY、#PCDATA、子元素型和混合型。EMPTY类型类型EMPTY用于定义空元素,即该元素只可能有属性而不会有字符数据或子元素声明空元素的语法是:例:例:空模式空模式n元素不能包含任何子元素,也不能包含任何数据内容。n语法:n例DTD定义如下:对应的X
8、ML实例1:花花对应的XML实例2:ANY类型类型这种类型的元素声明是:这表明该元素可以包含DTD中定义的其它任何元素或已编译的字符数据。PCDATA类型类型不包含其他子元素而只包含字符数据的元素(如),用关键字#PCDATA进行定义,它代表“已编译的字符数据”(parsedcharacterdata)。PCDATA可以包含除标记以外的一切字符,包括数字、字母和符号等。被定义为包含PCDATA的元素不能包含任何其他的子元素。!DOCTYPETeam!DOCTYPETeam!ELEMENTTeam(,Country,Member+)!ELEMENT(#PCDATA)ACMilanACMilan
9、ItalyItaly PipoPipo 子元素类型子元素类型元素可以包含一系列的子元素,子元素内容模型用于指定某个元素可以包含哪些子元素.根据子元素间的关系,子元素内容模型可以有两种可能的结构:序列和选择。1.1.序列:其所有子元素必须出现且只能出现一次,并且按顺序出现。注意:序列中不能出现#PCDATA子元素还可以包含其他子元素。2.选择。选择。选择不能同时包含两个以上的子元素。选择不能同时包含两个以上的子元素。混合类型混合类型若某元素既包含子元素又包含已编译的字符数据,则该元素具有混合内容。其声明的语法如下:注意:必须以#PCDATA开头,*必须放在括号之后,混合类型中不能出现,?,+等符
10、号。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.
11、1.2属性定义属性定义1 1属性声明属性声明属性声明的语法如下:属性声明的语法如下:!ATTLIST 其中,其中,ATTLISTATTLIST关键字用来定义元素所具有的属性,关键字用来定义元素所具有的属性,Element_nameElement_name是元素名,是元素名,Attribute_nameAttribute_name是该元是该元素所具有的属性名,素所具有的属性名,TypeType是属性的类型,(十种是属性的类型,(十种类型)最常用的类型是类型)最常用的类型是CDATACDATA,Default_valueDefault_value是是属性的默认值。属性的默认值。n n!ATTLIS
12、T 声明属性时应注意以下几点:n n属性名称遵循的规则与有效的元素名称相同。n n在一个给定的元素中不能有两个属性同名。n n若属性值中含有双引号,则该属性值应用单引号括起来。设置属性的类型设置属性的类型元素内容说明元素内容说明含义含义CDATACDATA可解析的文本数据可解析的文本数据可解析的文本数据可解析的文本数据EnumeratedEnumerated枚举型数据枚举型数据枚举型数据枚举型数据ENTITYENTITY在在在在DTDDTD中声明的实体中声明的实体中声明的实体中声明的实体ENTITYESENTITYES在在在在DTDDTD中声明的若干实体中声明的若干实体中声明的若干实体中声明的
13、若干实体IDID文档中唯一的取值文档中唯一的取值文档中唯一的取值文档中唯一的取值IDREFIDREF文档中某个元素文档中某个元素文档中某个元素文档中某个元素IDID属性值属性值属性值属性值IDREFSIDREFS文档中若干个元素的文档中若干个元素的文档中若干个元素的文档中若干个元素的IDID属性值属性值属性值属性值NMTOKENNMTOKEN任意不含空格的任意不含空格的任意不含空格的任意不含空格的XMLXML名称名称名称名称NMTOKENSNMTOKENS多个多个多个多个XMLXML名称名称名称名称NOTATIONNOTATION在在在在DTDDTD中声明的记号名中声明的记号名中声明的记号名中
14、声明的记号名类型类型描述描述CDATA值为字符数据(characterdata)(en1|en2|.)此值是枚举列表中的一个值ID值为唯一的idIDREF值为另外一个元素的idIDREFS值为其他id的列表NMTOKEN值为合法的XML名称NMTOKENS值为合法的XML名称的列表ENTITY值是一个实体ENTITIES值是一个实体列表NOTATION此值是符号的名称xml:值是一个预定义的XML值2属性的类型属性的类型n nCDATA属性类型:字符数据!DOCTYPE剧本我可不这么认为!为什么呢?枚举属性类型:可从列表中选择属性类型n属性也可以被描述为一组可接受的取值的列表,XML文件中对属
15、性的赋值将从这个列表中选取一个值。n各选择值通过竖线“|”分隔;n关键字ENUMERATED是不出现在DTD定义中的。!DOCTYPE购物篮属性的默认取值为“鸡肉”。不需要引号ID属性类型:属性值能唯一标识,一个元素只能有一个ID属性。!DOCTYPE联系人列表张三李四libbb.org不是有效的不是有效的不是有效的不是有效的XMLXML名称名称名称名称n nIDREF/IDREFS类型:用来引用同一个文档中另一个元素的ID属性,并且这个属性已经存在。利用这种属性我们可以把两个对象建立一种关联。IDREFS是若干个ID属性的值,之间用空格分开。!DOCTYPE联系人列表联系人列表张三张三李四李
16、四IDREF/IDREFSnIDREFS同IDREF,是可以具有由空格分开的多个引用。空格NMTOKEN/NMTOKENS属性类型属性类型n n名称标记是任何命名字符的混合体n n只能包含名称字符,不能包含空白字符(空格)n n所有XML名称都是名称标记,但不是所有的名称标记都是XML名称。例:文档:!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图,江流石不转江流石不转,遗恨失吞吴遗恨失吞吴.!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图,江流石不转江流石不转,遗恨失吞吴遗恨失吞吴.!DOCTYPE poems 八阵
17、图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图,江流石不转江流石不转,遗恨失吞吴遗恨失吞吴.!DOCTYPE poems 八阵图八阵图 功盖三分国功盖三分国,名成八阵图名成八阵图,江流石不转江流石不转,遗恨失吞吴遗恨失吞吴.n nNOTATION类型:在记号声明中的名称例如图象、声音、影象等等NOTATION(续)(续)在下面这个例子中,为电影元素指定了两种可选设备:一种是movPlayer.exe,用来播映.mov文件,另一种则用来绘制GIF图象。!DOCTYPE文件ENTITY和和ENTITYES属性类型属性类型n n引用文档中不可解析的外部实体。n n把外部二进制数据链接到文档。例
18、:属性的缺省设置属性的缺省设置元素内容元素内容说明说明含义含义只有默认只有默认只有默认只有默认值值值值如果元素中不包含该属性,解析器将缺省值如果元素中不包含该属性,解析器将缺省值如果元素中不包含该属性,解析器将缺省值如果元素中不包含该属性,解析器将缺省值作为属性值。否则,该属性可以有其他值作为属性值。否则,该属性可以有其他值作为属性值。否则,该属性可以有其他值作为属性值。否则,该属性可以有其他值#REQUI#REQUIREDRED元素的每个实例都必须包含该属性元素的每个实例都必须包含该属性元素的每个实例都必须包含该属性元素的每个实例都必须包含该属性#IMPLIE#IMPLIED D元素的每个实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 XML数据的底层结构DTD XML 数据 底层 结构 DTD
限制150内