《L04 XML Schema.ppt》由会员分享,可在线阅读,更多相关《L04 XML Schema.ppt(49页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第四四章章 X XML SchemaML Schema福州大学福州大学 吴小竹吴小竹XML程序设计XML程序设计福州大学 吴小竹本章主要内容本章主要内容lXML Schema 与DTDlXML SchemalXML Schema的数据类型lXML Schema 的元素声明lXML Schema 的属性声明lXML Schema 的命名空间lXML Schema 的引用2XML程序设计福州大学 吴小竹XML Schema与DTD两者的比较两者的比较 Schema与 DTD相比,XML模式具有如下的几个优点:lDTD是用一种与 XML不同的语法编写的,而XML模式使用的是一种类XML的语言。lS
2、chema支持丰富的数据类型。lSchema支持命名空间机制。3XML程序设计福州大学 吴小竹XMLSchemalXML Schema语言有两种模型:Microsoft开发的Microsoft XML Schema和W3C开发的W3C XML Schema。Microsoft XML Schema已经开发成熟并运用到实际,而最为正式的XML Schema语言是由W3C指定的XML Schema规范,简称为xsd(XML Schema Definition)。xsd也提供了数据类型的支持和结构定义的方法。XML Schema4XML程序设计福州大学 吴小竹XMLSchema基本结构基本结构1.M
3、icrosoft XML Schema模式 Schema文件由一组元素组成,其根元素是Schema,其文件结构为:XML Schema一般命名空间为一般命名空间为xmlns=urn:schemas-microsoft-com:xml-dataXmlns:dt=“urn:schemas-microsoft-com:datatypes”5XML程序设计福州大学 吴小竹XMLSchema基本结构基本结构2.W3C XML Schema模式 文档后缀名为.xsd,其根元素是Schema,其文件结构为:XML Schema命名空间为命名空间为xmlns:xsd=http:/www.w3.org/2001
4、/XMLSchema6XML程序设计福州大学 吴小竹XMLSchema的作用的作用l使用Schema定义XML文档结构,并且以用它来验证XML文档的正确性,用来判断实例是否符合模式中所描述的所有约束。XML Schema主要检验如下功能:主要检验如下功能:l验证数据的格式是否正确及是否超出值的范围验证数据的格式是否正确及是否超出值的范围l验证所有必需的信息是否都存在验证所有必需的信息是否都存在l为元素和属性添加默认值和固定值为元素和属性添加默认值和固定值7XML程序设计福州大学 吴小竹例子:例子:XML Schema1.MicrosoftXMLSchema模式模式8XML程序设计福州大学 吴小
5、竹例子:例子:XML Schema李亮李亮男男1985.2.51.MicrosoftXMLSchema模式模式9XML程序设计福州大学 吴小竹例子:例子:XML Schema2.W3CXMLSchema模式模式10XML程序设计福州大学 吴小竹例子:例子:XML Schema李亮李亮男男1985-02-052.W3CXMLSchema模式模式11XML程序设计福州大学 吴小竹MSXMLSchema的数据类型的数据类型XML Schema的数据类型12XML程序设计福州大学 吴小竹MSXMLSchema的数据类型的数据类型XML Schema的数据类型l类型 解释举例lboolean布尔型 0,
6、1lchar 单字符 “a”,“c”ltime 时间类型(无日期)08:16:18ldate 日期类型(无时间)2005-09-01ldatetime日期类型(带时间)2005-09-01 T22:30:18lfloat 实数类型.31415926E+1lint数值类型1,-10,256lnumber数值类型12.356682luri统一资源标识类型 http:/www.w3c.org/lstring 字符串 “xml”13XML程序设计福州大学 吴小竹例:例:MSXMLSchema的数据类型的数据类型Schema文件清单:XML Schema的数据类型14XML程序设计福州大学 吴小竹例:例
7、:MSXMLSchema的数据类型的数据类型刘婷女1982-05-08false营销部XML Schema的数据类型15XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型l l简单类型简单类型元素中仅包含文本数据,且不包含属性。语法结构如下:XML Schema的数据类型16XML程序设计福州大学 吴小竹17XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型l l原子类型原子类型可以使用xsd:restriction限制现有的简单类型XML Schema的数据类型18XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型l l
8、列表类型列表类型形式:形式:XML Schema的数据类型19XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型l l联合类型联合类型形式:形式:XML Schema的数据类型20XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型l l复杂类型复杂类型有四种复杂类型的元素:l第一种类型是“只含元素”类型,它只能含有子元素或属性,而不能含有文本。l 第二种类型是“只含文本”类型,它只能含有文本和属性,而不能含有子元素。l第三种类型是“空元素”类型,它可以有属性,但不能含有子元素或文本。l第四种类型是“混合内容”类型,它可以包含元素,属性和文本的组合
9、。XML Schema的数据类型21XML程序设计福州大学 吴小竹22XML程序设计福州大学 吴小竹C#技术内幕Joseph Mayo59.00 这是一本关于C#编程语言的指南和参考书。清华大学出版社2003年1月23XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型lsimpleContent 用于属性的声明。语法格式:XML Schema的数据类型例:24XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型lcomplexContent 可以从一个复杂类型派生出新的复杂类型,适用于包含属性和子元素。语法格式:XML Schema的数据类型25X
10、ML程序设计福州大学 吴小竹例:26XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型l lgroup、all、choice、sequencel(1)group 元素用于定义在复杂类型定义中使用的元素组。语法格式:XML Schema的数据类型27XML程序设计福州大学 吴小竹28XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型l lgroup、all、choice、sequencel(2)all 元素规定子元素能够以任意顺序出现,每个子元素只出现0或1次。XML Schema的数据类型29XML程序设计福州大学 吴小竹W3CXMLSchema
11、的数据类型的数据类型l lgroupgroup、allall、choicechoice、sequencesequencel(3)choice 仅允许包含在 声明中的元素之一出现在包含元素中。XML Schema的数据类型30XML程序设计福州大学 吴小竹W3CXMLSchema的数据类型的数据类型l lgroupgroup、allall、choicechoice、sequencesequence l(4)sequence 要求组中的元素以指定的顺序出现在包含元素中。每个子元素可出现 0 次到任意次数。XML Schema的数据类型31XML程序设计福州大学 吴小竹W3CXMLSchema的数据
12、类型的数据类型l批注:语法:语法:*XML Schema的数据类型W3SchoolNoteThisSchemadefinesaW3Schoolnote!.32XML程序设计福州大学 吴小竹MSXMLSchema的元素声明的元素声明l元素声明格式如下:XML Schema的元素声明33XML程序设计福州大学 吴小竹。34XML程序设计福州大学 吴小竹W3CXMLSchema的元素声明的元素声明l元素声明格式如下:XML Schema的元素声明35XML程序设计福州大学 吴小竹36XML程序设计福州大学 吴小竹37XML程序设计福州大学 吴小竹W3CXMLSchema的元素声明的元素声明l空元素声
13、明格式如下:XML Schema的元素声明 38XML程序设计福州大学 吴小竹W3CXMLSchema的元素声明的元素声明l简单元素可拥有指定的默认值或固定值。l当没有其他的值被规定时,默认值就会自动分配给元素。XML Schema的元素声明 39XML程序设计福州大学 吴小竹W3CXMLSchema的元素声明的元素声明l元素引用:引用是利用element标记符的ref属性实现的。主要适用于避免在文档中多次定义同一个元素,应当将经常使用的元素定义为根元素的子元素,以便在文档的任何地方引用它。XML Schema的元素声明40XML程序设计福州大学 吴小竹W3CXMLSchema的元素声明的元素
14、声明l元素引用:element元素的substitutionGroup属性为某个定义元素起一个别名XML Schema的元素声明对应的对应的XML文档文档string或者:或者:string41XML程序设计福州大学 吴小竹MSXMLSchema的属性声明的属性声明l 用元素AttributeType进行属性声明,而要指定某个元素拥有一个AttributeType元素,则应使用元素attribute。语法格式如下:XML Schema的属性声明42XML程序设计福州大学 吴小竹MSXMLSchema的属性声明的属性声明XML Schema的属性声明43XML程序设计福州大学 吴小竹W3CXML
15、Schema的属性声明的属性声明l用attribute 元素定义一个属性。语法格式如下:XML Schema的属性声明(annotation?,(simpleType?)44XML程序设计福州大学 吴小竹W3CXMLSchema的属性声明的属性声明XML Schema的属性声明 45XML程序设计福州大学 吴小竹引用引用XMLSchemaXML Schema的使用l引用 Microsoft XML Schema:l46XML程序设计福州大学 吴小竹引用引用XMLSchemaXML Schema的使用l引用 W3C XML Schema:(1).Schema文档中未定义目标命名空间(targetNamespace)(2).如果Schema文档中已经定义目标命名空间(targetNamespace)xmlns=http:/127.0.0.1/xml 47XML程序设计福州大学 吴小竹合并合并XMLSchema文件文件XML Schema的使用 48XML程序设计福州大学 吴小竹合并合并XMLSchema文件文件XML Schema的使用文件二(create_customer_response1.xsd):49