XML WSDL
- WSDL staan vir Web Services Description Language
- WSDL word gebruik om webdienste te beskryf
- WSDL is in XML geskryf
- WSDL is 'n W3C-aanbeveling vanaf 26 Junie 2007
WSDL-dokumente
'n WSDL-dokument beskryf 'n webdiens. Dit spesifiseer die ligging van die diens, en die metodes van die diens, met behulp van hierdie hoofelemente:
Element | Description |
---|---|
<types> | Defines the (XML Schema) data types used by the web service |
<message> | Defines the data elements for each operation |
<portType> | Describes the operations that can be performed and the messages involved. |
<binding> | Defines the protocol and data format for each port type |
Die hoofstruktuur van 'n WSDL-dokument lyk soos volg:
<definitions>
<types>
data type definitions........
</types>
<message>
definition of the data being communicated....
</message>
<portType>
set of operations......
</portType>
<binding>
protocol and data format specification....
</binding>
</definitions>
WSDL voorbeeld
Dit is 'n vereenvoudigde deel van 'n WSDL-dokument:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
In hierdie voorbeeld definieer die <portType> element "glossaryTerms" as die naam van 'n poort , en "getTerm" as die naam van 'n bewerking .
Die "getTerm"-bewerking het 'n invoerboodskap genaamd "getTermRequest" en 'n uitsetboodskap genaamd "getTermResponse".
Die <boodskap> -elemente definieer die dele van elke boodskap en die geassosieerde datatipes.
Die <portType> Element
Die <portType>-element definieer 'n webdiens , die bewerkings wat uitgevoer kan word en die boodskappe wat betrokke is.
Die versoek-antwoord tipe is die mees algemene tipe operasie, maar WSDL definieer vier tipes:
Type | Definition |
---|---|
One-way | The operation can receive a message but will not return a response |
Request-response | The operation can receive a request and will return a response |
Solicit-response | The operation can send a request and will wait for a response |
Notification | The operation can send a message but will not wait for a response |
WSDL Eenrigting-operasie
'n Eenrigting-operasie voorbeeld:
<message name="newTermValues">
<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="setTerm">
<input name="newTerm" message="newTermValues"/>
</operation>
</portType >
In die voorbeeld hierbo definieer die portType "glossaryTerms" 'n eenrigtingbewerking genaamd "setTerm".
Die "setTerm"-bewerking laat invoer toe van nuwe woordelystermeboodskappe deur 'n "newTermValues"-boodskap met die invoerparameters "term" en "value" te gebruik. Geen uitset word egter vir die operasie gedefinieer nie.
WSDL Request-Response Operasie
'n Versoek-reaksie bewerking voorbeeld:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
In die voorbeeld hierbo definieer die portType "glossaryTerms" 'n versoek-antwoord-bewerking genaamd "getTerm".
Die "getTerm"-bewerking vereis 'n invoerboodskap genaamd "getTermRequest" met 'n parameter genaamd "term", en sal 'n uitsetboodskap genaamd "getTermResponse" met 'n parameter genaamd "waarde" terugstuur.
WSDL Binding aan SOAP
WSDL-bindings definieer die boodskapformaat en protokolbesonderhede vir 'n webdiens.
'n Versoek-reaksie bewerking voorbeeld:
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
<binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation
soapAction="http://example.com/getTerm"/>
<input><soap:body use="literal"/></input>
<output><soap:body use="literal"/></output>
</operation>
</binding>
Die bindelement het twee eienskappe - naam en tipe.
Die naam-kenmerk (jy kan enige naam gebruik wat jy wil) definieer die naam van die binding, en die tipe-kenmerk wys na die poort vir die binding, in hierdie geval die "glossaryTerms"-poort.
Die seep:binding- element het twee eienskappe - styl en vervoer.
Die stylkenmerk kan "rpc" of "dokument" wees. In hierdie geval gebruik ons dokument. Die vervoerkenmerk definieer die SOAP-protokol om te gebruik. In hierdie geval gebruik ons HTTP.
Die operasie -element definieer elke operasie wat die portType blootstel.
Vir elke operasie moet die ooreenstemmende SOAP-aksie gedefinieer word. Jy moet ook spesifiseer hoe die invoer en afvoer geënkodeer word. In hierdie geval gebruik ons "letterlik".