The following Issue arose out of several enquires. Here is the consolidated question:

How does the corresponding SOAP binding look like if you want to get a WS-I compliant WSDL?

As always, answer and explanation will follow…

 

<?xml version="1.0" encoding="utf-8"?>

<wsdl:definitions targetNamespace="uri.test.com"  

xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"

xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:xsd="http://www.w3.org/2001/XMLSchema"

xmlns:tns="uri.test.com"

xmlns="http://schemas.xmlsoap.org/wsdl/">

   <wsdl:types>

      <xsd:schema elementFormDefault="qualified" targetNamespace="uri.test.com">

         

         <xsd:complexType name="AddRequestType">

            <xsd:sequence>

               <xsd:element minOccurs="1" maxOccurs="1" name="a" type="xsd:int" />

               <xsd:element minOccurs="1" maxOccurs="1" name="b" type="xsd:int" />

            </xsd:sequence>

         </xsd:complexType>

 

         <xsd:complexType name="AddResponseType">

            <xsd:sequence>

               <xsd:element minOccurs="1" maxOccurs="1" name="c" type="xsd:int" />

            </xsd:sequence>

         </xsd:complexType>

 

      </xsd:schema>

   </wsdl:types>

 

   <wsdl:message name="AddRequestMsg">

      <wsdl:part name="AddRequest" type="tns:AddRequestType" />

   </wsdl:message>

 

   <wsdl:message name="AddResponseMsg">

      <wsdl:part name="AddResponse" type="tns:AddResponseType" />

   </wsdl:message>

 

   <wsdl:portType name="CalculatorPortType">

      <wsdl:operation name="Add">

         <wsdl:input message="tns:AddRequestMsg" />

         <wsdl:output message="tns:AddResponseMsg" />

      </wsdl:operation>

   </wsdl:portType>

 

   <wsdl:binding name="CalculatorSoap" type="tns:CalculatorPortType">

      <!-- soap:binding goes here -->

   </wsdl:binding>

</wsdl:definitions>