第10章XML Schema模式简介_第1页
第10章XML Schema模式简介_第2页
第10章XML Schema模式简介_第3页
第10章XML Schema模式简介_第4页
第10章XML Schema模式简介_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第第10章章 XML Schema模式简介模式简介“更有效”的XML文档2目标目标l理解理解XML Schema的含义与用途的含义与用途l掌握掌握XML Schema 中的元素、属性声明中的元素、属性声明l掌握掌握XML Schema支持的数据类型支持的数据类型l理解理解XML Schema 的命名空间的概念的命名空间的概念3Schema 简介简介字典含义概括性表示、大纲或模型软件上下文模型用于描述数据库的结构,定义表格、字段等内部结构以及它们之间的关系XML 上下文一组用于约束结构和清晰表达 XML 文档的信息集的规则 4DTD 与与 SchemaDTDSGML定义内容模型有效顺序和元素嵌

2、套有限的属性数据类型5hello包含内容?内容为数字? ?有效5XML Schema与与DTDlDTD还有什么缺陷?还有什么缺陷?l采用不同于采用不同于XML的语言编写的语言编写l不支持命名空间不支持命名空间l在支持继承和子类方面的局限性在支持继承和子类方面的局限性l没有数据类型的概念,无法对特定元素施加数据类型没有数据类型的概念,无法对特定元素施加数据类型lXML Schema的优势:的优势:l内容内容“开放开放”的模型,可扩展、功能强的模型,可扩展、功能强l支持丰富的数据类型支持丰富的数据类型l支持命名空间机制支持命名空间机制l可对整个可对整个XML文档或者局部进行验证文档或者局部进行验证

3、l符合符合XML规范规范6Schema 的必要性的必要性lXML Schema规范规范是是 W3C的正式推荐标准,用的正式推荐标准,用于定义于定义xml 文件以改善文件以改善 DTD 的一个子集的一个子集 l对对 DTD 的许多不足之处进行了改善,如隐晦的的许多不足之处进行了改善,如隐晦的语法、数据类型缺乏、封闭的内容模型以及不支语法、数据类型缺乏、封闭的内容模型以及不支持命名空间持命名空间lXML Schema 支持广泛的数据类型,如整型、浮支持广泛的数据类型,如整型、浮点型、日期和时间点型、日期和时间l支持其他功能,如开放内容模型和命名空间集成支持其他功能,如开放内容模型和命名空间集成7X

4、ML Schema 的功能的功能lXML Schema 文档是使用文档是使用 XML 语法创建的,所以无需语法创建的,所以无需学习含义模糊的语言学习含义模糊的语言l可以像任何其他可以像任何其他 XML 文档一样传递和操作文档一样传递和操作l提供更丰富的数据类型,如布尔型、数字、日期和时间、提供更丰富的数据类型,如布尔型、数字、日期和时间、URI、整型、小数、实数以及时间间隔、整型、小数、实数以及时间间隔l提供原型,允许使用预先存在的数据类型来定义用户自提供原型,允许使用预先存在的数据类型来定义用户自定义数据类型定义数据类型l能够进行属性分组,所有元素都可以具有共同的属性能够进行属性分组,所有元

5、素都可以具有共同的属性l提供可完善原型提供可完善原型8Schema可定义内容可定义内容文档中出现的元素文档中出现的属性子元素子元素出现顺序、数量元素内容是文本或是空元素与属性的数据类型元素与属性的默认值和固定值主要验证:数据显示格式是否正确及是否超出值的范围所有必须信息是否存在确保不同使用者对文档理解的方式相同扩充:为元素或属性添加默认值和固定值使具有简单类型的元素和属性值中的空白符规范化9XML Schema基本结构基本结构lXML Schema有两种重要的有两种重要的Schema模型:模型:lMicrosoft XML SchemalW3C XML Schemal文档后缀名为:文档后缀名为

