Ultimele tutoriale de dezvoltare web
 

XML WSDL


  • 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" .