第4章XMLScherma模式

《第4章XMLScherma模式》由会员分享,可在线阅读,更多相关《第4章XMLScherma模式(35页珍藏版)》请在文档大全上搜索。
1、第第4章章 XML Scherma模式模式4.3 XML Schema标记及属性定义 4.5 XML Schema的组定义 4.1 什么是XML Schema 4.2 XML Schema的文档结构 4.4 全局声明和局部声明 第第4章章 XML Scherma模式模式4.7 XML文件与Schema文件的匹配 4.8 XML文件对于XML Schema模式的校验 4.6 XML Schema中的注释 4.1 什么是什么是XML Schema(1) XML Schema是W3C开发的一种新的约束XML文件的模式,是一种特殊的XML文件,遵循XML的语法规则。DTD则具有自己的语法,所以,只需懂
2、得XML的语法规则即可编写Schema,无需学习其他语法规则。 XML Schema可以弥补DTD的不足之处,例如:DTD的数据类型有限,当声明一个标记的标记内容为文本数据时,声明为“#PCDATA”,却不能限制文本的具体类型(如:整型,浮点型等)。而XML Schema则可以具体定义数据的具体类型,XML Schema不但提供了丰富的数据类型,还允许用户自定义类型。 XML Schema常用的数据类型见下表:4.1 什么是什么是XML Schema(2)更多详细信息可参考:http:/www.w3.org/TR/xmlschema-2/#built-in-datatypes基本数据类型说明及
3、举例备注String表示字符串,例:“Hello” Boolean表示布尔型,例:true或false Decimal表示十进制任意精度数字,例:33.3,25.0Decimal用于准确表现数值Float表示单精度32位浮点数 Double表示双精度64位浮点数 DateTime表示时间,数据形式为:CCYY-MM-DDThh:mm:ss,例:2008-12-27/09:55:23CC,YY,MM,DD分别表示世纪,年,月,日。T表示分隔符.hh,mm,ss分别表示时,分,秒Time表示时间,数据形式为:hh:mm:ss.sss,例:10:11:23 Century表示世纪,数据形式为:CC,
4、例:20 gYear表示年份,数据形式为:CCYY,例:2008 gMonth表式月份值,数据形式为:CCYY-MM,例:2008-12 gDate表示日其值,数据形式为:CCYY-MM-DD,例:2008-12-27 AnyURL任意一个URL,例:http:/www.aabb.cc XML Schema中常用的基本数据类型 4.1 什么是什么是XML Schema(3)与DTD相比,XML Schema具有如下优点:(1)可以更容易地描述文档结构。(2)可以方便地定义数据模型。(3)可重用性。 虽然Schema比DTD对数据的限制好,但实现相同的功能Schema比DTD的代码长很多。而且,
5、Schema也不是万能的,DTD可以实现Schema不能实现的功能。XML Schema不能完全替代DTD,它们各有优势。 返回上面代码中第一行以XML声明开始,说明这是一个XML文件。所有内容都添加在根标记。“xsd”是名称空间的前缀,可以任意定义,一般都设置为“xsd”或“xs”。 XML Schema文档是特殊的XML文档,要遵循XML的语法规则。W3C规定,一个XML Schema文档的根标记必须是“schema”,名称空间必须是“http:/www.w3.org/2001/XMLSchema”,下面是它的基本形式如下: 4.2 XML Schema的文档结构的文档结构(1) Sche
6、ma内容这段程序只定义了一个标记。 一个简单的实例:4.2 XML Schema的文档结构的文档结构(2) 返回4.3 XML Schema标记及属性标记及属性定义定义 4.3.1 简单类型标记的定义 4.3.2 自定义数据类型 4.3.3 复杂类型标记子标记的定义 4.3.4 复杂类型标记的属性的定义 4.3.5 空标记及混合内容标记的定义 返回简单类型标记的定义(简单类型标记的定义(1) 简单标记是指不带有任何属性及子标记的标记,定义简单标记可以通过标记来完成。格式为: 例如: 简单类型标记的定义(简单类型标记的定义(2) 标记的属性名称和作用见下表: 属性名称作用name表示标记的名称,
7、值为XML的有效名称type表示标记内容的类型ref表示引用已经定义的标记,不能和type同时使用use表示该标记出现的类型,值分可以是optional、prohibited或required。所代表的意义分别是可选的、禁止的和必须的from表示该标记是否受名称空间限制,值可以是qualified或unqualified。id表示可以唯一标识该标记的符号default标记的默认值fixed表示标记的值固定不变,不能和default同时使用返回自定义数据类型(自定义数据类型(1) XML Schema已经提供了40多种的数据类型,把数据已经分的很具体了,但有时为了更好的满足需要,Schema还可
8、自定义的数据类型。自定义数据类型是指以一个XML Schema类型为基础,添加一些限制条件,使之成为一个新的类型。自定义数据类型使用标记,通过这个标记可以给XML Schema提供的数据类型添加一些限制,从而构造出新的类型。常用的有以下6中类型 :1限定数值范围 2限定数值位数 3限定字符串范围 4枚举类型 5列表类型 6联合类型 自定义数据类型(自定义数据类型(2) 1限定数值范围 XML Schema中提供了4种标记用来限制数值的范围,、和它们都有一个“value”属性,意义分别为: (1) 表示小于等于“value”属性的值。(2) 表示大于等于“value”属性的值。(3) 表示小于“
9、value”属性的值。(4) 表示大于“value”属性的值。 自定义数据类型(自定义数据类型(3) 1限定数值范围例如: 上面这段代码定义了一个“score”标记,标记值的类型为“simpleType1”。接下来的6行定义了一个新的类型,名称为“simpleType1”。标记的“base”定义了该类型的基本类型是“float”,接下来的两行限定了数值范围是0100之间,包括0和100。自定义数据类型(自定义数据类型(4) 2限定数值位数 在XML Schema中有一个“decimal”数据类型,用来准确地表示数值。通过标记和来准确限制数值。其中: 用来限制数值的总位数。用来限制小数点后面的位
10、数。例如: 自定义数据类型(自定义数据类型(5) 3限定字符串范围 限定字符串范围分为两种:限定字符串长度和限定字符串内容。XML Schema通过、和来限定字符串的长度,用来限定字符串的内容。 限定字符串长度的例子 : 自定义数据类型(自定义数据类型(6) 3限定字符串范围 XML Schema中的标记可以限定字符串的内容,例如: 上面这段代码定义了一个“tel”标记,该标记的值要满足正则表达式“(0d2,3-)?d7,8”所限定的值。这个表达式的意义是,“d”表示任意数字,“0d2,3”表示区号,以“0”开头后面是23位数字。“-”是固定字符,“?”表示有0个或1个,“d7,8”表示7到8
11、位数字。所以,该表达式所表示的值是一个可以带区号,也可以不带区号的电话号码。 自定义数据类型(自定义数据类型(7) 4枚举类型 XML Schema中使用标记来定义枚举类型。例如: 上面的这段代码定义了一个标记“jilin”,该标记的值只能为“changchun”、“jilin”和“songyuan”中的一个。枚举类型可用于除布尔型以外的所有简单类型。枚举的值可以包含空格,但每一个枚举项的值必须是唯一的。 自定义数据类型(自定义数据类型(8) 5列表类型 在XML Schema中,用标记来定义列表类型。例如: 在定义列表类型的同时,还可以指定列表的长度或长度范围,分别用标记或、来指定。例如: