《第6讲-XML模式-Ⅱ(Schema II).ppt》由会员分享,可在线阅读,更多相关《第6讲-XML模式-Ⅱ(Schema II).ppt(28页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、使用使用XML企业应用开发企业应用开发第二卷:第二卷:XML命名空间和XML模式XML模式-(Schema II)XML企业应用开发企业应用开发回顾qDTD的局限性和XML模式qXML schema的语法:数据类型、结构、属性qSchema是面向数据类型的,数据类型是可以派生重复使用qSchema与目标名称空间的关系q使用schema验证XML文档的步骤2XML企业应用开发企业应用开发目标q学会定义 Schemaq区分 Schema 和 DTDq识别 XML Schema 中的元素q理解验证带有 Schema 的 XML 文档3XML企业应用开发企业应用开发声明属性:xs:attribute-
2、1qxs:attribute元素用于声明XML属性,可以用来指定一个属性的名称、数据类型,或引用已声明的全局属性。q属性声明分为两种:全局属性声明(顶层属性):出现在schema元素中。局部属性声明:常作为complexType定义的一部分出现,仅适用于其出现的上下文。4XML企业应用开发企业应用开发声明属性:xs:attribute-2属性名称取值描述name有效名称声明属性的名称type有效数据类型声明属性数据类型,可以是基本数据类型、简单数据类型、复杂数据类型ref引用全局属性名可以是同一份模式或不同模式中全局属性名default字符串指定属性默认值fixed字符串指定属性固定值useo
3、ptional、prohibitedrequired指定属性出现规则attribute 元素常用属性5XML企业应用开发企业应用开发示例6XML企业应用开发企业应用开发代码7XML企业应用开发企业应用开发小结:选择和顺序qsequence:表示序列关系qchoice:表示选择关系qall:表示全部元素都要出现,顺序不要求8XML企业应用开发企业应用开发取值约束Facetq作用于简单类型,限制简单类型的取值名称含义enumeration表示枚举,取值应从列出的枚举值中选取表示小数位最多精确到的位数表示整数和小数位一共最多的位数表示上界值,不包含上界值表示下界值,不包含下界值表示上界值,包含上界值
4、表示下界值,包含下界值表示值的长度表示值的最大长度表示值的最小长度表示值必须符合指定的正则表达式fractionDigitstotalDigitsmaxExclusiveminExclusivemaxInclusiveminInclusivelengthmaxLengthminLengthpattern9XML企业应用开发企业应用开发Facet应用q在元素restriction用来约束简单类型时使用:示例:考虑下列产品编码,设计schema 产品编码长度:8-12位;编码规则:HR开头;紧跟2、4、5、7这四个数字其中一个;再跟随一条中间线-再跟0-9之间多个数字;结尾以S、R、D三个字符其中
5、一个10XML企业应用开发企业应用开发代码产品编码.xsd11XML企业应用开发企业应用开发xs:annotation注释q元素annotation用于schema添加注释:两种子元素注释 appinfo:供处理schema的应用程序阅读documentation:供浏览schema的人阅读12XML企业应用开发企业应用开发代码13XML企业应用开发企业应用开发group元素组q定义一个子元素的组合。该组合可以直接定义或引用。注:直接定义元素组,常放在schema元素下;放在其它位置只能引 用。在定义元素组时,其子元素可以选用choice、sequence、all 示例:华软学院准备进行双学位
6、辅修专业课程设置,设计schema14XML企业应用开发企业应用开发代码直接定义两个元素组在根元素schema下在其它位置引用元素组子元素无顺序15XML企业应用开发企业应用开发文档与complexType区别:group不能进行属性声明,无派生概念16XML企业应用开发企业应用开发attributeGroup属性组q用于定义或引用一组属性注:直接定义属性组,常放在schema元素下;放在其它位置只能引 用。在定义属性组时,其子元素可以选用attribute、attributeGroup示例:按照以下要求设计schema文档 1.分别定义两个属性组:机房位置、设备尺寸;2.机房位置包含属性:排
7、、列;设备尺寸包含属性:高度、宽度,深度;3.定义属性组机房设备,引用上述两个属性组;4.定义元素机架,引用机房设备属性组17XML企业应用开发企业应用开发代码机架.xsd18XML企业应用开发企业应用开发import导入外部schemaqimport元素用于导入其它schema中定义的结构:全局元素声明、全局属性声明、复杂类型的定义、简单类型定义q使用元素导入另一份Schema的要求如下:元素必须作为Schema的根元素的子元素。元素必须放在元素的开头,只有、和元素可以放在元素之前。要导入的schema要么没有目标命名空间,要么其目标命名空间和当前Schema的目标命名空间不同,而被导入Sc
8、hema和当前Schema不能同时没有目标命名空间。如导入的schema没有目标命名空间,则导入的声明和定义不会成为当前schema的目标名称空间的一部分。19XML企业应用开发企业应用开发示例import.xsddept.xsd20XML企业应用开发企业应用开发代码1.在主schema中引用外部schema时,通过import元素导入该schema,import元素属性namespace的属性值与被导schema的目标名称空间一致;2.在主schema需要声明与被导入schema一致名称空间;3.在引用被导schema的声明或定义时,必须以限定名4.在XML文档实例中,必须声明被导入sche
9、ma的名称空间21XML企业应用开发企业应用开发include包含外部schemaqinclude元素用于包含其它schema中定义的结构:全局元素声明 全局属性声明 复杂类型的定义 简单类型定义q使用include元素包含一份Schema的要求:元素必须作为Schema的根元素的子元素 元素必须放在元素的开头,只有、和元素可以放在元素之前。所导入的schema,其targetNamespace属性值必须与当前schema的相同;如导入的schema没有targetNamespace属性值,则导入的声明和定义将会成为当前schema的目标名称空间的一部分。这个属性必须有,属性值可以是相对路径,
10、也可以是绝对路径。22XML企业应用开发企业应用开发示例23XML企业应用开发企业应用开发代码Include元素要求主schema与被导schema目标名称一样24XML企业应用开发企业应用开发XMLschema优点1.基于XML的语法;2.是一种可扩展的数据模型;3.支持多种数据类型及用户自定义数据类型;4.支持属性组,使我们可以在逻辑上对属性组合;5.支持命名空间、继承25XML企业应用开发企业应用开发使用schema验证xml的步骤1.编写schema,文件名*.xsd;2.编写XML文档。注意,XML文档根元素的名称 与schema元素下的某个element元素name属性 相符;3.
11、将XML文档关联到schema。4.验证文档。26XML企业应用开发企业应用开发总结-1q根据 W3C,Schema 是“一组用于约束结构和清晰表达 XML 文档的信息集的规则”。qXML 从 SGML 继承了 Document Type Definitions(文档类型定义,DTD)。DTD 用于定义内容模型、有效顺序、元素嵌套以及有限程度的属性数据类型qSchema 克服了这些限制,并允许 Web 应用程序健壮地交换 XML 数据qXML Schema 提供了一系列新功能,其中包括:qXML 语法用作创建 XML Schema 文档的基础。q更丰富的数据类型q原型q属性分组q可完善原型27XML企业应用开发企业应用开发总结-2q常用Schema 元素包括:qelement 元素qattribute 元素qsimpleType 元素qcomplexType 元素28