XML实用教程 教学课件 PPT 作者 耿祥义 张跃平 XML实用教程第3章

上传人:E**** 文档编号:89354561 上传时间:2019-05-23 格式:PPT 页数:22 大小:124KB
返回 下载 相关 举报
XML实用教程 教学课件 PPT 作者 耿祥义 张跃平 XML实用教程第3章_第1页
第1页 / 共22页
XML实用教程 教学课件 PPT 作者 耿祥义 张跃平 XML实用教程第3章_第2页
第2页 / 共22页
XML实用教程 教学课件 PPT 作者 耿祥义 张跃平 XML实用教程第3章_第3页
第3页 / 共22页
XML实用教程 教学课件 PPT 作者 耿祥义 张跃平 XML实用教程第3章_第4页
第4页 / 共22页
XML实用教程 教学课件 PPT 作者 耿祥义 张跃平 XML实用教程第3章_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《XML实用教程 教学课件 PPT 作者 耿祥义 张跃平 XML实用教程第3章》由会员分享,可在线阅读,更多相关《XML实用教程 教学课件 PPT 作者 耿祥义 张跃平 XML实用教程第3章(22页珍藏版)》请在金锄头文库上搜索。

1、2009-10-11,1,XML实用教程 第3章,配合例子源代码一起使用,Power point 制作:耿祥义 张跃平,有效的XML文件,2009-10-11,2,本章主要内容 有效的XML文件 怎样检查有效性 DTD中的元素 DTD中的属性约束列表 内部DTD DTD与名称空间 难点 DTD中的属性约束列表 DTD与名称空间,第3章 导读,2009-10-11,3,规范的XML文件和有效的XML文件,规范性仅仅是XML语言的基本语法,没有对XML文件怎样组织数据进行具体的限制。在某些系统中,如果不对XML怎样组织数据进行合理的约束,尽管写出XML文件没有任何语法错误(是规范的),但此XML文

2、件对系统而言是没有实际价值的。 本章讲解有效的XML文件 .,2009-10-11,4,3.1 有效的XML文件概述,对XML的数据结构进行限制有两种方式:使用文档类型定义(Document Type Definition,DTD)和XML Schema模式。 一个规范的XML文件如果和某个DTD文件相关联,并遵守该DTD文件规定的约束条件,就称之为有效的XML文件。,2009-10-11,5,3.1.1 初识DTD,DTD文件也是有着特殊结构的文件,简单地说,DTD文件是由元素所构成的文本文件。在DTD文件中,用关键字ELEMENT来定义一个元素,格式如下: ,2009-10-11,6,3.

3、1.2 DTD文件的保存,DTD文件需使用文本编辑器编写、保存。 DTD文件的扩展名必须是“.dtd”,保存时所选择的编码必须和其关联的XML文件一致,比如,DTD所要约束的XML文件的编码为UTF-8,那么DTD文件也必须按着UTF-8编码保存。,2009-10-11,7,3.1.3 XML文件与DTD文件的关联,在XML文件中使用“文档类型声明”与一个DTD文件相关联。 有两种形式的关联:SYSTEM和PUBLIC。 使用SYSTEM文档类型声明的格式: 使用PUBLIC文档类型声明的格式: 例题3-2 p32,2009-10-11,8,3.1.3 XML文件与DTD文件的关联,在XML文

4、件中使用“文档类型声明”与一个DTD文件相关联。 有两种形式的关联:SYSTEM和PUBLIC。 使用SYSTEM文档类型声明的格式: 使用PUBLIC文档类型声明的格式: 例题3-2 p32,2009-10-11,9,3.2 怎样检查有效性,当用浏览器打开一个有效的XML文件时,浏览器的XML解析器仅仅检查XML文件是否是规范的、检查XML所关联的DTD文件是否有语法错误,并不检查XML文件是否遵守该DTD规定的约束条件 。 我们可以使用DOM 解析器来检查一个XML文件是否是有效的,有关DOM 解析器将在第6章详细讲述。 例题3-3 p33,2009-10-11,10,3.3.1 元素的定

