SOAP-エンベロープ
SOAPエンベロープはメッセージの開始と終了を示すため、受信者はメッセージ全体がいつ受信されたかを知ることができます。SOAPエンベロープは、メッセージの受信が完了し、メッセージを処理する準備ができたことを知るという問題を解決します。したがって、SOAPエンベロープは基本的にパッケージ化メカニズムです。
注意点
すべてのSOAPメッセージには、ルートエンベロープ要素があります。
エンベロープはSOAPメッセージの必須部分です。
すべてのエンベロープ要素には、1つのボディ要素が含まれている必要があります。
エンベロープにヘッダー要素が含まれている場合は、ヘッダー要素を1つだけ含める必要があり、ボディの前にエンベロープの最初の子として表示される必要があります。
SOAPのバージョンが変わると、エンベロープも変わります。
SOAPエンベロープは、ENV名前空間プレフィックスとEnvelope要素を使用して指定されます。
オプションのSOAPエンコーディングも、名前空間名とオプションのencodingStyle要素を使用して指定されます。これは、SOAP以外のエンコーディングスタイルを指すこともあります。
v1.1準拠のSOAPプロセッサは、v1.2エンベロープ名前空間を含むメッセージを受信すると障害を生成します。
v1.2準拠のSOAPプロセッサは、v1.2エンベロープ名前空間を含まないメッセージを受信すると、VersionMismatchフォールトを生成します。
v1.2準拠のSOAPメッセージ
以下に、v1.2準拠のSOAPメッセージの例を示します。
<?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>
HTTPPOSTを使用したSOAP
次の例は、HTTP POST操作内でのSOAPメッセージの使用を示しています。これにより、メッセージがサーバーに送信されます。エンベロープスキーマ定義とエンコーディングルールのスキーマ定義の名前空間が表示されます。HTTPヘッダーのOrderEntry参照は、tutorialspoint.comWebサイトで呼び出されるプログラムの名前です。
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 − HTTPバインディングは、サービスの場所を指定します。