Wsdl-binding

提供:Dev Guides
移動先:案内検索

WSDL-<binding>要素

*<binding>* 要素は、_portType_操作が実際にワイヤ経由で送信される方法に関する特定の詳細を提供します。
  • バインディングは、HTTP GET、HTTP POST、またはSOAPを含む複数のトランスポートを介して利用可能にできます。
  • バインディングは、_portType_操作の転送に使用されているプロトコルに関する具体的な情報を提供します。
  • バインディングは、サービスが配置されている場所の情報を提供します。
  • SOAPプロトコルの場合、バインディングは <soap:binding> であり、トランスポートはHTTPプロトコルの上にあるSOAPメッセージです。
  • 1つの_portType_に対して複数のバインディングを指定できます。

バインディング要素には、_name_属性と_type_属性の2つの属性があります。

<binding name = "Hello_Binding" type = "tns:Hello_PortType">

_name_属性はバインディングの名前を定義し、type属性はバインディングのポート(この場合は「tns:Hello_PortType」ポート)を指します。

SOAPバインディング

WSDL 1.1には、SOAP 1.1の組み込み拡張機能が含まれています。 SOAPヘッダー、SOAPエンコードスタイル、SOAPAction HTTPヘッダーなど、SOAP固有の詳細を指定できます。 SOAP拡張要素には次のものが含まれます-

  • soap:結合
  • 石鹸:操作
  • 石鹸:ボディ

soap:結合

この要素は、SOAPを介してバインディングが利用可能になることを示します。 _style_属性は、SOAPメッセージ形式の全体的なスタイルを示します。 _rpc_のスタイル値は、RPC形式を指定します。

_transport_属性は、SOAPメッセージのトランスポートを示します。 値http://schemas.xmlsoap.org/soap/httpはSOAP HTTPトランスポートを示し、http://schemas.xmlsoap.org/soap/smtpはSOAP SMTPトランスポートを示します。

石鹸:操作

この要素は、特定の操作の特定のSOAP実装へのバインディングを示します。 _soapAction_属性は、サービスを識別するためにSOAPAction HTTPヘッダーを使用することを指定します。

石鹸:ボディ

この要素を使用すると、入力メッセージと出力メッセージの詳細を指定できます。 HelloWorldの場合、body要素は、指定されたサービスに関連付けられたSOAPエンコーディングスタイルと名前空間URNを指定します。

ここに例の章からのコードの一部があります-

<binding name = "Hello_Binding" type = "tns:Hello_PortType">
   <soap:binding style = "rpc" transport = "http://schemas.xmlsoap.org/soap/http"/>
   <operation name = "sayHello">
      <soap:operation soapAction = "sayHello"/>

      <input>
         <soap:body
            encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
            namespace = "urn:examples:helloservice" use = "encoded"/>
      </input>

      <output>
         <soap:body
            encodingStyle = "http://schemas.xmlsoap.org/soap/encoding/"
            namespace = "urn:examples:helloservice" use = "encoded"/>
      </output>
   </operation>
</binding>