6、:.xsdl元素及属性声明均以元素及属性声明均以xsd:开头开头lxsd:schema为根元素为根元素l结构:结构:元素声明部分或属性声明部分元素声明部分或属性声明部分10Schema引用引用l验证验证XML文档,必须指定文档,必须指定Schema的位置。模式位置的位置。模式位置可以利用带有名称空间模式的可以利用带有名称空间模式的xsi:schemaLocation属性以及不带名称空间属性以及不带名称空间XML模式的模式的xsi:noNamespaceSchemaLocation属性指定属性指定11XML Schema名称空间名称空间2-1声明:声明:ltargetNamespacel目标名称

7、空间,用于存放当前目标名称空间,用于存放当前Schema文档定义文档定义的元素、属性和数据类型等的元素、属性和数据类型等l标准名称空间标准名称空间l构造构造Schema的元素、属性和数据类型来自标准的元素、属性和数据类型来自标准名称空间名称空间“/2001/XMLSchema”l默认名称空间默认名称空间lxmlns=“名称空间声明名称空间声明”12名称空间名称空间显示显示 schema 中用到的元素和数据类型来自命名中用到的元素和数据类型来自命名空间空间 “/2001/XMLSchema”。同时它还规定了来自命名空间同时它还规定了

8、来自命名空间 /2001/XMLSchema 的元素和数据类型应该使用前缀的元素和数据类型应该使用前缀 xs:显示被此显示被此 schema 定义的元素定义的元素 (note, to, from, heading, body) 来自命名空间:来自命名空间: http:/ 默认的命名空间默认的命名空间 XML 实例文档所使用的且实例文档所使用的且在此在此 schema 中声明过的中声明过的元素必须被命名空间限定元素必须被命名空间限定13XML Schema命名空间命名空间2-2l引用引用XML Schema文档文档l定义目标命名空间定义目标命名空间l没有目标命名空

9、间没有目标命名空间note.xml14Schema 示例示例 李亮 男 1985-02-05 exa1.xsd15XML Schema 中的元素中的元素 5-1lSchema 中的元素或属性使用中的元素或属性使用 和和 标签来声明标签来声明Schema 元素xmlns要使用任意一种 XML Schema 数据类型,需指定 XML Schema 数据类型的命名空间 16XML Schema 中的元素中的元素 5-2数据类型允许作为数据类型的值stringbooleanintegerfloatdate语法:语法:声明元素语法:声明元素语法: annotation?,(simpleType|comp

10、lexType)?,(unique|key|keyref)*) 17XML Schema 中的元素中的元素 5-3元素typeminOccursmaxOccurs minOccurs 和 maxOccurs 之间的关系minOccursmaxOccurs元素可以出现的次数010 或或 11110unbounded无限无限1unbounded至少一次至少一次0unbounded至少是至少是 minOccurs 次次18XML Schema 中的元素中的元素 5-4l元素引用元素引用l一个元素在一个元素在XML文档中不同位置出现多次,可文档中不同位置出现多次,可使用使用ref属性对元素引用属性对元

