SoapBindingStyle (メソッド・キーワード)
使用法
メソッドが (Web メソッドとして使用される場合に) 使用する既定のバインディング・スタイルをオーバーライドするには、以下の構文を使用します。
Method name(formal_spec) As returnclass [ WebMethod, SoapBindingStyle = soapbindingstyle ]
{ //implementation }
soapbindingstyle は以下のいずれかになります。
-
document (既定) — この Web メソッドはドキュメント・スタイルの呼び出しを使用します。
このバインディング・スタイルにより、SOAP メッセージはドキュメントとしてフォーマットされ、通常はパートを 1 つのみ持ちます。
SOAP メッセージでは、通常、<Body> 要素に 1 つの子要素が含まれます。<Body> 要素のそれぞれの子は、メッセージ・パートに対応します。
-
rpc — この Web メソッドは RPC (リモート・プロシージャ呼び出し) スタイルの呼び出しを使用します。
このバインディング・スタイルにより、SOAP メッセージは複数のパートを持つメッセージとしてフォーマットされます。
SOAP メッセージでは、<Body> 要素に 1 つの子要素が含まれ、その名前は対応する処理名から取得されます。この要素は生成されたラッパ要素であり、これにはメソッドの引数リストの引数ごとに 1 つの子要素が含まれます。
手動で作成した Web サービスでは、通常はこのキーワードの既定値が最適な値となります。SOAP ウィザードで WSDL から Web クライアントまたは Web サービスを生成すると、このキーワードはその WSDL に最適に設定されます。この値を変更すると、Web クライアントまたは Web サービスは機能しなくなる場合があります。
詳細
このキーワードにより、Web メソッドが使用するバインディング・スタイルを指定できます。これは、SOAP 本文の形式に影響します (SOAP ヘッダの形式には影響しません)。
このキーワードは、指定されたメソッドに対して、SoapBindingStyle クラス・キーワードをオーバーライドします。
既定値
このキーワードを省略すると、<soap:operation> 要素の style 属性が、代わりに SoapBindingStyle クラス・キーワードの値により決定されます。
WSDL との関係
SoapBindingStyle メソッド・キーワードにより、WSDL の <binding> セクション内の <soap:operation> 要素の style 属性の値を指定します。例えば、SoapBindingStyle メソッド・キーワードが document の場合、WSDL は次のようになります。
...
<binding ...>
...
<operation ...>
<soap:operation ... style="document"/>
...
一方、SoapBindingStyle が rpc の場合は、WSDL は次のようになります。
...
<binding ...>
...
<operation ...>
<soap:operation ... style="rpc"/>
...
バインディング・スタイルは、次のように、Web メソッドの要求または応答の <message> 要素にも影響します。
-
バインディング・スタイルが document の場合、既定では各メッセージはパートを 1 つのみ持ちます。以下に例を示します。
<message name="AddSoapIn"> <part name="parameters" .../> </message>
ARGUMENTSTYLE パラメータが message の場合、メッセージは複数のパートを持つことができます。以下に例を示します。
<message name="AddSoapIn"> <part name="a" .../> <part name="b" .../> </message>
-
バインディング・スタイルが rpc の場合、メッセージは複数のパートを持つことができます。以下に例を示します。
<message name="AddSoapIn"> <part name="a" .../> <part name="b" .../> </message>
SOAP メッセージへの影響
詳細は、SoapBindingStyle クラス・キーワードのエントリを参照してください。
%XML.DataSet での使用
タイプ %XML.DataSetOpens in a new tab のオブジェクトを入力または出力として使用するメソッドでこのキーワードを使用する場合は、いくつかの制約が適用されます。詳細は、SoapBindingStyle クラス・キーワードのエントリを参照してください。