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

HTTP WSDL 拡張性要素

HTTP WSDL 要素を使用すると、HTTP バインディングコンポーネントの HTTP 接続および HTTP バインディングの情報を設定できます。

HTTP WSDL 要素を使用すると、HTTP バインディングコンポーネントの HTTP 接続および HTTP バインディングの情報を設定できます。

次に示すプロトコル固有の情報を指定することができます。

ここの情報は 2 つの主要セクションに分割されます。1 つは、ユーザーが HTTP サービスのエンドポイントを設定する方法です。もう 1 つは、ユーザーが設定を指定して WSDL メッセージを HTTP メッセージにマップする方法です。

HTTP 接続要素

HTTP 接続要素は address 要素で構成されます。

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>

HTTP バインディング要素

抽象 WSDL メッセージを HTTP メッセージにバインドするための HTTP 拡張性要素は、いくつかのセクションに分かれています。各セクションは、バインディングがどのように行われるべきかを表します。バインディングレベルでは、設定はポートタイプ全体に適用されます。オペレーションレベルでは、設定はそのオペレーションだけに適用されます。メッセージレベルでは、入力メッセージか出力メッセージかにかかわらず、設定はその特定のメッセージに適用されます。

HTTP binding 要素

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 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 でなければなりません。

HTTP urlEncoded 要素

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>

HTTP urlReplacement 要素

urlReplacement 要素は、すべてのメッセージパートが置換アルゴリズムを使用して HTTP 要求 URI 内にエンコードされることを示します。

メッセージパートには反復値が含まれていてはいけません。

HTTP urlReplacement 要素

例:


<definitions .... >
    <binding .... >
        <operation .... >
           <input .... >
               <http:urlReplacement/>
           </input>
           <output .... >
               <-- mime elements -->
           </output>
        </operation>
    </binding>
</definitions>