11、素引用 exa2.xsd 李莉李莉1389785674319属性声明属性声明l直接在文档内部声明直接在文档内部声明l语法:语法: (annotation?,(simpleType?) 学生信息学生信息 exa3.xsd20W3C XML Schema数据类型数据类型l简单类型简单类型l内建数据类型内建数据类型l声明以声明以simpleType开始开始l分为:分为:l原子类型原子类型l列表类型列表类型l联合类型联合类型l复杂类型复杂类型l声明以声明以complexType开始开始l分为:分为:l简单类型简单类型l纯元素类型纯元素类型l混合类型混合类型l空类型空类型21内建数据类型内建数据类型 指

12、元素的名称指元素的名称 元素的数据类型元素的数据类型 xs:string xs:decimal xs:integer xs:boolean xs:date xs:time 22 Smith 28 1980-03-27默认值:默认值: 固定值:固定值: 内建数据类型实例内建数据类型实例23简单类型声明简单类型声明l简单类型仅包含数字、字符串或其他文本数据,简单类型仅包含数字、字符串或其他文本数据,不包含子元素不包含子元素l语法结构:语法结构: lsimpleType:类型名称类型名称lId:元素元素ID,包含该元素文档中惟一,可选项,包含该元素文档中惟一,可选项24Schema 支持的数据类型支

13、持的数据类型从基本的内置数据类型(称为 basetype 数据类型)可以生成其他数据类型基本类型数据类型整型整型 integer小数小数 decimal浮点数浮点数 float字符串字符串 string日期日期 date时间时间 time exa1.xsd25restriction简单类型简单类型l语法:语法:一个或多个元素指定新数据类型的限定一个或多个元素指定新数据类型的限定 exa4.xsd26列表类型列表类型l列表简单类型定义为用空格隔开指定数据类型列表简单类型定义为用空格隔开指定数据类型的值的一个列表的值的一个列表l语法:语法:exa5.xsd泰山泰山 华山华山 嵩山嵩山 衡山衡山 恒

14、山恒山exa6.xsd泰山泰山 华山华山 27联合类型联合类型l联合类型对应值可以包含多个原子类型,也可联合类型对应值可以包含多个原子类型,也可以包含多个列表值以包含多个列表值l语法:语法: memberTypes:包含类型值:包含类型值exa7.xsd李华李华74 张叶张叶90 28复杂元素复杂元素10-1 l复合元素指包含其他元素或属性的复合元素指包含其他元素或属性的 XML 元素元素 l四种类型的复合元素四种类型的复合元素 l空元素空元素 l包含其他元素的元素包含其他元素的元素 l仅包含文本或属性的元素仅包含文本或属性的元素 l包含元素和文本的元素包含元素和文本的元素 John Smit

15、h Ice cream zhangsanmale29复杂类型复杂类型10-2l复杂类型的元素含有子元素或属性复杂类型的元素含有子元素或属性l语法:语法:(annotation?, (simpleContent | complexContent | (group |all | choice | sequence)?, (attribute | attributeGroup)*, anyAttribute?) exa9.xsdC#技术内幕技术内幕Joseph Mayo59.00 这是一本关于这是一本关于C#编程语言的指南和参考书。编程语言的指南和参考书。 清华大学出版社清华大学出版社2003年年1

16、月月30复杂类型复杂类型10-3l内建模型可为内建模型可为simpleContent、ComplexContent、group、all、choice、sequence和批注和批注annotationlsimpleContentl从简单类型派生复杂类型从简单类型派生复杂类型l适用于包含字符内容或属性但是不包含子元素适用于包含字符内容或属性但是不包含子元素l语法:语法: (annotation?,(restriction|extension) exa10.xsdC#技术内幕技术内幕31复杂类型复杂类型10-4lcompleContentl从复杂类型派生新的复杂类型从复杂类型派生新的复杂类型l适用于

17、包含属性或子元素但不包含字符数据适用于包含属性或子元素但不包含字符数据l语法:语法: (annotation?, (restriction | extension) exa11.xsd 这本书的书名是这本书的书名是C#技术内幕技术内幕, 作者是作者是Joseph Mayo, 由由机械工业出版社机械工业出版社出版。出版。 exa12.xsdC#技术内幕技术内幕32复杂类型复杂类型10-5l空元素空元素l没有内容,但可以包含属性没有内容,但可以包含属性l定义方式:先定义一个元素,它能包含子元素定义方式:先定义一个元素,它能包含子元素不能包含文本内容,然后不定义任何子元素不能包含文本内容,然后不定义

18、任何子元素 exa8.xsd33复杂类型复杂类型10-6lgroupl将若干元素声明归位一组将若干元素声明归位一组l语法:语法: annotation?,(all|choice|sequence)?) exa13.xsd-1 exa13.xsd-234复杂类型复杂类型10-7lalll符合元素声明的所有子元素以任意顺序出现,符合元素声明的所有子元素以任意顺序出现,且每个子元素只能出现零次或一次且每个子元素只能出现零次或一次l语法:语法: (annotation?,element*) exa14.xsd出版社子元素至多出现一次出版社子元素至多出现一次 C#技术内幕技术内幕 Joseph Mayo 机械工业出版社机械工业出版社35复杂类型复杂类型10-8lchoicel只有一个相容元素必须出现,用于互斥情况只有一个相容元素必须出现,用于互斥情况l语法:语法: (annotation?,(element|group|choice|sequence|any)*) exa15.xsd C#技术内幕技术内幕36复杂类型复杂类型10-9lsequ

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论