XML -Tutorial

XML-HOME XML-Einführung XML-Wie zu verwenden XML-Baum XML-Syntax XML-Elemente XML-Attribute XML-Namespaces XML-Anzeige XML-HttpRequest XML-Parser XML-DOM XML-XPath XML-XSLT XML-XQuery XML-XLink XML-Validierer XML-DTD XML-Schema XML-Server XML-Beispiele XML-Quiz XML-Zertifikat

XML-AJAX

AJAX-Einführung AJAX-XMLHttp AJAX-Anfrage AJAX-Antwort AJAX-XML-Datei AJAX-PHP AJAX ASP AJAX-Datenbank AJAX-Anwendungen AJAX-Beispiele

XML-DOM

DOM-Einführung DOM-Knoten DOM-Zugriff DOM-Knoten-Info DOM-Knotenliste DOM-Traversierung DOM-Navigation DOM Get-Werte DOM-Änderungsknoten DOM-Knoten entfernen DOM-Ersetzungsknoten DOM-Knoten erstellen DOM-Knoten hinzufügen DOM-Klonknoten DOM-Beispiele

XPath -Tutorial

XPath-Einführung XPath-Knoten XPath-Syntax XPath-Achsen XPath-Operatoren XPath-Beispiele

XSLT -Tutorial

XSLT-Einführung XSL-Sprachen XSLT-Transformation XSLT <Vorlage> XSLT <Wert von> XSLT <für-jeden> XSLT <sortieren> XSLT <wenn> XSLT <auswählen> XSLT anwenden XSLT auf dem Client XSLT auf dem Server XSLT XML bearbeiten XSLT-Beispiele

XQuery- Tutorial

XQuery-Einführung XQuery-Beispiel XQuery FLWOR XQuery-HTML XQuery-Bedingungen XQuery-Syntax XQuery hinzufügen XQuery-Auswahl XQuery-Funktionen

XML -DTD

DTD-Einführung DTD-Bausteine DTD-Elemente DTD-Attribute DTD-Elemente vs. Attr DTD-Entitäten DTD-Beispiele

XSD- Schema

XSD-Einführung XSD-Anleitung XSD <Schema> XSD-Elemente XSD-Attribute XSD-Einschränkungen

XSD- Komplex

XSD-Elemente XSD leer Nur XSD-Elemente Nur XSD-Text XSD gemischt XSD-Indikatoren XSD <beliebig> XSD <beliebiges Attribut> XSD-Ersetzung XSD-Beispiel

XSD -Daten

XSD-String XSD-Datum XSD Numerisch XSD Sonstiges XSD-Referenz

Webdienste _

XML-Dienste XML-WSDL XML-SOAP XML-RDF XML-RSS

Verweise

DOM-Knotentypen DOM-Knoten DOM-Knotenliste DOM NamedNodeMap DOM-Dokument DOM-Element DOM-Attribut DOM-Text DOM-CDATA DOM-Kommentar DOM-XMLHttpRequest DOM-Parser XSLT-Elemente XSLT/XPath-Funktionen

XML -WSDL


  • WSDL steht für Web Services Description Language
  • WSDL wird verwendet, um Webdienste zu beschreiben
  • WSDL ist in XML geschrieben
  • WSDL ist eine W3C-Empfehlung vom 26. Juni 2007

WSDL-Dokumente

Ein WSDL-Dokument beschreibt einen Webservice. Es gibt den Standort des Dienstes und die Methoden des Dienstes an, indem es diese Hauptelemente verwendet:

Element Description
<types> Defines the (XML Schema) data types used by the web service
<message> Defines the data elements for each operation
<portType> Describes the operations that can be performed and the messages involved.
<binding> Defines the protocol and data format for each port type

Die Hauptstruktur eines WSDL-Dokuments sieht folgendermaßen 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 ein vereinfachter Bruchteil eines WSDL-Dokuments:

<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 definiert das <portType> -Element „glossaryTerms“ als den Namen eines Ports und „getTerm“ als den Namen einer Operation .

Die "getTerm"-Operation hat eine Eingangsnachricht namens "getTermRequest" und eine Ausgangsnachricht namens "getTermResponse".

Die <message> -Elemente definieren die Teile jeder Nachricht und die zugehörigen Datentypen.


Das <portType>-Element

Das <portType>-Element definiert einen Webdienst , die Operationen , die ausgeführt werden können, und die beteiligten Nachrichten .

Der Request-Response-Typ ist der häufigste Operationstyp, aber WSDL definiert vier Typen:

Type Definition
One-way The operation can receive a message but will not return a response
Request-response The operation can receive a request and will return a response
Solicit-response The operation can send a request and will wait for a response
Notification The operation can send a message but will not wait for a response

WSDL-Einwegbetrieb

Ein Beispiel für einen Einwegbetrieb:

<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 >

Im obigen Beispiel definiert der portType „glossaryTerms“ eine unidirektionale Operation namens „setTerm“.

Die „setTerm“-Operation ermöglicht die Eingabe von Nachrichten zu neuen Glossarbegriffen unter Verwendung einer „newTermValues“-Nachricht mit den Eingabeparametern „term“ und „value“. Für die Operation ist jedoch keine Ausgabe definiert.


WSDL-Request-Response-Vorgang

Ein Beispiel für eine Request-Response-Operation:

<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>

Im obigen Beispiel definiert der portType „glossaryTerms“ eine Anfrage-Antwort-Operation namens „getTerm“.

Die Operation „getTerm“ erfordert eine Eingabenachricht namens „getTermRequest“ mit einem Parameter namens „term“ und gibt eine Ausgabenachricht namens „getTermResponse“ mit einem Parameter namens „value“ zurück.


WSDL-Bindung an SOAP

WSDL-Bindungen definieren das Nachrichtenformat und Protokolldetails für einen Webdienst.

Ein Beispiel für eine Request-Response-Operation:

<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 Bindungselement hat zwei Attribute – Name und Typ.

Das name-Attribut (Sie können einen beliebigen Namen verwenden) definiert den Namen der Bindung, und das type-Attribut zeigt auf den Port für die Bindung, in diesem Fall den „glossaryTerms“-Port.

Das Element soap:binding hat zwei Attribute – Stil und Transport.

Das Stilattribut kann "rpc" oder "document" sein. In diesem Fall verwenden wir document. Das Transportattribut definiert das zu verwendende SOAP-Protokoll. In diesem Fall verwenden wir HTTP.

Das operation -Element definiert jede Operation, die der portType verfügbar macht.

Für jede Operation muss die entsprechende SOAP-Aktion definiert werden. Sie müssen auch angeben, wie Ein- und Ausgabe codiert werden. In diesem Fall verwenden wir „literal“.