WikiDer > Sprache der Webdienste-Beschreibung

Web Services Description Language

Sprache der Webservice-Beschreibung, oder einfach WSDL ist ein XML-Sprache mit denen die Schnittstellen von Internetdienste kann beschrieben werden. Im Allgemeinen werden diese WSDL-Dokumente hauptsächlich Anwendungen gelesen werden und für aufrufende Anwendungen zur Verfügung stehen.

Der Bindungsstil und die Verwendung der WSDL

Die WSDL-Bindung beschreibt, wie der Dienst das Messaging-Protokoll verwendet, insbesondere SEIFE. Eine WSDL-SEIFE Bindung hat 2 Stiltypen: RPC (Remote-Prozeduraufruf) oder Dokument. Die Verwendung einer SOAP-Bindung erfolgt entweder 'kodiert' oder 'literal', was sich in der Struktur der zu versendenden SOAP-Nachricht widerspiegelt. Es ist wichtig zu wissen, mit welcher Art von WSDL-Datei Sie arbeiten. Einige Techniken, wie z JAX-WS unterstützt nur document/literal und nicht rpc/encoded. Und andere Techniken umgekehrt WS-I (Web Services Interoperability) Basic Profile schreibt die Verwendung von document/literal.rpc/encoded vor, gilt als veraltet und sollte nicht mehr verwendet werden.

Ein WSDL-Dokument muss nicht manuell erstellt werden. Es gibt für fast jeden Programmiersprache Es stehen Werkzeuge zur Verfügung, mit denen sich WSDL-Dokumente einfach generieren lassen, um sie über SOAP aufrufbar zu machen.

Beispiel für eine WSDL-Datei

Hier ist ein Beispiel für ein strukturiertes WSDL 2.0-Dokument:

<?xml version="1.0" encoding="UTF-8"?>xmlns="http://www.w3.org/ns/wsdl"xmlns:tns="http://www.example.com/wsdl20sample"xmlns:whttp="http://www.w3.org/ns/wsdl/http"xmlns:wsoap="http://www.w3.org/ns/wsdl/soap"targetNamespace="http://www.example.com/wsdl20sample"><!-- Abstract types --><types>xmlns="http://www.example.com/wsdl20sample"xmlns:xs="http://www.w3.org/2001/XMLSchema"targetNamespace="http://www.example.com/wsdl20sample">name="Anfrage"><xs:complexType><xs:sequence>name="Header"maxOccurs="ungebunden"><xs:complexType><xs:simpleContent>basis="xs:string">name="Name"Typ="xs:string"verwenden="erforderlich"/></xs:extension></xs:simpleContent></xs:complexType></xs:element>name="Körper"Typ="xs:anyType"minOccurs="0"/></xs:sequence>name="Methode"Typ="xs:string"verwenden="erforderlich"/>name="uri"Typ="xs:anyURI"verwenden="erforderlich"/></xs:complexType></xs:element>name="Antwort"><xs:complexType><xs:sequence>name="Header"maxOccurs="ungebunden"><xs:complexType><xs:simpleContent>basis="xs:string">name="Name"Typ="xs:string"verwenden="erforderlich"/></xs:extension></xs:simpleContent></xs:complexType></xs:element>name="Körper"Typ="xs:anyType"minOccurs="0"/></xs:sequence>name="Statuscode"Typ="xs:anySimpleType"verwenden="erforderlich"/>name="Antwortsatz"verwenden="erforderlich"/></xs:complexType></xs:element></xs:schema></types><!-- Abstract interfaces -->name="RESTful-Schnittstelle">name="ClientFehler"Element="tns:antwort"/>name="Serverfehler"Element="tns:antwort"/>name="Umleitung"Element="tns:antwort"/>name="erhalten"Muster="http://www.w3.org/ns/wsdl/in-out">messageLabel="GetMsg"Element="tns:anfrage"/>messageLabel="Erfolgreiche Nachricht"Element="tns:antwort"/></operation>name="Post"Muster="http://www.w3.org/ns/wsdl/in-out">messageLabel="PostMsg"Element="tns:anfrage"/>messageLabel="Erfolgreiche Nachricht"Element="tns:antwort"/></operation>name="Grube"Muster="http://www.w3.org/ns/wsdl/in-out">messageLabel="PutMsg"Element="tns:anfrage"/>messageLabel="Erfolgreiche Nachricht"Element="tns:antwort"/></operation>name="Löschen"Muster="http://www.w3.org/ns/wsdl/in-out">messageLabel="Nachricht löschen"Element="tns:anfrage"/>messageLabel="Erfolgreiche Nachricht"Element="tns:antwort"/></operation></interface><!-- Concrete Binding Over HTTP -->name="RESTfulInterfaceHttpBinding"Schnittstelle="tns:RESTfulInterface"Typ="http://www.w3.org/ns/wsdl/http">ref="tns:Hol"whttp:Methode="ERHALTEN"/>ref="tns:Beitrag"whttp:Methode="POST"whttp:inputSerialization="application/x-www-form-urlencoded"/>ref="tns:Put"whttp:Methode="STELLEN"whttp:inputSerialization="application/x-www-form-urlencoded"/>ref="tns:Löschen"whttp:Methode="LÖSCHEN"/></binding><!-- Concrete Binding with SOAP-->name="RESTfulInterfaceSoapBinding"Schnittstelle="tns:RESTfulInterface"Typ="http://www.w3.org/ns/wsdl/soap"wsoap:Protokoll="http://www.w3.org/2003/05/soap/bindings/HTTP/"wsoap:mepDefault="http://www.w3.org/2003/05/soap/mep/request-response">ref="tns: Holen"/>ref="tns:Beitrag"/>ref="tns:Put"/>ref="tns:Löschen"/></binding><!-- Web Service offering endpoints for both the bindings-->name="ERHOLTER Service"Schnittstelle="tns:RESTfulInterface">name="RESTfulServiceRestEndpoint"Bindung="tns:RESTfulInterfaceHttpBinding"Adresse="http://www.example.com/rest/"/>name="RESTfulServiceSoapEndpoint"Bindung="tns:RESTfulInterfaceSoapBinding"Adresse="http://www.example.com/soap/"/></service></description>

Externe Links