Nachrichten verschicken mit SOAP - Die SOAP-Spezifikation

Der SOAP Body

Das zweite Element einer SOAP-Nachricht ist der SOAP Body. Er ist zwingend erforderlich und wird mit dem Schlüsselwort „Body“ eingeleitet.

<env:Body>
<m:transaction xmlns:m=’’http://www.w3.org/2003/05/soap-envelope’’>
<m:msg>
NUTZDATEN - HIER STEHT DIE ZU TRANSPORTIERENDE INFORMATION
</m:msg>
</m:transaction>
</env Body>

Der Body enthält den Kern einer SOAP-Nachricht, die eigentlichen Nutzdaten („Payload“). Der Inhalt muss ein wohlgeformtes XML-Dokument darstellen und ist Teil eines Vertrages zwischen den Kommunikationspartnern. Je nachdem, welche Partner in welchem Kontext kommunizieren, ist die Struktur der Information im Vorhinein zu vereinbaren.

SOAP-Envelope: Header und Body im Detail.
SOAP-Envelope: Header und Body im Detail.

Der Inhalt selbst ist anwendungsbezogen und kann hier nicht weiter erläutert werden. Die Daten können unter anderem für entfernte Methodenaufrufe, (Fehler-)Meldungen oder reine Daten wie zum Beispiel Abbildung einer Klassenstruktur stehen.

Als einfaches Beispiel betrachten wir den SOAP Call vom Client zum Server:

<env Envelope
xmlns:env=’’http://www.w3.org/2003/05/soap-envelope’’>
<env:Body>
<GetServerTime></GetServerTime>
</env:Body>
</env:Envelope>

Diese SOAP Nachricht will am Server die GetServerTime() Funktion aufrufen. Der Client schickt nun an den Server diese Nachricht und dieser gibt folgenden Response zurück - falls er eine solche Methode zur Verfügung stellt:

<env Envelope
xmlns:env=’’http://www.w3.org/2003/05/soap-envelope’’>
<env:Body>
<GetServerTimeResponse>
<Now>04/01/2007 12:00:00 AM</Now>
</GetServerTimeResponse>
</env:Body>
</env:Envelope>

Auf der Client-Seite bekommt man nun den Wert der Funktion zurückgesandt.