XML Schema定義

小師兄.發表於2019-01-30

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>

相關文章