收藏 分享(赏)

第三章-有效的xml文件.ppt

上传人:无敌 文档编号:85974 上传时间:2018-03-11 格式:PPT 页数:51 大小:329.02KB
下载 相关 举报
第三章-有效的xml文件.ppt_第1页
第1页 / 共51页
第三章-有效的xml文件.ppt_第2页
第2页 / 共51页
第三章-有效的xml文件.ppt_第3页
第3页 / 共51页
第三章-有效的xml文件.ppt_第4页
第4页 / 共51页
第三章-有效的xml文件.ppt_第5页
第5页 / 共51页
点击查看更多>>
资源描述

1、第三章 有效的XML文件,本章主要内容,什么是有效的XML文件 怎样检查XML文件有效性 XML文件与DTD的关联PUBLIC关联型SYSTEM关联型 DTDDTD中的元素DTD中的属性DTD中的实体,XML声明例子,通过第二章的学习我们已经掌握了什么是规范的XML文件.由此可见规范的XML文件只是遵循了XML的基本语法.它并没有对XML文件怎样组织数据进行具体的限制,故对同一问题编写的XML文件,在数据结构上就可能有很大的不同.下面我们来看个例题.,即只有符合W3C制定的基本语法规则的XML文件就成为规范的XML文件,例1:Time1.xml 开车时间:20点58分例2:Time2.xml开

2、车时间 20点58分 ,对于上述的两个文件我们都会知道T28的开车时间.但是对于解析器,两个文件的数据结构是不同的.第一个文件中标记“T28”的内容只有文本数据”开车时间:20点58分”,而第二个文件中标记“T28”不仅有文本数据”开车时间”还有子标记” hour ” 和” minute”解析器只有解析出子标记中的文本数据后,才能知道T28的开车时间.注:这里对空白区进行忽略.,规范的XML文件 + 对怎样组织数据进行具体的限制 = 有效的XML文件.,什么是有效的XML文件,对XML的数据结构的限制有两种方式:文档类型定义(Document Type Definition) DTDXML S

3、chema模式两者区别,什么是有效的XML文件,什么是有效的XML文件?一个规范的XML文件如果和某个DTD文件相关联,并遵守该DTD文件规定的限制条件就称为有效的XML文件。,FOR MORE INFO.,DTD文件的编码必须与相关联的XML文件一致。,当你保存文件时如果系统总是给你加上”.txt”,那你就要在文件名上加上双引号,XML文件与DTD的关联,关联的形式有如下两种SYSTEM关联SYSTEM关联表明所关联的DTD文件由个人或工作小组所定义且认可PUBLIC关联PUBLIC关联表明所关联的DTD文件已经得到某一领域的认可,是经过许多人讨论得到认可的DTD文件,XML文件与DTD的关

4、联 - SYSTEM关联型,SYSTEM关联型的文档类型声明格式例子:,统一资源标识符(Uniform Resource Identifier).URI必须是有效的资源.如果URI是一个文件的名字,该文件必须和当前的XML文件在同一目录下,如果不在同一目录下就要写清路径.如果是一个链接地址那么这个链接地址必须是可以访问的,XML文件与DTD的关联 - PUBLIC关联型,PUBLIC关联型文档类型声明格式,FOR MORE INFO.,正式公用标识符(Formal Public Identifier, FPI)格式:“-/ISO认证/单位名称/DTD说明/所用语言”,例子:,注:FPI中不可以

5、有非ASII码字符,DTD 初识DTD,例子:A.dtd,下面我们来看一个简单的例子,约束XML文件中的根标记”学生”只可以有且必须两个子标记”小张”和”李四”,约束XML文件中的标记”小张”只可以有且必须两个子标记”入学时间”和”毕业时间”,约束标记”入学时间”和”毕业时间”只能有文本数据,不可以有子标记,”#PCDATA”表示已解析的文本数据(是指不含有左尖括号、右尖括号、与符号、单引号和双引号的字符序列或者是CDATA),例子:,13点12分23点12分,08点45分19点36分,检查有效性,浏览器的XML解析器仅仅检查XML文件关联的DTD文件是否有语法错误,并不检查XML文件是否遵守

6、该DTD规定的约束条件。DOM解析器检查XML文件的规范,DTD文件的语法,XML文件的引用,XML文件或DTD文件不存在等.,DTD DTD中的元素,ELEMENT用来约束XML文件中的标记.在DTD中使用元素声明来定义一个元素。其格式为:例子:,声明开始,元素名称,声明结束,元素声明开始, “、“!”和“ELEMENT”中间不能有空格,声明结束,注:DTD文件中元素的作用与其在DTD文件中的书写位置无关。在DTD文件中不能使用多个元素约束同一个标记,即使它们的约束条件相同,DTD ELEMENT作用,规定标记的子标记限制标记只有文本数据规定标记的混合内容EMPTY和ANY,ELEMENT作

