SOAP 呼び出しメッセージについて

SOAP は、ネットワーク経由で XML ベースのメッセージを交換するためのプロトコルであり、Web サービスとクライアントとの間でのメッセージの送信に使用されます。クライアントソフトウェアは、Web サービスに SOAP メッセージを送信して、Web サービス操作を呼び出します。Web サービスは、別の SOAP メッセージを使用して、操作の結果をクライアントに返します。

Web サービス操作を呼び出すために送信される SOAP メッセージを表す XML は、メッセージエンベロープ、ヘッダーおよび本文から構成されます。

Envelope:
Envelope 要素は、SOAP メッセージを表す XML ドキュメントのルート要素です。この要素には、メッセージヘッダーおよび本文が含まれています。

ヘッダー:
Header 要素には、Web サービス操作に直接は関連しない情報が含まれています。この要素は、メッセージを処理するソフトウェアに対して情報を提供するメカニズムとして機能します。例えば、通常、ヘッダーは、認証のためにユーザー秘密鍵証明書を転送するために使用されます。Web サービスによって必須とされている場合を除き、Header 要素を含めるかどうかはオプションです。

ボディ:
Body 要素には、呼び出される Web サービス操作への呼び出しを表す 1 つの要素が含まれています。要素のタイプは、操作の名前です。操作要素には、操作パラメーターを表す要素が含まれています。これらの要素のタイプはパラメーターの名前であり、パラメーター値を含んでいます。

Web サービス操作の名前、パラメーター名およびデータ型は、Web サービス定義に定義されています。ほとんどの Web サービスクライアントは、自動的に定義を取得して解釈します。

名前空間

Envelope 要素には、宣言で名前空間識別子として http://schemas.xmlsoap.org/soap/envelope/ を使用する名前空間エイリアスを接頭辞として付加する必要があります。この名前空間で次の名前空間宣言が使用される場合、Header 要素に接頭辞として soapenv が付加されます。

xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"

宣言されている他の名前空間は、Web サービス定義によって定義された名前空間です。これらの名前空間は、Web サービス操作に関連付けられている XML 要素に接頭辞を付加するために使用されます。例えば、アクティベートされたプロセスを呼び出す Web サービスでは、名前空間識別子 http://adobe.com/idp/services が使用されます。

次の XML コードは、 operation_name という名前の Web サービスの操作の呼び出しを表す SOAP メッセージ要素の例です。この操作では、 parameter_name という名前の 1 つのパラメーターを使用します。

<soapenv:Envelope  
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://foo.net/services"> 
    <soapenv:Header /> 
    <soapenv:Body> 
        <ser:operation_name> 
            <ser:parameter_name>?</ser:parameter_name> 
        </ser:operation_name> 
    </soapenv:Body> 
</soapenv:Envelope>