Produkt des Tages

Dell PowerEdge T310

WDSL-Dokumentenstruktur: Die Elemente und ihre Beziehungen

Wir beschreiben nun detaillierter, aus welchen Elementen ein WSDL-Dokument besteht. Dabei berücksichtigen wir nur die wichtigsten.

WSDL-Elemente: Das Element „<types>“

Das <types>-Element enthält jene Datentypen, die später in den Nachrichten (<message>) verwendet werden. Es bietet die Möglichkeit, alle die Datentypen zu definieren, die nicht vom XML Schema-Standard erfasst werden.

Das folgende, leicht modifizierte Beispiel stammt aus dem Buch von W. Dostal: „Serviceorientierte Architekturen mit Web Services“. Bei dem Beispiel handelt es sich um einen Web Service, der es ermöglicht, nach Büchern in einem Buchkatalog zu suchen. Um die Suche durchzuführen, stellt der Nutzer des Web Service eine Anfrage mit den Suchbegriffen, zum Beispiel Titel und Autor oder einem Stichwort. Die Anfrage wird dann vom Web Service bearbeitet und mit einer Trefferliste beantwortet, die den Suchkriterien entsprechende Bücher beinhaltet.

In dem Beispiel werden im Abschnitt <types> die zum Datenaustausch mit dem Web Service notwendigen Datentypen definiert. Um diese Datentypen zu definieren, wird der XML-Schema-Standard des W3Cs verwendet. Die in diesem Abschnitt definierten Datentypen können dann im WSDI-Dokument verwendet werden, um die Eingabe- und Ausgabeparameter des Web Service darzustellen.

<types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.com/buch/suche.xsd"
xmlns="http://www.example.com/buch/suche.wsdl">
<xs:element name="buchSuchen" type="AnfrageTyp"/>
<xs:element na~e="buchTreffer" type="AntwortTyp"/>
<xs:element name="eingabeUngueltigFehler"
type="xs:string"/>

<xs:complexType name="BuchTyp">
<xs:sequence>
<xs:element name="Autor" type="xs:string"/>
<xs:element name="Titel" type="xs:string"/>
<xs:element name="ISBN" type="xs:string"/>
<xs:element name="Preis" type="xs:double"/>
<xs:element name="Stichwort" type="xs:string"/>
</xs:sequence>
</xs:complexType>

<xs:complexType name="AnfrageTyp">
<xs:sequence>
<xs:element name="Buch" type="BuchTyp"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="AntwortTyp">
<xs:sequence>
<xs:element name="Buch" type="BuchTyp"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</types>

In dem Listing werden die drei Typen „buchSuchen“, „buchTreffer“ und „eingabeUngeultigFehler“ definiert. „buchSuchen“ wird verwendet, um die Suchkriterien aufzunehmen, „buchTreffer“ stellt die Trefferliste dar, die der Benutzer als Ausgabe erhält. „eingabeUngeultigFehler“ legt die Nachricht fest, die im Falle eines Fehlers an den Nutzer gesendet wird.

„buchSuchen“ und „buchTreffer“ nutzen den Datentyp „BuchTyp“. Er wird nicht nur zur Angabe der Suchkriterien verwendet, sondern auch für die Elemente der Trefferliste.