抽象 WSDL メッセージを HTTP メッセージにバインドするための HTTP 拡張性要素は、いくつかのセクションに分かれています。各セクションは、バインディングがどのように行われるべきかを表します。バインディングレベルでは、設定はポートタイプ全体に適用されます。オペレーションレベルでは、設定はそのオペレーションだけに適用されます。メッセージレベルでは、入力メッセージか出力メッセージかにかかわらず、設定はその特定のメッセージに適用されます。
HTTP binding 要素は、バインディングが HTTP プロトコルにバインドされていることを示すために使用されます。
表 9 HTTP binding 要素の属性
プロパティー |
説明 |
必須か省略可能か |
例 |
verb |
このバインディングが HTTP のどのトランスポートに対応するかを示します。 |
必須 |
GET |
HTTP バインディングを使用するときは、HTTP binding 要素が存在する必要があります。次の例は、HTTP binding 要素を示しています。
<definitions .... > <binding .... > <http:binding verb="nmtoken" /> </binding> </definitions> |
必須の verb 属性の値は、HTTP 動詞を示します。一般的な値は GET または POST ですが、ほかの値も使用できます。HTTP 動詞では大文字と小文字が区別されることに注意してください。
HTTP operation 要素は、抽象オペレーションから具象 HTTP オペレーションへのバインディング情報を提供するために使用されます。
表 10 HTTP operation 要素の属性
プロパティー |
説明 |
必須か省略可能か |
例 |
location |
相対 URI を示します。address 要素の location 属性と組み合わされます。 |
必須 |
o1 |
次の例は、WSDL operation 要素を示しています。
<definitions .... > <binding .... > <operation .... > <soap:operation location="uri" /> </operation> </binding> </definitions> |
location 属性は、オペレーションの相対 URI を指定します。この URI は、http:address 要素に指定されている URI と組み合わされて、HTTP 要求の完全な URI を形成します。URI の値は相対 URI でなければなりません。
urlEncoded 要素は、すべてのメッセージパートが標準の URI エンコーディング規則 (name1=value&name2=value...) を使用して HTTP 要求 URI 内にエンコードされることを示します。パラメータの名前はメッセージパートの名前に対応します。パートによって提供される各値は、名前=値のペアを使用してエンコードされます。これを GET とともに使用して URL エンコーディングを指定したり、POST とともに使用して FORM-POST を指定したりできます。GET の場合、「?」文字が必要に応じて自動的に追加されます。
例:
<definitions .... > <binding .... > <operation .... > <input .... > <http:urlEncoded/> </input> <output .... > <-- mime elements --> </output> </operation> </binding> </definitions> |
urlReplacement 要素は、すべてのメッセージパートが置換アルゴリズムを使用して HTTP 要求 URI 内にエンコードされることを示します。
http:operation の相対 URI 値から一連の検索パターンが検索されます。
この検索は、http:operation の値が http:address の location 属性の値と組み合わされる前に実行されます。
各メッセージパートに 1 つの検索パターンがあります。検索パターン文字列は、括弧「(」と「)」で囲まれたメッセージパートの名前です。
一致するごとに、対応するメッセージパートの値が一致した場所の一致内容に置換されます。
照合は値が置換される前に実行されます (置換された値によってさらに照合が行われることはない)。
メッセージパートには反復値が含まれていてはいけません。
HTTP urlReplacement 要素
例:
<definitions .... > <binding .... > <operation .... > <input .... > <http:urlReplacement/> </input> <output .... > <-- mime elements --> </output> </operation> </binding> </definitions> |