小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

如何看懂一個(gè)WSDL文檔

 chanvy 2008-11-13
如何看懂一個(gè)WSDL文檔
 

WSDL 指網(wǎng)絡(luò)服務(wù)描述語言 (Web Services Description Language)。一個(gè)WSDL文檔是一個(gè)服務(wù)的描述,它描述了:服務(wù)名,服務(wù)地址,服務(wù)能用什么協(xié)議訪問,服務(wù)有哪些方法,每個(gè)方法有幾部分參數(shù),每個(gè)參數(shù)的類型。

在一個(gè)WSDL文檔中,你最經(jīng)常看到的元素前綴會(huì)有wsdl、soapxsd。當(dāng)然這些前綴是與命名空間URI對應(yīng)的,前綴是可以自己定義的,或許與此不同,但大都這么定義。

WSDL在設(shè)計(jì)時(shí),充分考慮了,各個(gè)元素模塊的重用(好像一個(gè)類中定義了一些方法,可被不同方法共同調(diào)用)如:wsdl:binding、wsdl:portType、wsdl:message,你定義的這個(gè)元素可能被幾個(gè)地方引用到。所以WSDL設(shè)計(jì)者把它設(shè)計(jì)的夠精簡、靈活。

下面我基于WSDL 1.2 語法分別對三個(gè)命名空間的經(jīng)常用到的元素解釋一下:最好從下往上看

//文檔的根元素,表示這是一個(gè)服務(wù)的定義,在此定義中默認(rèn)的名字空間URIhttp://mple”.
<wsdl:definitions xmlns:axis2="http://mple" xmlns:mime="http://schemas./wsdl/mime/" xmlns:ns0="http://mple/xsd" xmlns:soap12="http://schemas./wsdl/soap12/" xmlns:http="http://schemas./wsdl/http/" xmlns:ns1="http://org.apache.axis2/xsd" xmlns:xs="http://www./2001/XMLSchema" xmlns:soap="http://schemas./wsdl/soap/" xmlns:wsdl="http://schemas./wsdl/" targetNamespace="http://mple">
<wsdl:documentation>
        This service is to get the running Axis version
    </wsdl:documentation>

//為它表示所有消息中能使用的基本元素類型,如一個(gè)方法三個(gè)參數(shù)的其中一個(gè)參數(shù)的類型。
<wsdl:types>
   <xs:schema xmlns:ns="http://mple/xsd" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://mple/xsd">

//為了最大程度的平臺(tái)中立性,WSDL 使用 XML Schema 語法來定義數(shù)據(jù)類型

    <xs:element name="ExceptionFault">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="Exception" nillable="true" type="xs:anyType"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
    <xs:element name="getVersionResponse">
     <xs:complexType>
      <xs:sequence>
       <xs:element name="return" nillable="true" type="xs:string"/>
      </xs:sequence>
     </xs:complexType>
    </xs:element>
   </xs:schema>
</wsdl:types>

//這是定義一個(gè)消息,是一次服務(wù)調(diào)用的一個(gè)消息。也就是下面的方法可以用到(指定)的方法參數(shù)。

<wsdl:message name="getVersionMessage"/>
<wsdl:message name="getVersionResponse">
   <wsdl:part name="part1" element="ns0:getVersionResponse"/>//
這是這個(gè)消息的第一人部分,同方法的第一個(gè)參數(shù)
</wsdl:message>
<wsdl:message name="getVersionFault">
   <wsdl:part name="part1" element="ns0:ExceptionFault"/>
</wsdl:message>

*//端口類型,它表示被某種端口類型(訪問協(xié)議)指定的一組可被這個(gè)端口執(zhí)行的操作,以及相關(guān)消息,你可以它理解為可被調(diào)用的一個(gè)函數(shù)庫。  
<wsdl:portType name="VersionPortType">

//操作,它表示其中一個(gè)操作
   <wsdl:operation name="getVersion">

//輸入,用它指定一個(gè)輸入消息
    <wsdl:input xmlns:wsaw="http://www./2006/05/addressing/wsdl" message="axis2:getVersionMessage" wsaw:Action="urn:getVersion"/>

//輸出,用它指定一個(gè)返回消息
    <wsdl:output message="axis2:getVersionResponse"/>

//錯(cuò)誤,用它指明發(fā)生錯(cuò)誤時(shí),返回的消息
    <wsdl:fault message="axis2:getVersionFault" name="getVersionFault"/>
   </wsdl:operation>
</wsdl:portType>

//綁定,此元素詳細(xì)描述了某個(gè)端口,的消息傳輸協(xié)議和消息包裝格式。(用于服務(wù)器端收到消息中的解析)
<wsdl:binding name="VersionSOAP11Binding" type="axis2:VersionPortType">
   <soap:binding transport="http://schemas./soap/http" style="document"/>

//此處用于表示,當(dāng)收到一個(gè)消息請求方法為“urn:getVersion”時(shí),用此元素包含的描述定義來解析此消息。并確定消息所請求的方法所對應(yīng)的服務(wù)的方法“wsdl:operation name="getVersion”。   <wsdl:operation name="getVersion">
    <soap:operation soapAction="urn:getVersion" style="document"/>
    <wsdl:input>
     <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
     <soap:body use="literal"/>
    </wsdl:output>
    <wsdl:fault name="getVersionFault">
     <soap12:fault use="literal" name="getVersionFault"/>
    </wsdl:fault>
   </wsdl:operation>
</wsdl:binding>

//SOAP:binding是采用SOAP1.1版本。soap12:binding是采用SOAP1.2版本, 并且是采用SOAP規(guī)范來形成HTTPRequest
<wsdl:binding name="VersionSOAP12Binding" type="axis2:VersionPortType">
   <soap12:binding transport="http://schemas./soap/http" style="document"/>
   <wsdl:operation name="getVersion">
    <soap12:operation soapAction="urn:getVersion" style="document"/>
    <wsdl:input>
     <soap12:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
     <soap12:body use="literal"/>
    </wsdl:output>
    <wsdl:fault name="getVersionFault">
     <soap12:fault use="literal" name="getVersionFault"/>
    </wsdl:fault>
   </wsdl:operation>
</wsdl:binding>

//此binding 是采用HTTP規(guī)范來填寫消息內(nèi)容
<wsdl:binding name="VersionHttpBinding" type="axis2:VersionPortType">
   <http:binding verb="POST"/>
   <wsdl:operation name="getVersion">
    <http:operation location="getVersion"/>
    <wsdl:input>
     <mime:content type="text/xml"/>
    </wsdl:input>
    <wsdl:output>
     <mime:content type="text/xml"/>
    </wsdl:output>
   </wsdl:operation>
</wsdl:binding>

//此元素用于描述一個(gè)服務(wù)定義中其中的一個(gè)服務(wù)(可定義多個(gè)服務(wù))。和此服務(wù)所有可訪問的端口和訪問地址
<wsdl:service name="Version">
   <wsdl:port name="VersionSOAP11port_http" binding="axis2:VersionSOAP11Binding">
    <soap:address location="http://192.9.107.58:8080/axis2/services/Version"/>
   </wsdl:port>
   <wsdl:port name="VersionSOAP12port_http" binding="axis2:VersionSOAP12Binding">
    <soap12:address location="http://192.9.107.58:8080/axis2/services/Version"/>
   </wsdl:port>

   <wsdl:port name="VersionHttpport" binding="axis2:VersionHttpBinding">
    <http:address location="http://192.9.107.58:8080/axis2/services/Version"/>
   </wsdl:port>
</wsdl:service>
</wsdl:definitions>

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多