- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2XML Schema详解
XML Schema详解
理解Schema的数据类型
理解Schema的元素类型
理解验证与约束
什么是Schema
XML Schema是用一套预先规定的XML元素和属性创建的,这些元素和属性定义了XML文档的结构和内容模式。
XML Schema规定XML文档实例的结构和每个元素/属性的数据类型。
解说:左边是数据库中的一些术语,右边是XML里面的一些术语。
SQL是结构化查询语言,查询数据,对数据进行操作的。
Xpath也是用来定位到某个特定元素。或者是某个特定元素的属性。比如说,在Jquery之前的版本支持XPath,从1.3之后就不支持这个了。
数据库对应的是xml的文档数据
对于表结构,这个抽象的概念,它就对应一个Schema
?xml version=1.0 encoding=UTF-8?
element name=书本 type=书本类型/
complexType name=书本类型
element name=名称 type=string/
element name=作者/
/complexType”书本”,表示元素的名字叫书本
3:type=”书本类型”,是我自己定义的一种书本类型。这个类型是我自己定义的类型,complexType.
4:complexType:复杂类型。
5:这个复杂类型里面有两个元素,一个是名称、一个是作者。它们的类型都是字符串类型的。
整体来说,相当于我自定义了一个类,叫书本类型,在书本类型里面包含了两个元素,一个是名称,一个是作者。名称与作者都是字符串类型的。然后我再用自己定义的书本类型去定义书本这个元素。换句话书,书本这个元素就是书本类型的。
复杂类型,我们可以把它看作是一个java类。类里面的两个元素可以看成是类里面的两个成员变量或者是属性。
WebService其实会将这个xml转换成为类文件。
为什么要使用Schema
DTD的局限性:
1:DTD不遵守XML语法(写XML文档实例时候用一种语法,写DTD的时候用另外一种语法)
2:DTD数据类型有限(与数据库数据类型不一致)
3:DTD不可扩展
4:DTD不支持命名空间(命名冲突)
Schema的新特性:
1:Schema基于XML语法
2:Schema可以用能处理XML文档的工具处理。
3:Schema大大扩充了数据类型,可以自定义数据类型。
4:Schema支持元素的继承——Object——Oriented
5:Schema支持属性组。
解说:DTD本身不是一个xml文件,数据类型有限,与数据库的数据类型或者是java程序的数据类型存在比较大的差异性。DTD里面最常见的数据类型就是PCDATA,这个PCDATA如果要表示字符串,用它是比较恰当的。想表示一个整数,表示一个boolean类型,想表示日期,它本身就不应该是一个字符串,就应该是一个boolean类型或者一个日期类型,但是在DTD里面没有办法,它只有PCDATA这一种数据类型。
DTD的局了限性,就是Schema的一个优势。Schema本身基于xml的语法。
Schema的文档结构
?xml version=”1.0”?
xs:schema xmlns:xs=”http:/2001/XMLSchema”
targetNamespace=http://mynamespace/myschema
!—放入实际内容(
/xs:schema
所有Schema文档使用schema作为其根元素。
用于构造schema的元素和数据类型来自/2001/XMLSchema命名空间
本schema定义的元素和数据类型属于http://mynamespace/myschema命名空间
解说:首先明确一点就是Schema本身是一个xml,它保存的后缀名是xsd文件。在Schema文档里面,它的根元素就是统一的都叫作xs:schema
xs :这部分是命名空间,即xmlns:后面跟着的名字,这个名字是可以更改的。
Schema本身也是一个xml,那么它的正确性是谁来校验呢?其实最终验证Schema的是DTD.因为DTD本身是没有什么需要去验证的。因为DTD可以说是最原始或者说是最底层的东西。它是不需要别人去验证的。而Schema它本身去验证xml文档。它的规范性是通过DTD去验证的。
/2001/XMLSchema:这一名就是验证当前我这个Schema文档的命名空间的地址是什么。
targetNamespace:目标的命名空间.
本schema定义的元素和数据类型属于http://mynamespace/myschema命名空间
Schema是用来验证一个xml文档的。它用于验证xml文档的元素或
原创力文档


文档评论(0)