XML技术(二)[课件材料].ppt

上传人:rrsccc 文档编号:11180797 上传时间:2021-07-10 格式:PPT 页数:48 大小:659.50KB
返回 下载 相关 举报
XML技术(二)[课件材料].ppt_第1页
第1页 / 共48页
XML技术(二)[课件材料].ppt_第2页
第2页 / 共48页
XML技术(二)[课件材料].ppt_第3页
第3页 / 共48页
XML技术(二)[课件材料].ppt_第4页
第4页 / 共48页
XML技术(二)[课件材料].ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《XML技术(二)[课件材料].ppt》由会员分享,可在线阅读,更多相关《XML技术(二)[课件材料].ppt(48页珍藏版)》请在三一文库上搜索。

1、第三讲 XML技术,山东大学管理学院教学讲义,王瑞金 山东大学管理学院 ,第二部分数据结构与模式定义DTD,1,创建新标记语言,XML的精髓:基于信息描述的、能够体现数据信息之间逻辑关系的、可以确保文件的易读性和易搜索性的“自定义标记”语言。 通过文档类型定义(DTD)或Schema来定义新的标记语言(也叫标记集) 。 DTD或Schema提供了语法规定,XML文档要与DTD或Schema相比较,这一过程称为合法性检验。如果文档符合DTD或Schema中的约束,这个文档就是有效的。 与 DTD不同,XML Schema本身也是一份 XML文件,它用来定义另一份 XML的文件格式、结构、数据类型

2、等。,2,一、Well-formed v.s. ValidXML,一个Well-Formed XML document: 正确包含嵌套在其他元素中的元素 有唯一的根元素 遵循XML 元素命名惯例 遵循XML 属性引用规则 所有特殊字符被正确回避 一个合法的(Valid) XML document 遵守XML语法规则 遵守相应DTD(或Schema)文件规范的XML文档 有效的XML,一定是格式良好的XML。而反之,格式良好的XML不一定是有效的XML。,3,二、 DTD的基本概念,DTD描述了一个标记语言的语法和词汇表,也就是说定义了文件的整体结构以及文件的语法。 一个 XML文件必须遵守文件

3、类型定义 DTD(Document Type Definition)的规定。 一个DTD文档包含元素的定义规则、元素间关系的定义规则、元素可使用的属性、可使用的实体或符号规则。 DTD规定了一个语法分析器包含解释一个“有效的”XML文件所需要知道的所有规则的细节。 DTD文件也是一个ASCII的文本文件,后缀名为.dtd。,4,二、 DTD的基本概念,DTD用来描述XML文档的结构,一个DTD文档包含: 元素(ELEMENT)的定义规则 元素之间的关系规则 属性(ATTLIST)的定义规则 可使用的实体(ENTITY)或符号(NOTATION)规则 DTD文档与XML文档实例的关系。 类与对象

4、 数据库表结构与数据记录 有了DTD,XML文件可以携带一个自身格式的描述。 有了DTD,不同应用可使用一个通用DTD来交换数据。 应用程序可以使用一个标准DTD校验从外部世界接受来的XML数据是否有效。 可以使用DTD校验自己的XML数据。,5,三、如何生成一个DTD文档(1/4),DTD文档的声明及引用 内部DTD文档 外部DTD文档 内外部DTD文档结合 使用公有DTD ! DOCTYPE 根元素 PUBLIC “DTD名称” “外部DTD的URL” ,6,三、如何生成一个DTD文档(2/4), 王维 鹿柴 空山不见人,但闻人语声。 返景入深林,复照青苔上。 ,注意:例中的定义关键字一定

5、要大写,如DOCTYPE、ELEMENT、#PCDATA,且元素名称与数据类型之间也要有空格。,内部DTD示例,7,三、如何生成一个DTD文档(3/4), 王维 鹿柴 空山不见人,但闻人语声。返景入深林,复照青苔上。 , ,外部DTD示例,ex2.dtd,8,三、如何生成一个DTD文档(4/4), 王维 鹿柴 空山不见人,但闻人语声。返景入深林,复照青苔上。 , ,内部和外部DTD示例,ex3.dtd,9,三、如何生成一个DTD文档(4/4),使用公有DTD 还存在一种外部DTD,它由权威机构制订,提供给特定行业或公众使用。 使用关键字PUBLIC引用这一类公开使用的DTD。 引用格式为: !

6、DOCTYPE 根元素 PUBLIC “DTD名称” “外部DTD的URL” 其用法和SYSTEM基本相同,只是多了个DTD名称。,10,四、元素的定义(1/14),语法 ,关键字,元素名称,EMPTY该元素不能包含子元素和文本,但可以有属性(空元素) ANY该元素可以包含任何在DTD中定义的元素和文本内容 #PCDATA可以包含任何字符数据,但不能在其中包含子元素 纯元素类型只包含子元素,并且这些子元素外没有文本 混合类型包含子元素和文本数据的混合体,具体定义。,元素类型,11,EMPTY示例-空元素 皮诺曹 皮诺曹爸爸 ,四、元素的定义(2/14),12,四、元素的定义(3/14),ANY

7、示例(1/2) 元素可以出现任何内容 皮诺曹 皮诺曹爸爸 将根元素设为ANY类型后,元素出现的次数和顺序不受限制。,13,四、元素的定义(4/14),ANY示例(2/2) 形式良好但不合法(没有书元素的定义) !DOCTYPE 书架 !ELEMENT 书架ANY 书架 书XML实用教程书 书架 形式良好且合法 !DOCTYPE 书架 !ELEMENT 书架ANY 书架XML实用教程书架,14,#PCDATA示例 包含可解析的字符数据,即非标记文本,但它不能包含自己的子元素 皮诺曹 皮诺曹爸爸 ,四、元素的定义(5/14),15,四、元素的定义(6/14),子元素内容 只能出现在元素类型声明中规

8、定的子元素 定义子元素时与顺序无关,示例:书架的定义: ?xml version=”1.0” Standalone”yes” encoding”GB2312”? !DOCTYPE 书架 !ELEMENT 书架(书)* !ELEMENT 书(书名,作者,价格,出版社) !ELEMENT 书名(#PCDATA) !ELEMENT 作者(姓名,地址) !ELEMENT 姓名(#PCDATA) !ELEMENT 价格(#PCDATA) ! ELEMENT 出版社(地址,邮编) !ELEMENT 地址(#PCDATA) !ELEMENT 邮编(#PCDATA) ,“书架”包括“书”子元素,“书”又包括书

9、名、作者“、价格”、“出版社”这些子元素。而“作者”又包括了“姓名”、“地址” 这些子元素。“出版社”又包括了“地址”、“邮编” 这些子元素 。,16,四、元素的定义(7/14),混合类型示例 指可以有字符数据和子元素的混合体,!ELEMENT 作者(姓名,电话,EMAIL,#PCDATA)* 作者 姓名丁力姓名 电话(010)64535265电话 EMAILEMAIL 作者丁力的联系方式 作者,说明:以上只是示意性的,“姓名”、“电话”、“EMAIL” 这些子元素没有定义,17,四、元素的定义(8/14),修饰符号子元素的定义和控制,18,四、元素的定义(9/14),修饰符号子元素的定义和控

10、制 控制子元素出现的顺序 !ELEMENT 作者(姓名,(地址|E-mail)?) !ELEMENT 姓名(#PCDATA) !ELEMENT 地址(#PCDATA) !ELEMENT E-mail(#PCDATA),作者 姓名张三姓名 地址浙江杭州地址 作者,作者 姓名张三姓名 地址浙江杭州地址 E-E-mail 作者,19,四、元素的定义(10/14),修饰符号子元素的定义和控制 “,”分隔表示“与”,要求子元素严格遵从顺序要求出现,而且不能缺少 。 !ELEMENT 作者(姓名,地址 ) !ELEMENT 姓名(#PCDATA) !ELEMENT 地址(#PCDATA),作者 姓名张三姓

11、名 地址浙江杭州地址 作者,作者 地址浙江杭州地址 姓名张三姓名 作者,20,四、元素的定义(11/14),修饰符号子元素的定义和控制 用“空格”表示无顺序要求,元素可自由出现。 !ELEMENT 作者(姓名地址 ) !ELEMENT 姓名(#PCDATA) !ELEMENT 地址(#PCDATA),作者 姓名张三姓名 地址浙江杭州地址 作者,作者 地址浙江杭州地址 姓名张三姓名 作者,21,四、元素的定义(12/14),修饰符号子元素的定义和控制 成组元素:子元素可以使用括号并为一组。 !ELEMENT 作者(姓名,地址) !ELEMENT 姓名(#PCDATA) !ELEMENT 地址(#

12、PCDATA),作者 姓名张三姓名 地址浙江杭州地址 姓名李四姓名 地址山东济南地址 作者,22,四、元素的定义(13/14),修饰符号子元素的定义和控制 字符“?”说明一个子元素是可选的,它可以出现,也可以不出现。 !ELEMENT 作者(姓名地址?) ) !ELEMENT 姓名(#PCDATA) !ELEMENT 地址(#PCDATA),作者 姓名张三姓名 地址浙江杭州地址 作者,作者 姓名张三姓名 作者,23,四、元素的定义(14/14),修饰符号子元素的定义和控制 “*”表示该元素可以出现任意次,即零次或多次。 “”表示该元素至少要出现一次,即一次或多次。,示例:书架的定义: ?xml

13、 version=”1.0” encoding”GB2312”? !DOCTYPE 书架 !ELEMENT 书架(书)* !ELEMENT 书(书名,作者,价格,出版社) ,24,五、属性的定义,语法 ,CDATAIDIDREF/IDREFSNMTOKEN/NMTOKENSEnumeratedENTITY/ENTITIESNOTATIONNOTATION(enumerated),#REQUIRED#IMPLIED#FIXED valueDefault value,25,五、属性的定义,属性类型 CDATA 属性值可以是任何字符(包括数字和中文),请注意:这里的CDATA与第一部分CDATA的区

14、别, #PCDATA与CDATA的区别,26,五、属性的定义,属性类型NMTOKEN/NMTOKENS NMTOKEN要求属性是合法的XML名字,属性值必须是英文字母、数字、句号、破折号、下划线或冒号(不能是中文!)。 NMTOKENS与NMTOKEN类似,包含多个由空格分隔的字符。, 八阵图 功盖三分国,名成八阵图。 江流石不转,遗恨失吞吴。 , 八阵图 功盖三分国,名成八阵图。 江流石不转,遗恨失吞吴。 ,27,五、属性的定义,属性类型 ID 表明该属性的取值必须是唯一的。, , ,28,五、属性的定义,属性类型 IDREF/IDREFS IDREF属性的值指向文档中其它地方声明的ID类型

15、的值。 IDREFS同IDREF,但是可以具有由空格分开的多个引用。, ,空格,29,五、属性的定义,属性类型Enumerated 事先定义好一些值,属性的值必须在所列出的值的范围内, “Enumerated” 不出现在定义中。,30,五、属性的定义,属性类型-NOTATION(1/3) Notation主要是用来表明文档中需要来自外部源的数据,而该数据XML解析器是不能进行解析的,需要外部的应用程序进行处理。如各种格式的二进制文件(比如图形文件、声音文件等) Notation 类型使用前必须有Notation 声明 Notation声明的语法格式为: ,31,五、属性的定义,属性类型-NOT

16、ATION(2/3 enumerated) 属性的值必须匹配NOTATION名称列表中的某个名称。,属性类型定义,NOTATION声明,元素名,属性名,32,五、属性的定义,属性类型-NOTATION(3/3) 下面的例子为“视频”元素指定了两种可选设备,一种是RealPlayer.exe,用来播映.rm文件,另一种则用来播放GIF图像。 ?xml version”1.0” encoding=”GB2312” standalone=”yes”? !DOCTY PE 文件 !ELEMENT 文件 ANY !ELEMENT 视频 EMPTY !ATTLIST 视频 演示设备 NOTATION (r

17、m|gif) #REQUIRED !NOTATION rm SYSTEM “RealPlayer.exe” !NOTATION gif SYSTEM “Image/gif” 文件 视频 演示设备=”rm” 文件,33,五、属性的定义,属性的特点REQUIRED 元素的所有实例都必须有该属性的值(NOT NULL) 语法: DTD 示例: XML 示例: ,34,五、属性的定义,属性的特点IMPLIED 元素的实例中可以忽略该属性(NULL)。 语法: DTD示例: XML示例: 或 ,35,五、属性的定义,属性的特点FIXED value 元素实例中该属性的值必须为指定的固定值。 语法: DT

18、D示例: XML示例: ,36,五、属性的定义,属性的特点Default value 为属性提供一个默认的值,在XML可使用该默认值或指定一新值。 语法: DTD示例: XML示例: 表明payment 的type属性为 check,37,六、属性的定义实体,属性类型-ENTITY/ENTITIES ENTITY类型的属性的值必须对应一个在DTD文档内声明的实体。 ENTITIES类型的属性的值与ENTITY类似,不 同的是可以包含多个由空格分开的实体。 实体引用前必须定义 实体分类 一般实体(通用实体) 内部实体 外部实体 参数实体 内部实体 外部实体,38,六、属性的定义实体,内部一般实体

19、 由实体名和及实体内容字符串构成,XML解析器可以解析。 在内部或外部DTD中声明,在XML的元素或属性值中引用。 语法: 定义方式为: 引用方式为:实体名; DTD 示例: XML 示例: ,39,六、属性的定义实体,外部一般实体 外部一般实体的内容位于系统其他地方(由URI指定)。 在内部或外部DTD中声明,在XML的元素或属性值中引用。 语法: DTD 示例: XML 示例:,40,六、属性的定义实体,内部参数实体 该实体不是在具体XML实例化文档中使用,而是在DTD文档内部被使用。 定义如下的参数实体:” 在DTD内部通过“%实体名;”来引用它们: %sample;,41,六、属性的定义实体,外部参数实体 类似于外部一般实体与内部一般实体的区别。 实体的内容不在实体定义处,而是在系统其他地方,内容应符合DTD规范 定义实例: 在DTD内部引用格式:%地址; “%地址;”相当于一个普通的元素(ELEMENT)。,42,六、属性的定义实体,各类实体比较,43,六、属性的定义实体,属性类型ENTITY/ENTITIES应用举例, A001 ,44,七、分析完整的DTD文档,写XML实例, ,45,八、分析XML实例,写DTD文档, 张三 男 20 李四 女 19 王二 男 21 ,46,第二部分 结 束,王瑞金 山东大学管理学院 ,谢 谢!,第三讲 XML技术,47,

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1