Web Service XML.docx
《Web Service XML.docx》由会员分享,可在线阅读,更多相关《Web Service XML.docx(15页珍藏版)》请在冰豆网上搜索。
![Web Service XML.docx](https://file1.bdocx.com/fileroot1/2022-12/30/bd26d8ab-69b5-4587-b70d-302fb95f56c9/bd26d8ab-69b5-4587-b70d-302fb95f56c91.gif)
WebServiceXML
WebServiceXML
一.XML文档分析
1.1XML声明
1.2注释
1.3元素
1.4属性
1.5CDATASection:
转义
二.XML命名空间
2.1XML命名空间实例
2.3XML缺省命名空间
2.4Prefixes
2.5QualifiedNames:
限定名(QName)
三.W3CXMLSchema基础
3.1XMLSchemaDocument
DocumentTypeDefinition(DTD文档类型定义)也可以用来描述和验证XML文档的实例,但是在WebServices中使用XMLSchema,主要的原因是DTD没有能说明数据类型。
XMLSchema定义了标记语言中使用的元素和特性、如何排序与嵌套、以及数据类型。
3.2简单类型
简单类型类似与java原始类型,都是为原子类型。
简单元素类型不能包含其它元素。
下图定义了XML模式类型层次结构:
3.3复杂类型
复杂类型定义了如何组织包含有其他元素的元素。
例如,上面例子中USAddress类型属于一个复杂类型的定义。
3.3.1元素序列(sequence)
3.3.2特性(Attributes)
3.3.3出现次数的约束(OccurrenceConstraints)
3.3.4All元素
3.4全局元素(GlobalElements)
全局元素要声明成schema元素的直接元素,而不是作为复杂元素的子元素来声明。
可以定义多个全局元素
下面定义两个全局元素:
purchaseOrder和address,这样就允许用户创建以address或者purchaseOrder为根元素的XML文档。
xmlversion="1.0"encoding="UTF-8"standalone="yes"?
>
xmlns="http:
//www.w3.org/2001/XMLSchema"
xmlns:
mh="http:
//www.Monson-H
targetNamespace="http:
//www.Monson-H
USAddress"/>
PurchaseOrder"/>
…
…
...
3.5限定元素和非限定元素(QualifiedandUnqualified)
全局元素和全局特性必须是限定的,就是必须使用前缀或者是默认命名空间来限定。
xmlversion="1.0"encoding="UTF-8"?
>
//www.w3.org/2001/XMLSchema"
xmlns:
mh="http:
//www.Monson-H
targetNamespace="http:
//www.Monson-H
elementFormDefault="qualified">
USAddress"/>
elementFormDefault="qualified">,在任何XML实例中,必须使用前缀限定targetNamespace中所有的局部元素,还有一种取值是:
“unqualified“,表示可以不限定局部元素。
同样attributeFormDefault针对于属性
3.6指定模式和确定模式的位置(AssigningandLocating)
解析器要用模式来检验XML文档是否符合具体的标记语言,为根据一个或多个模式检验XML文档,用户需要是定使用的模式,通过schemaLocation特性指定模式的位置,可以实现此目的。
下面是一个XML文档实例;第二个命名空间:
xmlns:
xsi=http:
//www.w3.org/2001/XMLSchema-instance是XMLschema-instancenamespace,定义了一些特性,包括xsi:
schemaLocation和xsi:
type,这里的xsi:
schemaLocation的含义:
帮助XML处理程序确定XML文档实例使用的实际物理模式文档的位置。
同样可以定义多个模式,将命名空间和相应的模式文件对应起来。
例如:
将http:
//www.w3.org/2001/XMLSchema-instance命名空间和http:
//www.w3.org/2001/XMLSchema.xsd"模式文件对应起来,告诉解析器用XMLSchema.xsd来验证命名空间限定的元素。
xmlversion="1.0"encoding="UTF-8"?
>
xmlns="http:
//www.Monson-H
xmlns:
xsi="http:
//www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation="http:
//www.Monson-H
http:
//www.Monson-H
http:
//www.w3.org/2001/XMLSchema-instance
http:
//www.w3.org/2001/XMLSchema.xsd">
A
923
AMAZON.COM
四.高级W3CXMLSchema
4.1复杂类型的继承性
4.1.1Extension
说明USAddress类元素扩展了Address元素,为它添加了state元素和zip元素。
Address"/>
Address">
4.1.2Restriction
通过限制,可以重新定义或者省略某些元素和特性,并且列出其他所有元素和特性。
USAddress">
4.1.3PolymorphismandAbstractBaseTypes(多态和抽象基类型)
Schema定义:
使用基类定义
Address"/>
Address"/>
XML文档:
使用派生类声明
type="mh:
UKAddress">
Amazon.co.uk
RidgmontRoad
Bedford
UnitedKingdom
MK430ZA
type="mh:
BriefUSAddress">
A
15162ndAve
90952
4.1.4抽象和最终负载类型(AbstractandFinalComplex)
表示不能直接在文档实例中直接使用
表示不能被派生
4.2简单类型的继承性
简单类型定义
通过pattern来进行模式匹配,从而限定取值类型
"/>
枚举类型列出所有可以出现的值
--Alaska-->
--Alabama-->
--Arkansas-->
--andsoon-->
4.3列表类型与联合类型
列表类型可以不包含或者包含多个item
USState"/>
CANYFLARNH
联合类型允许多种简单类型:
USStateListmh:
USZipCode"/>
下面是有效的联合类型:
CANJAK
94108
下面是无效的联合类型:
location>94108CA554011MN
4.4匿名类型
可以将元素声明与复杂类型或者简单类型的声明组合在一起创建一个匿名类型,它不能被应用,所以一般用于嵌套在复杂类型中的声明。
正常的声明方式:
PurchaseOrder"/>
下面是匿名类型的声明
4.5导入模式和包含模式
Import(导入)允许用户从不同的命名空间组合;include(包含)允许用户从相同的命名空间组合模式。
xmlversion="1.0"encoding="UTF-8"?
>
targetNamespace="http:
//www.Monson-H
xmlns:
po="http:
//www.Monson-H
xmlns:
addr="http:
//www.Monson-H
xmlns="http:
//www.w3.org/2001/XMLSchema">
//www.Monson-H
schemaLocation="http:
//www.Monson-H/>
PurchaseOrder"/>
…
Address"/>
Address"/>
Book"/>
Total"/>
….
因为PurchaseOrder类型依赖于Address类型,所以需要将地址标记模式导入倒订购单模式中。
其中
addr.xsd中targetNamespace=http:
//www.Monson-H
targetNamespace="http:
//www.Monson-H
Book和TotalSchema
xmlversion="1.0"encoding="UTF-8"?
>
targetNamespace="http:
//www.Monson-H
xmlns:
po="http:
//www.Monson-H
xmlns="http:
//www.w3.org/2001/XMLSchema">
...
PurchaseOrderSchema
xmlversion="1.0"encoding="UTF-8"?
>
targetNamespace="http:
//www.Monson-H
xmlns:
po="http:
//www.Monson-H
xmlns:
addr="http:
//www.Monson-H
xmlns="http:
//www.w3.org/2001/XMLSchema">
包含了相同命名空间的Book和TotalSchema
schemaLocation="http:
//www.Monson-H/>
导入了不同命名空间的ADDRschema
//www.Monson-H
schemaLocation="http:
//www.Monson-H/>
PurchaseOrder"/>