XML
Schema定义
XML Schema定义(XML Schema Definition,XSD)是一套W3C标准,用于基于XML的称为XML
Schema的类型系统。用于定义的语言是一种称为XML模式定义语言(XML Schema Definition
Language)的XML语法。Web 服务使用XML作为表示消息和数据的底层格式。因此,XSD成为Web服务类型系统的自然选择。
关于XSD的更多信息,请访问下面的网址:
http://www.w3.org/2001/XMLSchema
本附录提供了XSD在以下文件中的应用,这些文件用于开发JAX-RPC Web服务和客户端:
XML
Schema用于wscompile 配置文件
以下代码是用于创建wscompile配置文件的XML
Schema:
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://java.sun.com/xml/ns/jax-rpc/ri/config"
targetNamespace="http://java.sun.com/xml/ns/jax-rpc/ri/config"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="1.0">
<xsd:annotation>
<xsd:documentation>
这就是用于wscompile 配置文件的模式。
唯一允许的顶层元素是“configuration”。
</xsd:documentation>
</xsd:annotation>
<xsd:element
name="configuration">
<xsd:annotation>
<xsd:documentation>
所谓顶层元素,它必须包含3种可能的元素中的一种,相应地也会有3种不同的方式来为这种工具提供信息服务。
元素: (互斥的)
"service" ——
基于一组服务端接口的服务描述;
"wsdl"
—— WSDL 文档,用于导入和处理;
"modelfile"
—— 预先保存好的模型文件 (wscompile中的-model选项)。
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:element name="service"
type="tns:serviceType"/>
<xsd:element name="wsdl"
type="tns:wsdlType"/>
<xsd:element name="modelfile"
type="tns:modelfileType"/>
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:complexType
name="serviceType">
<xsd:annotation>
<xsd:documentation>
基于一组Java接口的服务描述 (也称为“服务端接口”)。
属性:
"name"
—— 服务名;
"targetNamespace"
——用于生成WSDL 文档的目标命名空间;
"typeNamespace"
——用于嵌入在生成的WSDL文档中的XML Schema的目标命名空间;
"packageName"
——缺省使用的Java包的名称。
元素:
"interface"*
——服务端接口描述的序列;
"typeMappingRegistry"?
——用于该服务的类型映射注册表;
"handlerChains"?
——服务端的缺省处理程序链;
"namespaceMappingRegistry"?
—— 到Java包映射信息的XML命名空间。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"interface" type=3D"tns:interfaceType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xsd:element
name=3D"typeMappingRegistry" type=3D"tns:typeMappingRegistryType"
minOccurs=3D"0"/>
<xsd:element
name=3D"handlerChains" type=3D"tns:handlerChainsType"
minOccurs=3D"0"/>
<xsd:element
name=3D"namespaceMappingRegistry" type=3D"tns:namespaceMappingRegistryType"
minOccurs=3D"0"/>
</xsd:sequence>
<xsd:attribute
name=3D"name" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"targetNamespace" type=3D"xsd:anyURI"
use=3D"required"/>
<xsd:attribute
name=3D"typeNamespace" type=3D"xsd:anyURI"
use=3D"required"/>
<xsd:attribute
name=3D"packageName" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType name=3D"interfaceType">
<xsd:annotation>
<xsd:documentation>
基于服务端接口的端定义。
属性:
"name"
——服务端接口的名称(Java接口);
"servantName"
(可选)—— 服务端实现类的名称;
"soapAction"
(可选)—— 用于接口中所有操作的SOAPAction字符串;
"soapActionBase"
(可选) —— 基于SOAPAction字符串的URI;给定操作的SOAPAction可以通过向这里提供的值中添加操作名称来获取;这个属性是“soapAction”专有的。
元素:
"handlerChains"
——指定该端点的处理程序链。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"handlerChains" type=3D"tns:handlerChainsType"
minOccurs=3D"0"/>
</xsd:sequence>
<xsd:attribute
name=3D"name" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"servantName" type=3D"xsd:string"/>
<xsd:attribute
name=3D"soapAction" type=3D"xsd:string"/>
<xsd:attribute
name=3D"soapActionBase" type=3D"xsd:string"/>
</xsd:complexType>
<xsd:complexType name=3D"wsdlType">
<xsd:annotation>
<xsd:documentation>
服务描述基于现有的WSDL
文档。
属性:
"location"
——WSDL 文档的URL;
"packageName"
—— 缺省使用的Java包的名称。
元素:
"typeMappingRegistry"?
——用于该服务的类型映射注册表;
"handlerChains"?
—— 用于该服务端点的缺省处理程序链;
"namespaceMappingRegistry"?
—— 到Java包的映射信息的XML命名空间。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"typeMappingRegistry" type=3D"tns:typeMappingRegistryType"
minOccurs=3D"0"/>
<xsd:element
name=3D"handlerChains" type=3D"tns:handlerChainsType"
minOccurs=3D"0"/>
<xsd:element
name=3D"namespaceMappingRegistry" type=3D"tns:namespaceMappingRegistryType"
minOccurs=3D"0"/>
</xsd:sequence>
<xsd:attribute
name=3D"location" type=3D"xsd:anyURI"
use=3D"required"/>
<xsd:attribute
name=3D"packageName" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType name=3D"modelfileType">
<xsd:annotation>
<xsd:documentation>
基于现有模型文件的服务描述。
属性:
"location"
—— 模型文件的URL (通常以.xml.gz结尾);
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"location" type=3D"xsd:anyURI"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType
name=3D"handlerChainsType">
<xsd:annotation>
<xsd:documentation>
处理程序链。
属性:
"runAt"
——指定该链是运行在客户端还是服务器上。
"roles"
——该链的SOAP角色。
元素:
"handler"*
——形成该链的处理程序序列。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"chain" type=3D"tns:chainType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name=3D"chainType">
<xsd:annotation>
<xsd:documentation>
SOAP角色的列表,也即 URI 的列表。
</xsd:documentation>
</xsd:annotation>
<xsd:list
itemType=3D"xsd:anyURI"/>
</xsd:simpleType>
<xsd:complexType name=3D"handlerType">
<xsd:annotation>
<xsd:documentation>
处理程序描述。
属性:
"className"
—— 处理程序类的名称;
"headers"
—— 该处理程序所使用的头部的名称。
元素:
"property"*
——该处理程序的初始化特性(property)。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"property" type=3D"tns:propertyType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
<xsd:attribute
name=3D"className" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"headers" type=3D"tns:headerListType"/>
</xsd:complexType>
<xsd:simpleType name=3D"headerListType">
<xsd:annotation>
<xsd:documentation>
头部名称的列表,即
QNames的列表.
</xsd:documentation>
</xsd:annotation>
<xsd:list
itemType=3D"xsd:QName"/>
</xsd:simpleType>
<xsd:complexType name=3D"propertyType">
<xsd:annotation>
<xsd:documentation>
处理程序的初始化特性(property)。
属性:
"name"
——特性的名称;
"value"
——特性的值。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"name" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"value" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:simpleType
name =3D"runAtType">
<xsd:annotation>
<xsd:documentation>
处理程序链可以运行的地方,可以是“客户端“或者“服务器”。
</xsd:documentation>
</xsd:annotation>
<xsd:restriction
base=3D"xsd:string">
<xsd:enumeration
value=3D"client"/>
<xsd:enumeration
value=3D"server"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType
name=3D"typeMappingRegistryType">
<xsd:annotation>
<xsd:documentation>
类型映射注册表。
元素:
"import"?
—— XML Schema文档的列表,描述了用户定义的类型。
"typeMapping"*
——类型映射序列,每编码一个。
"additionalTypes"?
——即使不出现在服务接口上,也应该进行处理的附加Java类型的列表。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"import" type=3D"tns:importType"
minOccurs=3D"0"/>
<xsd:element
name=3D"typeMapping" type=3D"tns:typeMappingType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
<xsd:element
name=3D"additionalTypes" type=3D"tns:additionalTypesType"
minOccurs=3D"0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType
name=3D"importType">
<xsd:annotation>
<xsd:documentation>
需要导入的模式文档的列表,通常描述被可插入式串行化器使用的模式类型。
元素:
"schema"*——需要导入的模式文档的列表。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"schema" type=3D"tns:schemaType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType
name=3D"schemaType">
<xsd:annotation>
<xsd:documentation>
一个将被导入的模式文档。
属性:
"namespace"
—— 文档描述的命名空间;
"location"
—— 指向模式文档的 URL。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"namespace" type=3D"xsd:anyURI"
use=3D"required"/>
<xsd:attribute
name=3D"location" type=3D"xsd:anyURI"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType
name=3D"typeMappingType">
<xsd:annotation>
<xsd:documentation>
特殊编码的类型映射。
属性:
"encodingStyle"
——指示编码的URI。
元素:
"entry"*
——类型映射条目的列表。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"entry" type=3D"tns:entryType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
<xsd:attribute
name=3D"encodingStyle" type=3D"xsd:anyURI"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType
name=3D"entryType">
<xsd:annotation>
<xsd:documentation>
类型映射中的条目。
属性:
"schemaType"
—— 模式类型的名称;
"javaType"
—— 相应Java类的名称;
"serializerFactory"
—— 用于该类型的串行化器工厂类的名称;
"deserializerFactory"
—— 用于该类型的反串行化器工厂类的名称。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"schemaType" type=3D"xsd:QName"
use=3D"required"/>
<xsd:attribute
name=3D"javaType" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"serializerFactory" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"deserializerFactory" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType
name=3D"additionalTypesType">
<xsd:annotation>
<xsd:documentation>
由工具来处理的附加Java类型的列表。
元素:
"class"*——
将被处理的类的列表。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"class" type=3D"tns:classType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType
name=3D"classType">
<xsd:annotation>
<xsd:documentation>
Java类描述。
属性:
"class"
—— 类的名称。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"name" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType
name=3D"namespaceMappingRegistryType">
<xsd:annotation>
<xsd:documentation>
将XML命名空间映射到Java包(以及从Java包映射到XML命名空间)的注册表。
元素:
"namespaceMapping"*
—— 映射列表。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"namespaceMapping" type=3D"tns:namespaceMappingType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType
name=3D"namespaceMappingType">
<xsd:annotation>
<xsd:documentation>
XML命名空间与Java包之间的映射。
属性:
"namespace"
—— XML 命名空间的名称;
"packageName"——Java包名。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"namespace" type=3D"xsd:anyURI"
use=3D"required"/>
<xsd:attribute
name=3D"packageName" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
</xsd:schema>
XML Schema用于部署描述文件
下面的代码是用于创建Web
service 部署描述文件的XML模式:
<?xml
version=3D"1.0" encoding=3D"UTF-8"?>
<xsd:schema
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"
xmlns:tns=3D"http://java.sun.com/xml/ns/jax-rpc/ri/dd"
targetNamespace=3D"http://java.sun.com/xml/ns/jax-rpc/ri=
/dd"
elementFormDefault=3D"qualified"
attributeFormDefault=3D"unqualified"
version=3D"1.0">
<xsd:annotation>
<xsd:documentation>
这是部署描述文件(jaxrpc-ri.xml)的模式。
顶层元素必须是"webServices"。
</xsd:documentation>
</xsd:annotation>
<xsd:element
name=3D"webServices">
<xsd:annotation>
<xsd:documentation>
顶层元素。
属性:
"version"
—— 版本号;
"targetNamespaceBase"?
——WSDL文档的thetargetNamespace的基础URI,该WSDL文档是为那些没有自己的模型文件的端点而生成的;
"typeNamespaceBase"?
——类似于"targetNamespaceBase",但是用于嵌 入在已生成的WSDL
文档中的XML Schema文档;
"urlPatternBase"?
——用于所有端点的基础 URL式样(pattern);通过使用和"endpointMapping(端点映射)",它能够被重载
(见下文)。
对于所有这些基础特性,用于特定端点的值可以由带有追加到它的端点名的基础值来指定。
元素:
"endpoint"*
—— 端点描述序列;
"endpointMapping"*
—— 端点映射序列。
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=3D"endpoint" type=3D"tns:endpointType"minOccurs=3D"0"
maxOccurs=3D"unbounded"/>
<xsd:element
name=3D"endpointMapping"type=3D"tns:endpointMappingType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
<xsd:attribute
name=3D"version" type=3D"xsd:string"use=3D"required"/>
<xsd:attribute
name=3D"targetNamespaceBase" type=3D"xsd:string"/>
<xsd:attribute
name=3D"typeNamespaceBase" type=3D"xsd:string"/>
<xsd:attribute
name=3D"urlPatternBase" type=3D"xsd:string"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType
name=3D"endpointType">
<xsd:annotation>
<xsd:documentation>
端点描述。
属性:
"name"
—— 端点的名称;
"displayName"?
—— 端点的可读性名称;
"description"?
—— 端点的描述;
"interface"?
——服务端点接口的名称;
"implementation"?
——服务实现类的名称;
"model"?
—— 指向描述端点模型文件的资源。
元素:
"handlerChains"?
——端点的处理程序链。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"handlerChains" type=3D"tns:handlerChainsType"
minOccurs=3D"0"/>
</xsd:sequence>
<xsd:attribute
name=3D"name" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"displayName" type=3D"xsd:string"/>
<xsd:attribute
name=3D"description" type=3D"xsd:string"/>
<xsd:attribute
name=3D"interface" type=3D"xsd:string"/>
<xsd:attribute
name=3D"implementation" type=3D"xsd:string"/>
<xsd:attribute
name=3D"model" type=3D"xsd:anyURI"/>
</xsd:complexType>
<xsd:complexType
name=3D"endpointMappingType">
<xsd:annotation>
<xsd:documentation>
端点映射条目,类似于web.xml中的servlet映射。
属性:
"endpointName"
—— 端点的名称;
"urlPattern"
—— 端点的URL式样(pattern)。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"endpointName" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"urlPattern" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType
name=3D"handlerChainsType">
<xsd:annotation>
<xsd:documentation>
一组handlerChains。在部署描述文件中,只有server端的处理程序链能够识别。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"chain" type=3D"tns:chainType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType
name=3D"chainType">
<xsd:annotation>
xsd:documentation>
处理程序链。
属性:
"runAt"
—— 指定处理程序链运行在客户端还是运行在服务器端;
"roles"
—— 处理程序链的SOAP角色。
元素:
"handler"*
—— 形成该链的处理程序序列。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"handler" type=3D"tns:handlerType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
<xsd:attribute
name=3D"runAt" type=3D"tns:runAtType"
use=3D"required"/>
<xsd:attribute
name=3D"roles" type=3D"tns:roleListType"/>
</xsd:complexType>
<xsd:simpleType
name=3D"roleListType">
<xsd:annotation>
<xsd:documentation>
SOAP角色的列表,也就是URI的列表。
</xsd:documentation>
</xsd:annotation>
<xsd:list
itemType=3D"xsd:anyURI"/>
</xsd:simpleType>
<xsd:complexType
name=3D"handlerType">
<xsd:annotation>
<xsd:documentation>
处理程序描述。
属性:
"className"
—— 处理程序类的名称;
"headers"
—— 由处理程序使用的头部的名称。
元素:
"property"*
—— 该处理程序的初始化特性。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element
name=3D"property" type=3D"tns:propertyType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
<xsd:attribute
name=3D"className" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"headers" type=3D"tns:headerListType"/>
</xsd:complexType>
<xsd:simpleType
name=3D"headerListType">
<xsd:annotation>
<xsd:documentation>
头部名称的列表,即QNames。
</xsd:documentation>
</xsd:annotation>
<xsd:list
itemType=3D"xsd:QName"/>
</xsd:simpleType>
<xsd:complexType
name=3D"propertyType">
<xsd:annotation>
<xsd:documentation>
处理程序的初始化特性。
属性:
"name"
—— 特性的名称;
"value"
—— 特性的值。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"name" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"value" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:simpleType
name =3D"runAtType">
<xsd:annotation>
<xsd:documentation>
处理程序链可以运行的地方,客户端或者服务器端。
</xsd:documentation>
</xsd:annotation>
<xsd:restriction
base=3D"xsd:string">
<xsd:enumeration
value=3D"client"/>
<xsd:enumeration
value=3D"server"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:schema>
XML Schema用于已导出的的wscompile模型文件
下面代码是已导出的的wscompile模型文件的XML模式:
<?xml
version=3D"1.0" encoding=3D"UTF-8"?>
<xsd:schema
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"
xmlns:tns=3D"http://java.sun.com/xml/ns/jax-rpc/ri/model=
"
targetNamespace=3D"http://java.sun.com/xml/ns/jax-rpc/ri=
/model"
elementFormDefault=3D"unqualified"
attributeFormDefault=3D"unqualified"
version=3D"1.0">
<xsd:annotation>
<xsd:documentation>
这是已导出的的wscompile模型文件的XML模式。已导出的模型是对象的图表表示,其中有些是“直接的(immediate)”(比如整型、字符串型),“直接的”对象有一个实际的值。
非直接的对象有一组对象-赋值(object-valued)特性。
</xsd:documentation>
</xsd:annotation>
<xsd:element
name=3D"model" form=3D"qualified">
<xsd:annotation>
<xsd:documentation>
模型是一个定义序列,它可以分为3类:
"object"
—— 对象定义;
"iobject"
—— 直接的对象定义;
"property"
—— 特性定义。
另外,模型需要一个版本号
(("version"属性).
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence
minOccurs=3D"0" maxOccurs=3D"unbounded">
<xsd:choice>
<xsd:element
name=3D"object" type=3D"tns:objectType"/>
<xsd:element
name=3D"iobject" type=3D"tns:iobjectType"/>
<xsd:element
name=3D"property" type=3D"tns:propertyType"/>
</xsd:choice>
</xsd:sequence>
<xsd:attribute
name=3D"version" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType
name=3D"objectType">
<xsd:annotation>
<xsd:documentation>
对象定义,包括一个唯一的ID和对象的类型名称。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence/>
<xsd:attribute
name=3D"id" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"type" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType
name=3D"iobjectType">
<xsd:annotation>
<xsd:documentation>
直接的对象定义。除了ID和类型外,还要包含一个值。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence/>
<xsd:attribute
name=3D"id" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"type" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"value" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
<xsd:complexType
name=3D"propertyType">
<xsd:annotation>
<xsd:documentation>
特性定义。也就是说“主题”(由id来识别)有一个称为“name”的特性,将id为“value”的对象作为它的值。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence/>
<xsd:attribute
name=3D"name" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"subject" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"value" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
</xsd:schema>
XML Schema 用于运行时描述文件
下面的代码是用于运行时描述文件的XML模式:
<?xml
version=3D"1.0" encoding=3D"UTF-8"?>
<xsd:schema
xmlns:xsd=3D"http://www.w3.org/2001/XMLSchema"
xmlns:tns=3D"http://java.sun.com/xml/ns/jax-rpc/ri/runti=
me"
targetNamespace=3D"http://java.sun.com/xml/ns/jax-rpc/ri=
/runtime"
elementFormDefault=3D"qualified"
attributeFormDefault=3D"unqualified"
version=3D"1.0">
<xsd:annotation>
<xsd:documentation>
这是运行时描述文件
(jaxrpc-ri-runtime.xml)的模式。
顶层元素必须是“ecdcoding”
</xsd:documentation>
</xsd:annotation>
<xsd:element
name=3D"endpoints">
<xsd:annotation>
<xsd:documentation>
顶层的元素。它包含“version”属性和端点定义序列。
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element
name=3D"endpoint" type=3D"tns:endpointType"
minOccurs=3D"0" maxOccurs=3D"unbounded"/>
</xsd:sequence>
<xsd:attribute
name=3D"version" type=3D"xsd:string"
use=3D"required"/>
</xsd:complexType>
</xsd:element>
<xsd:complexType
name=3D"endpointType">
<xsd:annotation>
<xsd:documentation>
端点定义以下有几个属性:
"name"
—— 端点名称;
"interface"
——端点的Java接口名称 (专业上称为“服务端点接口”);
"implementation"
—— 端点实现类的名称;
"tie"
—— 用于端点的tie类的名称;
"model"?
—— 资源的名称,对应于端点的模型文件;
"wsdl"?
——资源的名称,对应于端点的WSDL文档;
"service"?
—— 属于端点的WSDL服务的QName ;
"port"?
—— 用于该端点的WSDL端口的QName;
"urlpattern"
—— 该端点映射到的URL式样;
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
</xsd:sequence>
<xsd:attribute
name=3D"name" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"interface" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"implementation" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"tie" type=3D"xsd:string"
use=3D"required"/>
<xsd:attribute
name=3D"model" type=3D"xsd:string"/>
<xsd:attribute
name=3D"wsdl" type=3D"xsd:anyURI"/>
<xsd:attribute
name=3D"service" type=3D"xsd:anyURI"/>
<xsd:attribute
name=3D"port" type=3D"xsd:anyURI"/>
<xsd:attribute
name=3D"urlpattern" type=3D"xsd:anyURI"
use=3D"required"/>
</xsd:complexType>
</xsd:schema>
|