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.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Chrome: Google verschiebt das Aus für Drittanbietercookies

Ab Werk blockiert Chrome Cookies von Dritten nun frühestens ab Anfang 2025. Unter anderem gibt…

5 Tagen ago

BAUMLINK: Wir sind Partner und Aussteller bei der Frankfurt Tech Show 2024

Die Vorfreude steigt, denn BAUMLINK wird als Partner und Aussteller bei der Tech Show 2024…

5 Tagen ago

Business GPT: Generative KI für den Unternehmenseinsatz

Nutzung einer unternehmenseigenen GPT-Umgebung für sicheren und datenschutzkonformen Zugriff.

5 Tagen ago

Alphabet übertrifft die Erwartungen im ersten Quartal

Der Umsatz steigt um 15 Prozent, der Nettogewinn um 57 Prozent. Im nachbörslichen Handel kassiert…

1 Woche ago

Microsoft steigert Umsatz und Gewinn im dritten Fiskalquartal

Aus 61,9 Milliarden Dollar generiert das Unternehmen einen Nettoprofit von 21,9 Milliarden Dollar. Das größte…

1 Woche ago

Digitalisierung! Aber wie?

Mehr Digitalisierung wird von den Unternehmen gefordert. Für KMU ist die Umsetzung jedoch nicht trivial,…

1 Woche ago