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>