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