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模型文件。
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>