WSDL - Binding in WSDL

What is Binding in WSDL?

In WSDL, the binding element defines how the operations described in the portType will be transmitted over a specific protocol. While the portType describes what the service can do (the abstract operations and messages), the binding specifies the concrete details of communication such as the protocol (SOAP, HTTP, MIME) and the message format.

In other words:

  • portType = abstract interface (what operations exist)

  • binding = concrete protocol and encoding (how those operations are transmitted)


Key Points about Binding

  1. A binding ties a portType (abstract operations) to a protocol.

  2. Common protocols include SOAP, HTTP GET/POST, and MIME.

  3. A binding must be associated with a service port (inside the service element) to define the actual endpoint (URL).

  4. Multiple bindings can exist for the same portType — for example, the same operations could be accessible via SOAP or HTTP.


Structure of Binding Element

The general form of a binding in WSDL is:

<binding name="BindingName" type="tns:PortTypeName">
   <!-- protocol-specific details here -->
</binding>
  • name – The name of the binding.

  • type – Refers to the portType that this binding implements.

  • Inside, you’ll usually see protocol-specific elements like <soap:binding>, <http:binding>, etc.


Example: SOAP Binding in WSDL

<binding name="WeatherBinding" type="tns:WeatherPortType">
  <soap:binding style="document" 
                transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="GetWeather">
    <soap:operation soapAction="http://example.com/GetWeather"/>
    <input>
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:body use="literal"/>
    </output>
  </operation>
</binding>
  • <soap:binding> defines that SOAP over HTTP will be used.

  • style="document" specifies the SOAP messaging style (can also be rpc).

  • soapAction gives the action URI for the operation.

  • <soap:body> specifies how the message parts are encoded.


Why Binding is Important

  • It makes the abstract service operations executable by defining the communication details.

  • It allows the same service definition to be reused with different protocols.

  • It ensures interoperability by providing machine-readable details of how to invoke the service.


Do you want me to also cover the types of bindings in WSDL (SOAP binding, HTTP binding, MIME binding) with examples for each?


What is Binding in WSDL?

In WSDL, the binding element defines how the operations described in the portType will be transmitted over a specific protocol. While the portType describes what the service can do (the abstract operations and messages), the binding specifies the concrete details of communication such as the protocol (SOAP, HTTP, MIME) and the message format.

In other words:

  • portType = abstract interface (what operations exist)

  • binding = concrete protocol and encoding (how those operations are transmitted)


Key Points about Binding

  1. A binding ties a portType (abstract operations) to a protocol.

  2. Common protocols include SOAP, HTTP GET/POST, and MIME.

  3. A binding must be associated with a service port (inside the service element) to define the actual endpoint (URL).

  4. Multiple bindings can exist for the same portType — for example, the same operations could be accessible via SOAP or HTTP.


Structure of Binding Element

The general form of a binding in WSDL is:

<binding name="BindingName" type="tns:PortTypeName">
   <!-- protocol-specific details here -->
</binding>
  • name – The name of the binding.

  • type – Refers to the portType that this binding implements.

  • Inside, you’ll usually see protocol-specific elements like <soap:binding>, <http:binding>, etc.


Example: SOAP Binding in WSDL

<binding name="WeatherBinding" type="tns:WeatherPortType">
  <soap:binding style="document" 
                transport="http://schemas.xmlsoap.org/soap/http"/>
  <operation name="GetWeather">
    <soap:operation soapAction="http://example.com/GetWeather"/>
    <input>
      <soap:body use="literal"/>
    </input>
    <output>
      <soap:body use="literal"/>
    </output>
  </operation>
</binding>
  • <soap:binding> defines that SOAP over HTTP will be used.

  • style="document" specifies the SOAP messaging style (can also be rpc).

  • soapAction gives the action URI for the operation.

  • <soap:body> specifies how the message parts are encoded.


Why Binding is Important

  • It makes the abstract service operations executable by defining the communication details.

  • It allows the same service definition to be reused with different protocols.

  • It ensures interoperability by providing machine-readable details of how to invoke the service.