7、用 规定标记的子标记,约束的内容规定有那些子标记子标记是否允许重复出现子标记出现的顺序 这些约束内容出现在DTD中元素声明的“标记的约束条件”部分。格式如下:,ELEMENT作用 规定标记的子标记,格式例子另外我们还可以在子标记列表中的子标记后加限定符号,限定符号如下: 子标记列表标记符 +限定符号的标记必须出现一次或多次 *限定符号的子标记可出现零次或多次 ? 限定符号的子标记可出现零次或一次例子,使用这种约束条件的元素将约束XML文件中相应的标记只可以有子标记,不可以含有能显示的文本数据。,子标记列表是由逗号分隔开的,每个标记称做它的一个分项。子标记在父标记出现的顺序是不能改变, 04点

8、58分 , 58分 04点 ,ELEMENT作用 规定标记的子标记,子标记列表的分项也可以是几个标记的“或运算”,他们必须用小括号扩起.例子,约束标记“应聘者 ”顺序地有三个标记:一个“姓名”标记,一个“本科”、“硕士”或“博士”标记,一个“男”或“女”标记,ELEMENT作用 规定标记的子标记,子标记列表标记符和“或运算”一起使用的例子:!ELEMENT 应聘者 (姓名, (奖励|处分)*, (男|女),约束标记“应聘者 ”顺序地有若干个标记:一个“姓名”标记,多个(包括零个)“奖励” 或“处分”标记,一个“男”或“女”标记。,ELEMENT作用 限制标记只有文本数据,如果准备约束一个没有子

9、标记的标记,“标记的约束条件”就用小括号括起来的“#PCDATA”.格式如下:关键字“#PCDATA”约束标记的文本数据可以有普通字符、CDATA段内容、字符引用和实体引用.也可以是由一个空字符组成的文本数据。,下列“hello“标记都是符合约束条件的标记, 你好你好 , 你好 hello,ELEMENT作用 规定标记的混合内容,格式如下: 例子:.K83次特快列车20点36分07点12分,是指即可以有子标记也可以有文本数据,标记的约束条件是关键字“#PCDATA”和若干个子标记的“或”运算,而且该“或运算”必须用小括号括起来并尾加一个“*”号。注:必须用“*”号结尾。,(#PCDATA|子标

10、记1|子标记2. |子标记1 ) (#PCDATA|子标记1|子标记2. |子标记1 )+(#PCDATA|子标记1|子标记2. |子标记1 ?(#PCDATA,子标记1,子标记2. ,子标记1 )请找出错误的原因.,规定标记的混合内容注意事项,PCDATA和若干个子标记“或运算”“或运算”必须用“()”扩起来,尾加一个“*”号。约束条件中不能使用限制符号文本数据可出现也可以不出现子标记可以出现零次或多次不能约束这些子标记出现的次数和顺序.,(#PCDATA|子标记1+|子标记2*. |子标记1? ),ELEMENT作用 EMPTY和ANY,EMPTY约束一个空标记或只含有空字符的非空标记,则

11、“标记约束条件”可以是关键字“EMPTY”. ANY不准备对一个标记有任何约束,则“标记约束条件”可以是“ANY”.,下列标记是否符合约束条件1) 2) 3)qwewe4) how are you 5) ,DTD的完整性,不允许无穷嵌套XML文件中的每个标记都必须在DTD中有相应元素进行约束,DTD中的属性,属性的使用原则 一定要以不破坏稳当的结构为原则DTD中属性列表的声明格式: 下面看个例子,是指标记的属性,可以为标记添加附加信息.是一个名值对.,声明开始,不容许有空格,声明结束,DTD中的属性,例子: 约束标记”软件楼“有三个属性”width”、”height”、”length”,它们的

12、类型是“CDATA”, 属性的默认值是字符串:“100”、“20”、 “150”。,注:对于有效的XML文件,对于标记中添加的每个属性,在DTD中都必须有相应的ATTLIST声明给予约束。,DTD中的属性,属性三要素属性名称和标记的命名规则相同属性类型字符串(不含有, “, , &)字符串区分大,小写属性默认值,字母、数字、下划线、点、连字符组成,以字母和下划线开头。区分大小写,DTD中的属性 - 属性的默认值,DTD中的属性 - 属性类型,声明属性的常用类型有:CDATA 字符数据,即没有标记的文本Enumerated 可选择的可能值列表NMTOKEN XML名称标记NMTOKENS 由空格

13、分隔的多个XML名称记号ID 不被文档中任何其他ID类型属性共享的唯一的名称IDREF 文档中元素的ID类型属性的值IDREFS由空格分隔的元素的多个ID,CDATA类型,对于CDATA类型的属性,该属性的值可以是任何一个字符串,但是字符串中不能含有五种特殊字符。如果想使用这些字符,可以使用字符引用和实体引用。,Enumerated类型,如果属性的类型是Enumerated类型,那么该属性只可以取枚举出的值。这里要注意Enumerated不是关键字,而是指类型定义的格式,其格式是将属性可以取的值用符号”|”分隔。(P52 例9),属性值可以由字母、数字、下划线、点、或连字符组成,并允许数字字符

