HTTP WSDL 要素を使用すると、HTTP バインディングコンポーネントの HTTP 接続および HTTP バインディングの情報を設定できます。
HTTP WSDL 要素を使用すると、HTTP バインディングコンポーネントの HTTP 接続および HTTP バインディングの情報を設定できます。
「HTTP 接続要素」には、次のような要素があります。
「HTTP バインディング要素」には、次のような要素があります。
次に示すプロトコル固有の情報を指定することができます。
バインディングで HTTP GET または POST を使用するかどうか
ポートのアドレス
各オペレーションの相対アドレス (ポートで定義されている基底アドレスを基準とする)
ここの情報は 2 つの主要セクションに分割されます。1 つは、ユーザーが HTTP サービスのエンドポイントを設定する方法です。もう 1 つは、ユーザーが設定を指定して WSDL メッセージを HTTP メッセージにマップする方法です。
HTTP 接続要素は address 要素で構成されます。
HTTP address 拡張性要素を使用すると、HTTP サーバーへの接続の情報を指定できます。
表 8 HTTP address 要素の属性
プロパティー |
説明 |
必須か省略可能か |
例 |
location |
HTTP サーバーに接続するための接続情報を指定する URL。 |
必須 |
http://myhost:7676/some/additional/context |
次の例は、サービスポートに定義される HTTP address 拡張性要素の使用法を示しています。
<port binding="y:binding" name="soapEndpoint"> <http:address location="http://myhost:7676/some/additional/context" /> </port> |
抽象 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> |