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>


 

常见问答

下载中心

产品简介

 

 

Solaris论坛