WSDL - <binding> 元素



<binding> 元素提供了有关如何通过网络实际传输portType操作的具体细节。

  • 绑定可以通过多种传输方式提供,包括 HTTP GET、HTTP POST 或 SOAP。

  • 绑定提供了有关用于传输portType操作的协议的具体信息。

  • 绑定提供了服务所在位置的信息。

  • 对于 SOAP 协议,绑定为<soap:binding>,传输是在 HTTP 协议之上的 SOAP 消息。

  • 您可以为单个portType指定多个绑定。

绑定元素有两个属性:name 属性和type 属性。

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

name 属性定义绑定的名称,type 属性指向绑定的端口,在本例中为“tns:Hello_PortType”端口。

SOAP 绑定

WSDL 1.1 包含 SOAP 1.1 的内置扩展。它允许您指定 SOAP 特定的详细信息,包括 SOAP 标头、SOAP 编码样式和 SOAPAction HTTP 标头。SOAP 扩展元素包括以下内容:

  • soap:binding
  • soap:operation
  • soap:body

soap:binding

此元素指示绑定将通过 SOAP 提供。style 属性指示 SOAP 消息格式的整体样式。style 值为rpc 指定 RPC 格式。

transport 属性指示 SOAP 消息的传输方式。值 http://schemas.xmlsoap.org/soap/http 指示 SOAP HTTP 传输,而 http://schemas.xmlsoap.org/soap/smtp 指示 SOAP SMTP 传输。

soap:operation

此元素指示将特定操作绑定到特定 SOAP 实现。soapAction 属性指定使用 SOAPAction HTTP 标头来标识服务。

soap:body

此元素使您能够指定输入和输出消息的详细信息。在 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>
广告