5、义,DTD中的元素(ELEMENT)是用来约束XML文件中的标记,在DTD中使用元素声明来定义一个元素,元素的声明格式为: 例: ,3.3 DTD中的元素,2009-10-11,11,3.3.2 约束标记的子标记,如果想约束XML文件中某个标记可以有怎样的子标记,那么 DTD中元素 声明的“标记的约束条件”是用小括号括起的子标记列表,格式为 注:“子标记列表”中用逗号分隔列出的若干个标记 是有先后顺序的 “子标记列表”中若干个标记可以尾加模式限定符号来限定该子标记是否允许重复出现、出现的次数。例题3-4 p36 “子标记列表”的分项也可以是几个标记的“或运算”,而且“或运算”必须用左、右小括号

6、扩起。例题3-5 p37,2009-10-11,12,3.3.3 约束标记只包含有文本数据,如果准备约束一个标记没有子标记,也就是说只能有文本数据,那么“标记的约束条件”是用小括号括起的#PCDATA,格式如下: ,2009-10-11,13,3.3.4 约束标记的混合内容,一个标记的内容可以有两部分构成文本数据和标记,其中的标记称做该标记的子标记.上面我们已经知道怎样使用DTD约束标记的子标记,比如约束“开车时间”只能有子标记,不能含有可显示的文本数据。 如果允许标记的内容即可以有可显示的文本数据,也可以有子标记,那么在DTD文件中,元素的“标记的约束条件”是关键字“#PCDATA”和若干个

7、子标记的“或运算”,而且该“或运算”必须用小括号括起并尾加一个“*”号,格式如下: 例题3-6 p39,2009-10-11,14,3.3.5 EMPTY和ANY,如果准备约束一个标记是空标记,或者是只含有空字符的非空标记,元素的“标记的约束条件”可以是关键字“EMPTY”;如果不准备对一个标记有任何约束,元素的“标记的约束条件”可以是关键字“ANY”。例如: ,2009-10-11,15,3.4 DTD的完整性,(1)不允许无穷嵌套 如果一个DTD元素约束某个标记可以出现某个子标记,那么对该子标记进行约束的DTD元素就不能约束该标记的子标记是它的父标记。 (2)XML文件中的每个标记都必须在

8、DTD中有相应元素进行约束。,2009-10-11,16,3.5.1 ATTLIST属性约束列表,3.5 DTD中的属性约束列表,DTD中的属性列表(ATTLIST)可用来约束XML文件中标记的属性,在DTD中属性列表的声明格式为: 例题3-7 p41 在ATTLIST声明中,涉及到“属性名称”“属性类型”和“默认值情况”,其意义分别阐述如下: (1)属性名称 属性名称的命名规则和标记的命名规则相同,可以由字母、数字、下划线(“_”)、点(“.”)或连字符(“-”)组成,但必须以字母或下划线开头。 (2)属性类型 我们已经知道属性值一定是一个字符串,那么属性类型就决定了属性可以用怎样的字符串作

9、为属性的值。 (3)默认值情况 ATTLIST声明是为了约束XML文件中标记的属性,ATTLIST声明中关于属性的“默认值情况”是对XML文件中标记的属性进行约束的细节条件.,2009-10-11,17,3.5.2 属性的默认值,声明中包括“属性名称”、“属性类型”和“默认值情况”,其中的“默认值情况”含有约束的细节条件。 1“默认值情况”是字符串 如果某个属性的“默认值情况”是一个字符串, XML中对应标记必须有该属性,但标记可以不明显地添加该属性。 例:例题3-8 p43 2“默认值情况”是#IMPLIED 在ATTLIST定义的属性约束列表中可以设置属性的“默认值情况”是#IMPLIED

10、。例: 此时该属性就没有默认值,而且相应的标记里可以不附加该属性。 3“默认值情况”是#REQUIRED 在ATTLIST定义的属性约束列表中可以设置属性的“默认值情况”是#REQUIRED 。例: 此时该属性没有默认值,相应的标记必须要添加该属性并给出属性的值。 4“默认值情况”是#FIXED 在ATTLIST定义的属性约束列表中可以设置属性的“默认值情况”是#FIXED 。例: 此时该属性默认值就是关键字# FIXED后面指定的那个字符串。 例题3-9 p44 例题3-10 p45,2009-10-11,18,3.5.3 属性类型_1,属性类型决定了属性可以用怎样的字符串作为属性的值。属性