14、开头。 注:如果XML文件使用的是UTF_8编码,字母不仅包括通用的拉丁字a b c等,也包括汉字、日文片假名、平假名、朝鲜文以及其他许多语言中的文字。,NMTOKEN类型,属性的类型是NMTOKEN类型的属性属性值可以由字母、数字、下划线、点或连字符组成,属性中不能含有空格字符。属性值也可以用数字,点或连字符开头,NMTOKENS类型,我们知道NMTOKEN属性值中不能含有空白类字符。如果需要某个属性值含有空白类字符,那么就可将属性的类型取为NMTOKENS类型。,ID类型,属性具有专用性,即不允许其他类型相同的属性再使用这个属性值,那么就可以将属性的类型取为ID类型。ID类型的属性值可以有

15、字符,数字,下划线,点或连字符组成,但必须以字母或下划线开头。注意:ID类型属性的“默认值情况”只能是“#REQUIRED”和“#IMPLIED” 。(P55 例12),IDREF类型,如果我们准备通过标记的属性值来判断标记之间的联系,就可以在标记中使用IDREF类型的属性。IDREF类型属性的属性值只能取某个标记中ID类型属性值。,IDREFS类型,IDREFS类型是约束某个属性的属性是若干个其他ID属性值的组合。对于IDREFS类型的属性,它的值可以是用空格分隔的若干个其他ID属性的属性值。,DTD中的实体,W3C允许我们在DTD文件中定义实体,然后与该DTD文件关联的XML文件可以通过实

16、体引用使用实体。实体分为普通实体和参数实体,普通实体简称为实体。,实体,实体是指可以被XML文件在标记的内容通过实体引用使用的实体。实体分为内部实体和外部实体。内部实体就是实体的内容已经包含在DTD文件本身中外部实体是指实体的内容是DTD文件以外的其他文件。,内部实体的声明,格式:实体的内容是文本数据,不允许含有五种特殊符号,应使用预定义实体引用。XML文件可以使用:”&实体的引用;”应用该实体. 例子在XML中使用:&hello;,”,&,解析器解析数据时,首先将”你好”,最后解析出的数据是:“how are you ,&你好”,&、实体的引用和;之间不要有空格,外部实体的声明,定义:外部实

17、体是指实体的内容是DTD文件以外的其他文件。外部实体的格式分为两种:SYSTEM格式和PUBLIC格式。SYSTEM格式是实体是一个外部文件,该外部文件由个人或工作小组所定义且认可。PUBLIC格式是实体是一个外部文件,该外面文件由已经得到某一领域的认可。,外部实体的声明,SYSTEM格式PUBLIC,URI必须是一个有效的资源,是一个文件名,该文件必须和当前DTD在一个目录中,如果是一个连接地址,该连接地址必须是可以访问的。,FPI的格式:“-ISO认证/单位名称/说明/所用语言”FPI中不可含有非ASCII码字符,同样实体内容也不容许含有五种特殊字符,外部实体引用,XML文件用“ 解析器在

18、解析数据时,将&java替换为文件“A.java”的内容(例16),实体的可解析性,实体按可不可被解析分为:可解析实体同不可解析实体。可解析实体就是能被解析器解析的数据。不可解析实体就是解析器无法解析的数据,通常指二进制数据。,DTD中的参数实体,定义:参数实体是在DTD文件中定义,只能 由DTD文件本身通过实体引用使用参数实体,和关联的XML无关。优点:不仅可以方便DTD文件的编写,而切有利于DTD 的维护。参数实体的声明格式:例,引用时形式:%BOOK;,必须是文本数据,不含有五种特殊字符,内部DTD,例,就是把文件的内容直接写在XML文件的内部称为内部的.,开始,结束,内部DTD,如果内

19、部的DTD和外部DTD文件同时限制了某个标记,就会导致错误,因为不能使用多个元素声明限制同一个标记。同时使用外部DTD和内部DTD的格式:例,IGNORE和INCLUDE,IGNORE的作用是忽略DTD的某些约束条件INCLUDE指令是包含某些约束条件,名称空间复习,名称空间的声明在标记的“开始标记”里,放在开始标记中标记名字的后面。一个标记使用的名称空间,该名称空间的作用域是改标记及其子孙标记。一个标记的声明有前缀,该标记及其子孙标记可以通过前缀引用这个空间名称,使得该标记和子孙标记隶属于这个空间。无前缀名称空间子孙标记默认隶属于当前名称空间。,DTD与名称空间,名称空间的目的是有效地区分名字相同的标记。W3C规范允许使用DTD中的ATTLIST声明来约束标记的名称空间。有前缀:无前缀:,需要注意,不允许对统一标记约束两次,可以使用名称空间来解决空间的作用域标记及子标记受前缀约束的隶属于其空间,本章小节,什么是有效的XML文件DTD中标记的声明DTD中属性的声明DTD中的实体DTD中名称空间的定义,

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报