SOAP - Umschlag
Der SOAP-Umschlag zeigt den Beginn und das Ende der Nachricht an, damit der Empfänger weiß, wann eine gesamte Nachricht empfangen wurde. Der SOAP-Umschlag löst das Problem, zu wissen, wann Sie eine Nachricht empfangen haben und bereit sind, sie zu verarbeiten. Der SOAP-Umschlag ist daher grundsätzlich ein Verpackungsmechanismus.
Zu beachtende Punkte
Jede SOAP-Nachricht hat ein Root-Envelope-Element.
Umschlag ist ein obligatorischer Bestandteil der SOAP-Nachricht.
Jedes Envelope-Element muss genau ein Body-Element enthalten.
Wenn ein Umschlag ein Header-Element enthält, darf er nicht mehr als ein Element enthalten und als erstes untergeordnetes Element des Umschlags vor dem Text erscheinen.
Der Umschlag ändert sich, wenn sich die SOAP-Versionen ändern.
Der SOAP-Umschlag wird mit dem ENV- Namespace-Präfix und dem Envelope-Element angegeben.
Die optionale SOAP-Codierung wird auch mithilfe eines Namespace-Namens und des optionalen encodingStyle- Elements angegeben, die auch auf einen anderen Codierungsstil als den SOAP-Stil verweisen können.
Ein v1.1-kompatibler SOAP-Prozessor generiert einen Fehler beim Empfang einer Nachricht, die den v1.2-Umschlag-Namespace enthält.
Ein v1.2-kompatibler SOAP-Prozessor generiert einen VersionMismatch- Fehler, wenn er eine Nachricht empfängt, die den v1.2-Umschlag-Namespace nicht enthält.
v1.2-kompatible SOAP-Nachricht
Im Folgenden finden Sie ein Beispiel für eine v1.2-kompatible SOAP-Nachricht.
<?xml version = "1.0"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding">
...
Message information goes here
...
</SOAP-ENV:Envelope>
SOAP mit HTTP POST
Das folgende Beispiel zeigt die Verwendung einer SOAP-Nachricht innerhalb einer HTTP-POST-Operation, die die Nachricht an den Server sendet. Es zeigt die Namespaces für die Umschlagschemadefinition und für die Schemadefinition der Codierungsregeln. Die OrderEntry- Referenz im HTTP-Header ist der Name des Programms, das auf der Website tutorialspoint.com aufgerufen werden soll.
POST /OrderEntry HTTP/1.1
Host: www.tutorialspoint.com
Content-Type: application/soap; charset="utf-8"
Content-Length: nnnn
<?xml version = "1.0"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV = "http://www.w3.org/2001/12/soap-envelope"
SOAP-ENV:encodingStyle = " http://www.w3.org/2001/12/soap-encoding">
...
Message information goes here
...
</SOAP-ENV:Envelope>
NOTE - Die HTTP-Bindung gibt den Speicherort des Dienstes an.