1、Schema主要内容l什么是Schema?lSchema的数据类型?lXML要素的Schema定义?l小结l重点:l元素和属性的Schema定义!l扩展内容:正则表达式。XML SchemaXML Schema l为了解决DTD的缺点,W3C的人员努力开发一个更为强大的数据模型。l1998年,W3C发布了两个注释,提出了关于描述文档结构方面的XML词汇。第一个叫做XML Data,第二个叫做DCD。l Microsoft参考XML Data和DCD二者的提议设计了二者的一个组合,形成了Microsoft版本的XML Schema,叫做XDR lXML Schema的W3C推荐标准叫做XSD(X
2、ML Schema Definition Language)。它是一个更广泛的规范,并且具有非专有的优点 什么是什么是SchemaSchemaXML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。XML Schema规定XML文档实例的结构和每个元素/属性的数据类型。数据库XML文档数据文档数据表结构SQLXPathSchema等价等价等价什么是什么是SchemaSchema(续)(续)书剑恩仇录书剑恩仇录/金庸金庸/为何要为何要SchemaSchema DTD 的局限性 DTD不遵守XML语法(写XML文档实例时候用一种语法,写DTD的
3、时候用另外一种语法)DTD数据类型有限(与数据库数据类型不一致)DTD不可扩展 DTD不支持命名空间(命名冲突)Schema的新特性 Schema基于XML语法 Schema可以用能处理XML文档的工具处理 Schema大大扩充了数据类型,可以自定义数据类型 Schema支持元素的继承Object-Orientedish Schema支持属性组SchemaSchema的文档结构的文档结构 所有Schema文档使用schema作为其根元素用于构造schema的元素和数据类型来自http:/www.w3.org/2001/XMLSchema命名空间本schema定义的元素和数据类型属于http:/
4、mynamespace/myschema命名空间目标命名空间不一定遵循本Schema(若是qualified则必须遵循)SchemaSchema的数据类型的数据类型 简单类型 内置的数据类型(built-in data types)基本的数据类型 扩展的数据类型 用户自定义数据类型(通过dataType定义)复杂类型(通过complexType定义)SchemaSchema的数据类型基本数据类型的数据类型基本数据类型数据类型数据类型描述描述string表示字符串表示字符串Boolean布尔型布尔型decimal代表特定精度的数字代表特定精度的数字float表示单精度表示单精度3232位浮点数位
5、浮点数double表示双精度表示双精度6464位浮点数位浮点数duration表示持续时间表示持续时间 dateTime代表特定的时间代表特定的时间 time代表特定的时间,但是是每天重复的代表特定的时间,但是是每天重复的date代表日期代表日期 hexBinary代表十六进制数代表十六进制数anyURI代表一个代表一个URI,用来定位文件,用来定位文件NOTATION代表代表 NOTATION类型类型anyType对数据类型没有限制对数据类型没有限制SchemaSchema的数据类型扩展的数据类型的数据类型扩展的数据类型数据类型数据类型描述描述ID用于唯一标识元素IDREF参考ID类型的元素
6、或属性ENTITY实体类型NMTOKENNMTOKEN类型NMTOKENSNMTOKEN类型集long表示整型数,大小介于-9223372036854775808和9223372036854775807之间int表示整型数,大小介于-2147483648和 2147483647之间short表示整型数,大小介于-32768和32767之间byte表示整型数,大小介于-128和127之间SchemaSchema的数据类型数据类型的特性的数据类型数据类型的特性特性特性描述描述enumeration在指定的数据集中选择,限定用户的选值在指定的数据集中选择,限定用户的选值fractionDigits限
7、定最大的小数位,用于控制精度限定最大的小数位,用于控制精度length指定数据的长度指定数据的长度maxExclusive指定数据的最大值(小于)指定数据的最大值(小于)maxInclusive指定数据的最大值(小于等于)指定数据的最大值(小于等于)maxLength指定长度的最大值指定长度的最大值minExclusive指定最小值(大于)指定最小值(大于)minInclusive指定最小值(大于等于)指定最小值(大于等于)minLength指定最小长度指定最小长度Pattern指定数据的显示规范指定数据的显示规范SchemaSchema的元素类型的元素类型lschemalelementlat
8、tributelgrouplattributeGrouplsimpleTypelsimpleContentlcomplexTypelchoicellistlunionlsequencelrestrictionschemaschema元素元素作用:包含已经定义的作用:包含已经定义的schema用法:用法:属性:属性:xmlnstargetNamespaceelementFormDefaultlelementelement元素元素l作用:声明一个元素p244l属性:lnameltypelreflminOccurslmaxOccurslsubstitutionGrouplFixed(待定待定)lde
9、faultl示例:groupgroup元素元素l作用:把一组元素声明组合在一起,以便它们能够一起被复合类型应用p246l属性:name/refl示例:attributeattribute元素元素l作用:声明一个属性p245l属性:name/type/ref/usel示例:attributeGroupattributeGroup元素元素作用:把一组属性声明组合在一起,以便可以被复合类型应用p246属性:name/ref示例:choicechoice元素元素l作用:允许唯一的一个元素从一个组中被选择p247l属性:minOccurs/maxOccursl示例:作业lP257第6小题l将约会计划用s
10、chema描绘.simpleTypesimpleType元素元素作用:定义一个简单类型,它决定了元素和属性值的约束和相关信息p239属性:name内容:应用已经存在的简单类型,三种方式:restriction限定一个范围list从列表中选择union包含一个值的结合示例:simpleTypesimpleType元素(续)元素(续)1.子元素为:定义一个约束条件p241simpleTypesimpleType元素(续)元素(续)2.子元素为:p241从一个特定数据类型的集合中选择定义一个简单类型元素simpleTypesimpleType元素(续)元素(续)3.子元素为:p242从一个特定简单数
11、据类型的集合中选择定义一个简单类型元素simpleTypesimpleType元素(续)元素(续)complexTypecomplexType元素元素作用:定义一个复合类型,它决定了一组元素和属性值的约束和相关信息p243属性:name示例:complexTypecomplexType与与simpleTypesimpleType区别区别lsimpleType类型的元素中不能包含元素或者属性。l当需要声明一个元素的子元素和/或属性时,用complexType;l当需要基于内置的基本数据类型定义一个新的数据类型时,用simpleType。simpleContentsimpleContent元素元素
12、p248p248l作用:应用于complexType,对它的内容进行约束和扩展。l示例:sequencesequence元素元素p247p247l作用:给一组元素一个特定的序列l示例:用用schemaschema的数据及元素类型声明的数据及元素类型声明XMLXML文档的元素和属性文档的元素和属性l声明元素ll声明属性l声明元素的示例声明元素的示例 声明一个元素声明元素的方法声明元素的方法使用内置的数据类型声明元素的方法(续)声明元素的方法(续)使用用户定义的simpleType xs:element name=geometry type=/声明元素的方法(续)声明元素的方法(续)引用已经定义的
13、元素 声明元素的方法(续)声明元素的方法(续)使用complexType声明属性的方法声明属性的方法required、optional、prohibited简单类型复杂类型SchemaSchema样例详解样例详解 子元素子元素shipTobillTocomentitems属性属性orderDateSchemaSchema样例详解(续)样例详解(续)SchemaSchema样例详解(续)样例详解(续)SchemaSchema样例详解(续)样例详解(续)分析分析XMLXML实例,书写实例,书写SchemaSchema文件文件 =1 张三张三/男男/2020/=2 李四李四/女女/1919/=3 王
14、二王二/男男/2121/小结小结 XML已经应用到很多场合,而且其应用会越来越广泛 XML应用于数据交换领域 XML应用于Web服务 XML应用于内容管理 XML应用于Web集成 XML应用于配制 从总体上介绍了XML基本内容,然后介绍了XML中的常用术语,再后较详细的举例说明了XML的基本语法,讲述了DTD和XML Schema。小结小结l一个合法的XML文档必然是结构完整的,结构完整的XML文档不一定是合法的。lDTD包含一套用来描述并限制XML文档结构的语法规则。l元素的定义规则l元素之间的关系规则l属性的定义规则l可使用的实体或符号规则 小结小结 SchemaSchema是另一种文档类型定义,它遵循是另一种文档类型定义,它遵循XMLXML的语言规的语言规范。范。SchemaSchema是可扩展的,支持命名空间;是可扩展的,支持命名空间;SchemaSchema支持更多的数据类型与元素类型;支持更多的数据类型与元素类型;SchemaSchema用用elementelement元素声明元素,用元素声明元素,用attributeattribute声明声明元素的属性;元素的属性;SchemaSchema用用simpleTypesimpleType定义简单类型,用定义简单类型,用complexTypecomplexType定义复杂类型。定义复杂类型。