XML课件第8讲(Schema).ppt
2010.2,计算机与信息学院江晋剑江晋剑,XML实用教程,第4章 在XML文档中使用Schema,2010.2,计算机与信息学院江晋剑计算机应用教研室,4.1 命名空间4.2 XML Schema4.3 XML Schema的数据类型4.4 XML Schema的元素声明4.5 XML Schema的属性声明4.6 XML Schema命名空间,2010.2,计算机与信息学院江晋剑计算机应用教研室,1、命名空间,命名空间(namespace):是零个或多个名称的集合,在命名空间中,每一个名称都是唯一的。(1)命名空间概述 不同的用户对同一份XML文档根据自己的需要添加适当的元素及属性,可能会出现同名元素或属性,如何解决?必须寻求一机制来解决,W3C制定一机制就是命名空间机制,解决同名元素冲突问题。,2010.2,计算机与信息学院江晋剑计算机应用教研室,具体的说,命名空间提供元素或者属性更进一步的辨识信息,以解决元素名称重复的问题。则XML文档标记及属性的完整名称应如下:其中:命名空间前缀称为命名空间的前缀名称(prefix),是用来代替命名空间字符串URI和标记名称,即只要命名空间不同,即使标记名称相同,它们就是不同的标记。,2010.2,计算机与信息学院江晋剑计算机应用教研室,9500 此例中Value属性被安排在不同的默认命名空间中:第一个:Title元素类型的属性命名空间 第二个:Category元素类型的属性命名空间 第三个:独立于属性命名空间的默认命名空间 根据W3C的定义:XMl命名空间是一个名称集合,它是用URI应用来标识的,这种标识在XML文档中作为元素类型和属性名称。,2010.2,计算机与信息学院江晋剑计算机应用教研室,URI(uniform resource identifier)命名空间使用网址的名称和路径(通用资源辨识器)两种形式:1)URL 通用网址、网页、邮件地址 2)URN 基本语法:urn:NID是所要使用的资源组织名称,可以是诸如ISBN(国际标准图书编号组织)NSS是一个唯一的字符串表示要使用的资源 urn:ISBN:978-7-302-14286-7,2010.2,计算机与信息学院江晋剑计算机应用教研室,2)命名空间的使用,命名空间的使用是通过一系列的保留属性,使用这些属性时必须以xmlns或xmlns:开头。W3C对于使用命名空间制定了详细的规则:(1)规则1 该规则定义了引用命名空间的方法:1)前置命名法:2)默认命名法:,2010.2,计算机与信息学院江晋剑计算机应用教研室,(2)规则2 定义了使用前置命名方法的语法,由xmlns关键字直接指明XML文档中该元素要引用的命名空间,在:之后为命名空间所取的别名。xmlns:ns=则:ns即为命名空间别名,2010.2,计算机与信息学院江晋剑计算机应用教研室,(3)规则3 定义了使用默认命名方法的语法,由xmlns关键字直接指明命名空间名称,即 xmlns=(4)规则4 定义了命名空间别名的构成方法,可以使用字符或下划线开头,后跟任意数量的NCNameChar字符,即 xmlns:ns=,2010.2,计算机与信息学院江晋剑计算机应用教研室,(5)规则5 定义了命名空间别名所能使用字符,可以是任意数量的字符、数字、点符、短线、下划线及其他扩展字符。,2010.2,计算机与信息学院江晋剑计算机应用教研室,2、XML Schema简介,W3C早就对XML Schema进行研究1999年XML Schema被接受为工作草案MICROSOFT对工作草案完善过程中提出XDR2000年提出XML SchemaXML Schema提供XML文档结构和内容约束机制,以衡量格式良好的元素信息的有效性。,2010.2,计算机与信息学院江晋剑计算机应用教研室,3、XML Schema特点,XML Schema是XML文档XML Schema支持命名空间机制内容模型开放,可以随意扩充内容数据类型多,2010.2,计算机与信息学院江晋剑计算机应用教研室,4、Schema文件结构,Schema文件由一组元素组成,其根元素是Schema,其文件结构为:Name:指定该Schema的名称Xmlns:指定该Schema包含的命名空间,2010.2,计算机与信息学院江晋剑计算机应用教研室,7、用Schema定义元素,在元素下可以加入各元素定义语句:ElementType元素:用于声明XML文件中会出现的元素element元素:对 ElementType元素声明的引用和说明group元素:语法上类似elment元素,表示成组的概念,2010.2,计算机与信息学院江晋剑计算机应用教研室,ElementType声明语法,这是ElementType的一个重要属性,它指明所声明的元素是否为空、包含文本、或包含子元素。,指定该ElementType元素的数据类型,指定该元素的子元素的排序规则。,指定该元素是否可以包含没有在本Schema文档中定义的元素和属性,2010.2,计算机与信息学院江晋剑计算机应用教研室,element元素的语法,指定该元素在本项中出现的最小次数,指定该元素出现的最多次数,2010.2,计算机与信息学院江晋剑计算机应用教研室,group元素语法结构,指定本组中元素或子组的顺序,2010.2,计算机与信息学院江晋剑计算机应用教研室,Schema定义元素属性,在Schema中定义属性的元素有二个:AttributeType元素:用于定义本Schema文档中出现的属性类型Attribute元素:是对AttributeType声明的引用,而具体引用什么属性类型,关键是由type指定。,2010.2,计算机与信息学院江晋剑计算机应用教研室,AttributeType声明语法,指定所声明的属性的数据类型,仅当type取enumeration时才可用,2010.2,计算机与信息学院江晋剑计算机应用教研室,Schema中基本数据类型,Schema中基本类型DTD中数据类型String#PCDATAEnumTHEORY_machanistion ENUMTHEORY_MECHANICSId IDIdref IDREFIdrefs IDREFSNumtoken NUMTOKENNumtokens NUMTOKENSEntity ENTITYEntitis ENTITISNotation NOTATION,2010.2,计算机与信息学院江晋剑计算机应用教研室,Schema中扩展数据类型,类型解释举例boolean布尔型0,1Char单字符“a”,“c”Time时间类型(无日期)08:16:18Date日期类型(无时间)2005-09-01DateTime日期类型(带时间)2005-09-01 T22:30:18fixed.14.4数值类型28.2346float实数类型.31415926E+1Int数值类型1,-10,256number数值类型12.356682Uri统一资源标识类型,2010.2,计算机与信息学院江晋剑计算机应用教研室,XML Schema元素详解(一),一个Schema文件根元素为Schema文件关键元素有8种,它们对XML中允许的语法和结构进行定义。Schema语法示例:,2010.2,计算机与信息学院江晋剑计算机应用教研室,XML Schema元素详解(二),元素用于声明XML文档中使用的新元素,它是XML Schema中重要元素之一.元素对声明的元素的内容进行定义,说明在指定元素类型中允许使用哪些子元素.group元素是用于将XML 文档中的元素分组。order可指定该分组中的元素或子分组的顺序.,2010.2,计算机与信息学院江晋剑计算机应用教研室,XML Schema元素详解(三),元素定义Schema中使用的属性类型。根据出现位置不同,其作用范围也不一样。元素对声明的属性进行具体的定义属性也可分组:在元素声明中引用:,2010.2,计算机与信息学院江晋剑计算机应用教研室,属性定义示例,2010.2,计算机与信息学院江晋剑计算机应用教研室,XML Schema元素详解(四),元素定义Schema元素中的数据类型,它是XML Schema中一个重要元素,也是XML Schema的一大特色,用于为ElementType和AttributeType指定数据类型。元素的主要作用是为ElementType和AttributeType元素提供描述信息。,2010.2,计算机与信息学院江晋剑计算机应用教研室,初识Schema文件,1.2.3.4.5.6.7.8.,9.10.11.12.13.14.15.16.17.18.19.20.,2010.2,计算机与信息学院江晋剑计算机应用教研室,Schema应用示例,Schema文件清单:,2010.2,计算机与信息学院江晋剑计算机应用教研室,XML文档(外部调用)清单,张祥 10000 8000 15000 6000 刘娴 5000 12000 9000 4000,2010.2,计算机与信息学院江晋剑计算机应用教研室,IE浏览器中的效果,2010.2,计算机与信息学院江晋剑计算机应用教研室,制定Schema示例,XML文档booklist.xml清单:Staight Talk About Computers Lars Peterson Digital Control System BENJAMIN C.KUO Carlos Diaz,2010.2,计算机与信息学院江晋剑计算机应用教研室,1.为最底层元素制定规则,定义为只能包含字符串的文本元素:,2010.2,计算机与信息学院江晋剑计算机应用教研室,2.为上一层子元素制定规则,定义只能包含子元素,且子元素出现的顺序是一定的,然后,在其内部定义它包括一个和任意个子元素:,2010.2,计算机与信息学院江晋剑计算机应用教研室,3.定义根元素,用同样的方法说明根元素:,2010.2,计算机与信息学院江晋剑计算机应用教研室,完整的XML Schema文件,Book(schema).xml清单:,2010.2,计算机与信息学院江晋剑计算机应用教研室,修改原XML文档,Booklist01.xml清单:Staight Talk About Computers Lars Peterson Digital Control System BENJAMIN C.KUO Carlos Diaz,2010.2,计算机与信息学院江晋剑计算机应用教研室,IE游览效果,2010.2,计算机与信息学院江晋剑计算机应用教研室,Schema的可扩展性,用户可在XML Schema中使用自已定义的元素和属性:17.5205.0,2010.2,计算机与信息学院江晋剑计算机应用教研室,第4章练习题,在XML文件中使用DTD有何好处Schema有什么特点什么是实体为学生学籍管理的XML文档设计DTD文件为上题创建XML Schema文件,