- WSDL oznacza Web Services Description Language
- WSDL jest używany do określenia usług internetowych
- WSDL jest napisane w XML
- WSDL jest W3C zalecenie 26. czerwca 2007
Dokumenty WSDL
Dokument WSDL opisuje usługę internetową. Określa lokalizację usługi i metody usługi, wykorzystując te główne elementy:
Element | Opis |
---|---|
<types> | Definiuje (XML Schema) typy danych używanych przez usługę internetową |
<message> | Definiuje elementy danych dla każdej operacji |
<portType> | Opisuje operacje, które można wykonać, a komunikaty związane. |
<binding> | Definiuje protokół i danych formatu dla każdego typu portu |
Podstawowa struktura dokumentu WSDL wygląda następująco:
<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>
Przykład WSDL
To jest uproszczony ułamek dokumencie 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>
W tym przykładzie <portType> element definiuje "glossaryTerms" jako nazwa port i "getTerm" jako imię w operation .
"getTerm" Operacja ma input message o nazwie "getTermRequest" oraz output message o nazwie "getTermResponse" .
<message> Elementy określenie parts każdego komunikatu i związanych z nimi typów danych.
<portType> Element
<portType> element definiuje a web service , na operations , które można wykonać, a messages , które są z tym związane.
Rodzaj żądanie-odpowiedź jest najczęstszym typem operacji, ale WSDL definiuje cztery rodzaje:
Rodzaj | Definicja |
---|---|
One-way | Operacja może otrzymać wiadomość, ale nie zwróci odpowiedź |
Request-response | Operacja może otrzymać prośbę i zwróci odpowiedź |
Solicit-response | Operacja może wysłać wniosek i będzie czekać na odpowiedź |
Notification | Operacja może wysłać wiadomość, ale nie będzie czekać na odpowiedź |
WSDL One-Way Operacja
Jednokierunkowe przykład praca:
<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 >
W powyższym przykładzie portType "glossaryTerms" definiuje działanie jednokierunkowe o nazwie "setTerm" .
"setTerm" Operacja umożliwia wprowadzanie nowych pojęć Słowniczek wiadomości za pomocą "newTermValues" wiadomość z parametrów wejściowych "term" i "value" . Jednakże, nie jest określona wyjściowa dla danej operacji.
WSDL Request-Response Operacja
Przykład z operacji żądanie-odpowiedź:
<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>
W powyższym przykładzie portType "glossaryTerms" definiuje operację żądanie-odpowiedź o nazwie "getTerm" .
"getTerm" Operacja wymaga komunikat wejściowy o nazwie "getTermRequest" z parametrem zwanym "term" , a zwróci komunikat wyjściowy o nazwie "getTermResponse" z parametrem zwanym "value" .
Wiązanie SOAP WSDL
Wiązania WSDL definiuje wiadomość formatu i protokołu dane dla usługi internetowej.
Przykład z operacji żądanie-odpowiedź:
<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>
binding element ma dwa atrybuty - nazwę i typ.
name atrybutu (you can use any name you want) określa nazwę wiązania, a type punktów atrybut do portu do wiązania, w tym przypadku "glossaryTerms" portu.
soap:binding element ma dwa atrybuty - styl i transport.
style atrybut może być "rpc" lub "document" . W tym przypadku używamy dokument. transport atrybut definiuje protokół SOAP do użycia. W tym przypadku używamy HTTP.
operation element definiuje każdą operację że portType naraża.
Dla każdej operacji odpowiednia akcja SOAP musi być zdefiniowana. Należy także określić, w jaki sposób wejścia i wyjścia są kodowane. W tym przypadku używamy "literal" .