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バインディングは、サービスの場所を指定します。