- WSDL înseamnă Web Services Description Language
- WSDL este folosit pentru a descrie servicii web
- WSDL este scris în XML
- WSDL este o recomandare W3C din 26 iunie 2007
WSDL Documente
Un document WSDL descrie un serviciu web. Se specifică locația serviciului, precum și metodele serviciului, folosind aceste elemente majore:
Element | Descriere |
---|---|
<types> | Definește (XML Schema) Tipurile de date utilizate de către serviciul web |
<message> | Definește elementele de date pentru fiecare operațiune |
<portType> | Descrie operațiile care pot fi efectuate și mesajele implicate. |
<binding> | Definește formatul de protocol și de date pentru fiecare tip de port |
Structura principală a unui document WSDL arată astfel:
<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 Exemplu
Aceasta este o fracție simplificată a unui document WSDL:
<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>
În acest exemplu <portType> elementul definește "glossaryTerms" ca numele unui port de și "getTerm" ca numele unei operation .
"getTerm" operațiune are un input message de "getTermRequest" output message "getTermResponse" input message numit "getTermRequest" și un output message de output message numit "getTermResponse" .
<message> elemente definesc parts fiecărui mesaj și tipurile de date asociate.
<portType> Element
<portType> Elementul definește a web service , a operations care pot fi efectuate, iar messages care sunt implicate.
Tipul de cerere-răspuns este cel mai frecvent tip de funcționare, dar WSDL definește patru tipuri:
Tip | Definiție |
---|---|
One-way | Operația poate primi un mesaj, dar nu va returna un răspuns |
Request-response | Operația poate primi o cerere și va returna un răspuns |
Solicit-response | Operația poate trimite o cerere și va aștepta un răspuns |
Notification | Operația poate trimite un mesaj, dar nu va aștepta un răspuns |
WSDL One-Way Funcționare
O operațiune de exemplu un singur sens:
<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 exemplul de mai sus, portType "glossaryTerms" definește o operație într -o direcție numită "setTerm" .
"setTerm" operarea permite introducerea unor noi mesaje Glosar de termeni folosind un "newTermValues" mesaj cu parametrii de intrare "term" și "value" . Cu toate acestea, nici o ieșire este definit pentru operația.
WSDL cerere-răspuns Funcționare
Un exemplu de operare cerere-răspuns:
<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 exemplul de mai sus, portType "glossaryTerms" definește o operație de cerere-răspuns denumit "getTerm" .
"getTerm" operațiune necesită un mesaj de intrare numit "getTermRequest" cu un parametru numit "term" , și va returna un mesaj de ieșire numit "getTermResponse" cu un parametru numit "value" .
WSDL Legarea la SOAP
legăturile WSDL definește formatul și protocol detalii mesaj pentru un serviciu web.
Un exemplu de operare cerere-răspuns:
<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>
De binding Elementul are două atribute - numele și tipul.
name atributului (you can use any name you want) definește numele de legare și de type punctelor de atribut la portul pentru legarea, în acest caz "glossaryTerms" port.
soap:binding elementul are două atribute - stil și de transport.
style atribut poate fi "rpc" sau "document" . În acest caz, vom folosi documentul. De transport atribut defineste protocolul SOAP de utilizat. În acest caz, vom folosi HTTP.
operation elementul definește fiecare operațiune care portType expune.
Pentru fiecare operațiune acțiunea SOAP corespunzătoare trebuie să fie definit. De asemenea, trebuie să specificați modul de intrare și de ieșire sunt codificate. În acest caz , vom folosi "literal" .