- WSDL steht für Web Services Description Language
- WSDL wird verwendet Web Services zu beschreiben
- WSDL ist in XML geschrieben
- WSDL ist eine W3C-Empfehlung vom 26. Juni 2007
WSDL-Dokumente
Ein WSDL-Dokument beschreibt einen Web-Service. Es gibt den Ort der Dienstleistung, und die Methoden des Dienstes, diese wichtigen Elemente unter Verwendung von:
Element | Beschreibung |
---|---|
<types> | Definiert die (XML Schema) Datentypen , die von den Web - Service verwendet |
<message> | Definiert die Datenelemente für jeden Betrieb |
<portType> | Beschreibt die Operationen, die ausgeführt werden können, und die Nachrichten beteiligt. |
<binding> | Legt das Protokoll und Datenformat für jeden Port-Typ |
Die Hauptstruktur eines WSDL-Dokuments sieht wie folgt aus:
<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-Beispiel
Dies ist eine vereinfachte Bruchteil eines 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 diesem Beispiel ist das <portType> definiert Element "glossaryTerms" als Name eines port und "getTerm" als Name einer operation .
Die "getTerm" Operation hat eine input message genannt "getTermRequest" und eine output message genannt "getTermResponse" .
Die <message> Elemente definieren die parts jeder Nachricht und die zugehörigen Datentypen.
Das <portType> Element
Das <portType> Element definiert a web service - operations messages a web service , die operations , die ausgeführt werden können, und die messages , die beteiligt sind.
Die Anfrage-Antwort-Typ ist die häufigste Operationstyp, aber WSDL definiert vier Arten:
Art | Definition |
---|---|
One-way | Die Operation kann eine Meldung erhalten, wird aber nicht eine Antwort zurückgeben |
Request-response | Die Operation kann eine Anfrage erhalten und wird eine Antwort zurück |
Solicit-response | Die Operation kann eine Anfrage senden und auf eine Antwort warten |
Notification | Die Operation kann eine Nachricht senden, aber nicht auf eine Antwort warten |
WSDL One-Way Betrieb
Ein Einweg-Betrieb Beispiel:
<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 dem obigen Beispiel, die porttype "glossaryTerms" definiert einen One-Way - Operation namens "setTerm" .
Die "setTerm" Betrieb ermöglicht die Eingabe neuer Glossarbegriffe Nachrichten , die eine Verwendung von "newTermValues" Nachricht mit dem Eingangsparameter "term" und "value" . Jedoch ist keine Ausgabe für den Betrieb definiert.
WSDL-Request-Response-Betrieb
Eine Anfrage-Antwort-Betrieb Beispiel:
<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 dem obigen Beispiel werden die porttype "glossaryTerms" definiert eine Anforderungs-Antwort - Operation genannt "getTerm" .
Die "getTerm" Operation erfordert eine Eingabemeldung namens "getTermRequest" mit einem Parameter namens "term" , und wird eine Ausgabenachricht genannt zurückgeben "getTermResponse" mit einem Parameter namens "value" .
WSDL-Bindung an SOAP
WSDL-Bindungen definiert die Nachrichtenformat und Protokolldetails für einen Web-Service.
Eine Anfrage-Antwort-Betrieb Beispiel:
<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>
Das binding hat zwei Attribute - Name und Typ.
Der name Attribut (you can use any name you want) einen type "glossaryTerms" (you can use any name you want) , die (you can use any name you want) definiert den Namen der Bindung, und die type - Attribut auf den Port für die Bindung, in diesem Fall die "glossaryTerms" Port.
Das soap:binding - Element hat zwei Attribute - Stil und Transport.
Der style - Attribut kann sein "rpc" oder "document" . In diesem Fall verwenden wir Dokument. Das transport Attribut definiert das SOAP - Protokoll zu verwenden. In diesem Fall sind wir HTTP verwenden.
Der operation Element definiert jede Operation, die der porttype aussetzt.
Für jede Operation hat die entsprechende SOAP Aktion definiert werden. Sie müssen auch angeben, wie die Eingabe und Ausgabe codiert werden. In diesem Fall verwenden wir "literal" .