11、的常用类型有: CDATA、Enumerated、NMTOKEN、NMTOKENS、ID、IDREF、IDREFS 1CDATA类型 对于CDATA(Character Data)类型的属性,该属性的值可以是任何一个字符串,但是,字符串中不能含有含有左尖括号、右尖括号、与符号、单引号和双引号,如果想使用这些字符,可以使用实体引用。例题3-11 p46 2Enumerated 类型 如果属性的类型是Enumerated 类型,那么该属性只可以是枚举值。Enumerated不是关键字,是指类型定义的格式,其格式是将属性可以取的值用符号“|”分隔,Enumerated 类型的定义格式如下: 例题3-

12、12 p47 3NMTOKEN类型 如果属性的类型是NMTOKEN类型的属性,属性值可以由字母、数字、下划线(“_”)、点(“.”)或连字符(“-”)组成,属性值中不能含有空格字符(属性值也可以用数字、点或连字符开头)。例题3-13 p48,2009-10-11,19,3.5.3 属性类型_2,4NMTOKENS类型 对于NMTOKEN类型的属性,其属性值中不能含有空格。如果需要某个属性的属性值含有空格,而且被空格分隔开的子字符串符合NMTOKEN类型属性的属性值之规定,那么就可以将属性的类型取为NMTOKENS类型.例题3-14 p49 5ID类型 如果希望某个属性的属性值具有专用性,即不允

13、许其它类型相同的属性再取这个属性值,那么就可以将属性的类型取为ID类型。 注意ID类型的属性值可以由字母、数字、下划线(“_”)、点(“.”)或连字符(“-”)组成,但必须以字母或下划线开头。 注意需要特别注意的是ID类型属性的“默认值情况”只能是“#REQUIRED”和“IMPLIED” 例题3-15 p49 6IDREF类型 如果准备通过标记的属性值来判断标记之间的联系,就可以在标记中使用IDREF(Identifier Reference)类型的属性。IDREF类型属性的属性值只能取某个标记中ID类型属性的属性值。例题3-16 p50 7IDREFS类型 我们希望约束某个属性的属性值是若

14、干个其它ID属性的属性值的组合,IDREFDS类型属性的属性值能满足这一愿望。对于IDREFS类型的属性,它的值可以是用空格分隔的若干个其它ID属性的属性值。例题3-17 p52,2009-10-11,20,3.6 内部 DTD,可以把DTD文件的内容直接写在XML文件的内部,相对外部DTD文件,这样的内容称做XML文件的内部DTD 在XML文件中,内部DTD用“”结束. 例题3-18 p53 注:同时使用外部DTD和内部DTD的格式: 或 例题3-19 p54,2009-10-11,21,3.7 IGNORE和INCLUDE,IGNORE的作用是忽略DTD中的某些约束条件,而INCLUDE指

15、令是包含某些约束条件。 IGNORE指令的格式: INCLUDE指令的格式: 例题3-20 p55,2009-10-11,22,3.8 DTD与名称空间,名称空间的定义必须在标记的“开始标记”里面,而且名称空间的定义必须放在开始标记中标记名字的后面。 一个标记的开始标记里定义了名称空间,那么该名称空间的作用域是该标记及其所有的子孙标记; 如果一个标记中定义的是有前缀的名称空间,那么该标记及其子孙标记可以通过名称空间的前缀引用这个名称空间,使得该标记隶属于这个名称空间; 如果一个标记中定义的是无前缀的名称空间,那么该标记及其子标记都默认地隶属于这个名称空间。 如果有效的XML文件中的标记想定义名称空间,那么必须保证DTD中有相应的约束。W3C规范使用DTD中的ATTLIST属性约束列表来约束标记是否需要隶属一个名称空间,其格式为 例 例题3-21 p57 例题3-22 p58,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号