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>
|
use、encodingStyle、および namespace 属性はどれも Body と同じ方法で使用されますが、ヘッダーにはパラメータが含まれないので style="document" と見なされる点だけが異なります。
QName タイプの message 属性と nmtoken タイプのpart 属性はともに、ヘッダータイプを定義するメッセージパートを参照します。
省略可能な headerfault 要素は、header 内に出現し、header と同じ構文を持ちます。この要素を使用すると、ヘッダーに関連しヘッダーで定義されているエラー情報を送信するための、ヘッダータイプを指定できます。SOAP 仕様では、ヘッダーに関連するエラーはヘッダー内で返す必要があると記述されています。この機構を使用すると、そのようなヘッダーの形式を指定できます。