プロジェクトでの HTTP バインディングコンポーネントの使用

SOAP header および headerfault 要素

header 要素と headerfault 要素を使用すると、SOAP Envelope の Header 要素内で送信されるヘッダーを定義できます。ヘッダーを使用する SOAP Envelope に出現するヘッダーをすべて列挙する必要があるわけではありません。たとえば、特定のヘッダーは実際のペイロードに追加されるように WSDL の拡張機能によって暗黙で指定されている場合があり、そのようなヘッダーはここに列挙する必要はありません。

表 6 SOAP header 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

message 

header 要素へのバインディングで使用される WSDL メッセージを示します。 

必須 

part1 

part 

WSDL メッセージから header 要素に含められるパートを示します。 

必須 

part1 

use 

SOAP header でメッセージパートがどのようにエンコードされるかを示します。 

必須 

literal 

encodingStyle 

使用する特定のエンコーディングスタイルを示します。 

省略可能 

http://someencodingstyle 

namespace 

RPC 形式のメッセージのラッパー要素の名前空間を示します。 

省略可能 

urn:someNamespace 

表 7 SOAP headerfault 要素の属性

プロパティー 

説明 

必須か省略可能か 

例 

name 

headerfault 要素へのバインディングで使用される WSDL メッセージを示します。 

必須 

part1 

part 

WSDL メッセージから headerfault 要素に含められるパートを示します。 

必須 

part1 

use 

SOAP headerfault でメッセージパートがどのようにエンコードされるかを示します。 

必須 

literal 

encodingStyle 

使用する特定のエンコーディングスタイルを示します。 

省略可能 

http://someencodingstyle 

namespace 

RPC 形式のメッセージのラッパー要素の名前空間を示します。 

省略可能 

urn:someNamespace 

次の例は、SOAP header および headerfault 要素を示しています。


<definitions .... >
    <binding .... >
        <operation .... >
           <input>
             <soap:header message="qname" part="nmtoken" use="literal|encoded"
                          encodingStyle="uri-list"? namespace="uri"?>*
               <soap:headerfault message="qname" part="nmtoken" use="literal|encoded"
                                 encodingStyle="uri-list"? namespace="uri"?/>*
             <soap:header>                                
           </input>
           <output>
               <soap:header message="qname" part="nmtoken" use="literal|encoded"
                            encodingStyle="uri-list"? namespace="uri"?>*
                 <soap:headerfault message="qname" part="nmtoken" use="literal|encoded"
                                   encodingStyle="uri-list"? namespace="uri"?/>*
               <soap:header>                                
           </output>
        </operation>
    </binding>
</definitions>

useencodingStyle、および namespace 属性はどれも Body と同じ方法で使用されますが、ヘッダーにはパラメータが含まれないので style="document" と見なされる点だけが異なります。

QName タイプの message 属性と nmtoken タイプのpart 属性はともに、ヘッダータイプを定義するメッセージパートを参照します。

省略可能な headerfault 要素は、header 内に出現し、header と同じ構文を持ちます。この要素を使用すると、ヘッダーに関連しヘッダーで定義されているエラー情報を送信するための、ヘッダータイプを指定できます。SOAP 仕様では、ヘッダーに関連するエラーはヘッダー内で返す必要があると記述されています。この機構を使用すると、そのようなヘッダーの形式を指定できます。