SOAP-Syntax Schritt für Schritt

Eine SOAP-Nachricht zu erstellen ist fast wie das Schreiben und Verschicken eines Briefes. Sobald man eine SOAP-Nachricht erstellt hat, muss man sie in einen SOAP-Umschlag (envelope) stecken und draußen Anweisungen draufschreiben. Hier ein Beispiel für einen solchen SOAP-Umschlag:


<Envelope>
<Header> ... </Header>
<Body> ... </Body>
</Envelope>

Die Auslassungszeichen (drei Punkte) zeigen an, wo der Brief und sonstige Inhalte hineinkommen. Natürlich ist dieses Stück XML genau so schlampig wie das erste send.xml – daher räumen wir die Syntax etwas auf:


<?xml version="1.0" ?>
<env:Envelope xmlns:env='http://www.w3.org/2001/12/
soap-envelope'>
<env:Header>
</env:Header>
<env:Body>
</env:Body>
</env:Envelope>

Dies ist das dritte Set von Tags, das Sie benötigen. Die Tags <Envelope>, <Header> und <Body> (Groß- und Kleinschreibung beachten!) werden durch den SOAP-Standard spezifiziert. Sie beschreiben die Bestandteile des Umschlags, der die SOAP-Daten umgibt, selbst wenn der Umschlag technisch separat von den Daten ist, die man tatsächlich verschickt. Alles zusammen wird „SOAP-Nachricht“ genannt. Lassen Sie uns nun die Nachricht in den Umschlag stecken, wie Listing B zeigt.

Drei „xmlns“ XML-Namensraum-Deklarationen für die drei Sammlungen von Tags werden in der Nachricht verwendet: zwei direkt sichtbare (eine wird wiederholt) und eine in der person.xsd-Datei. Aber was bedeutet der <p:control>-Tag? So wie man die Daten in den Umschlag stecken kann, kann man auch die Header-Funktionen von SOAP nutzen. Wenn man den <p:control>-Tag mit dem SOAP-Attribut „mustUnderstand“ versieht, zeigt dies für den Empfänger der Nachricht, dass die Nachricht intelligent verarbeitet werden muss, oder alles geht schief. Der <control>-Tag ist ein neuer Tag, nur geschaffen für dieses Attribut. Und so kann man es z.B. dem person.xsd-Schema hinzufügen:


<schema:element name="control">
<schema:complexType>
</schema:complexType>
</schema:element>

Wir wenden hier einen XSchema-Trick an, der verhindert, dass der <control>-Tag irgendwelche Inhalte enthält (ähnlich dem <hr>-Tag in HTML). Nun ist die SOAP-Nachricht vollständig. Wenn man dies alles auch auf die andere Nachricht anwendet, sieht sie aus wie Listing C.

Was jetzt noch bleibt, ist das Verschicken dieser beiden Nachrichten.

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu SOAP-Syntax Schritt für Schritt

Kommentar hinzufügen

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *