SOAP Header 要素

オプションのSOAPHeader要素はヘッダー情報を含みます。

SOAP Header 要素

オプションのSOAPHeader要素は、SOAPメッセージに関連するアプリケーション固有の情報(例えば認証、支払いなど)を含むことができます。Header要素が提供される場合、それはEnvelope要素の最初の子要素でなければなりません。

注釈:すべてのHeader要素の直接子要素は、適切な命名空間でなければなりません。

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"
<soap:Header>
<m:Trans
xmlns:m="http://www.codew3c.com/transaction/"
soap:mustUnderstand="1">234</m:Trans>
</soap:Header>
...
...
</soap:Envelope>

上の例では、値が234の"Trans"要素を持つヘッダーが含まれており、その要素の"mustUnderstand"属性の値は"1"です。

SOAPはデフォルトの命名空間("http://www.w3.org/2001/12/soap-envelope")で3つの属性を定義しています。これらの属性はactor、mustUnderstand、encodingStyleです。これらの属性はSOAPヘッダーに定義され、SOAPメッセージの処理方法を定義します。

actor属性

メッセージパスを通じて異なるエンドポイントを経由することで、SOAPメッセージは送信者から受信者に伝播されます。SOAPメッセージのすべての部分が最終的なエンドポイントに送信されることを意図しているわけではありませんが、一方で、メッセージパス上の1つまたは複数のエンドポイントに送信されることを意図している可能性があります。

SOAPのactor属性は、Header要素を特定のエンドポイントにアドレスするために使用できます。

文法

soap:actor="URI"

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"
<soap:Header>
<m:Trans
xmlns:m="http://www.codew3c.com/transaction/"
soap:actor="http://www.codew3c.com/appml/">
234
</m:Trans>
</soap:Header>
...
...
</soap:Envelope>

mustUnderstand属性

SOAPのmustUnderstand属性は、ヘッダー項目が受信者が処理する際に強制あるいは選択的であるかを示すために使用できます。

Header要素のサブ要素に"mustUnderstand="1"を追加すると、そのヘッダーを処理する受信者がその要素を認可する必要があることを示します。この受信者がその要素を認可できない場合、ヘッダーを処理する際に無効にする必要があります。

文法

soap:mustUnderstand="0|1"

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding"
<soap:Header>
<m:Trans
xmlns:m="http://www.codew3c.com/transaction/"
soap:mustUnderstand="1">
234
</m:Trans>
</soap:Header>
...
...
</soap:Envelope>

encodingStyle属性

SOAPのencodingStyle属性は前節で説明しました。