<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s3="http://soapinterop.org/echoheader/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://soapinterop.org/" xmlns:s1="http://soapinterop.org/xsd" xmlns:s2="http://soapinterop.org" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="http://soapinterop.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">These operations implement DOC/LIT SOAP operations, for interop testing. Please email Abu.Obeida@microsoft.com with any questions/coments.</wsdl:documentation>
  <wsdl:types>
    <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/">
      <s:import namespace="http://soapinterop.org/xsd" />
      <s:import namespace="http://soapinterop.org/echoheader/" />
      <s:element name="echoVoid">
        <s:complexType />
      </s:element>
      <s:element name="echoVoidResponse">
        <s:complexType />
      </s:element>
      <s:element name="echoInteger">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="inputInteger" type="s:int" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoIntegerResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="return" type="s:int" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoFloat">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="inputFloat" type="s:float" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoFloatResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="return" type="s:float" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoString">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputString" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoStringResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoBase64">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputBase64" type="s:base64Binary" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoBase64Response">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s:base64Binary" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoDate">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="inputDate" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoDateResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="return" type="s:dateTime" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoComplexType">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputComplexType" type="s1:SOAPComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoComplexTypeResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:SOAPComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoIntegerMultiOccurs">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputIntegerMultiOccurs" type="tns:ArrayOfInt" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfInt">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="int" type="s:int" />
        </s:sequence>
      </s:complexType>
      <s:element name="echoIntegerMultiOccursResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="unbounded" name="return" type="s:int" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoFloatMultiOccurs">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputFloatMultiOccurs" type="tns:ArrayOfFloat" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfFloat">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="float" type="s:float" />
        </s:sequence>
      </s:complexType>
      <s:element name="echoFloatMultiOccursResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="unbounded" name="return" type="s:float" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoStringMultiOccurs">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputStringMultiOccurs" type="tns:ArrayOfString" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfString">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:element name="echoStringMultiOccursResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="unbounded" name="return" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoComplexTypeMultiOccurs">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputComplexTypeMultiOccurs" type="tns:ArrayOfSOAPComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ArrayOfSOAPComplexType">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="SOAPComplexType" nillable="true" type="s1:SOAPComplexType" />
        </s:sequence>
      </s:complexType>
      <s:element name="echoComplexTypeMultiOccursResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="unbounded" name="return" type="s1:SOAPComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoDecimal">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="inputDecimal" type="s:decimal" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoDecimalResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="return" type="s:decimal" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoBoolean">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="inputBoolean" type="s:boolean" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoBooleanResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="return" type="s:boolean" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoHexBinary">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputHexBinary" type="s:hexBinary" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoHexBinaryResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s:hexBinary" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoComplexTypeAsSimpleTypes">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputComplexType" type="s1:SOAPComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoComplexTypeAsSimpleTypesResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="outputString" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="outputInteger" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" name="outputFloat" type="s:float" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoSimpleTypesAsComplexType">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputString" type="s:string" />
            <s:element minOccurs="1" maxOccurs="1" name="inputInteger" type="s:int" />
            <s:element minOccurs="1" maxOccurs="1" name="inputFloat" type="s:float" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoSimpleTypesAsComplexTypeResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:SOAPComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoNestedComplexType">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputComplexType" type="s1:SOAPComplexTypeComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoNestedComplexTypeResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:SOAPComplexTypeComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoNestedMultiOccurs">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputComplexType" type="s1:SOAPMultiOccursComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoNestedMultiOccursResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:SOAPMultiOccursComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoChoice">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputChoice" type="s1:ChoiceComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoChoiceResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" type="s1:ChoiceComplexType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoEnum">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="inputEnum" type="s1:Enum" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoEnumResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="1" maxOccurs="1" name="return" type="s1:Enum" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoAnyType">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputAnyType" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoAnyTypeResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoAnyElement">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="inputAny">
              <s:complexType>
                <s:sequence>
                  <s:any />
                </s:sequence>
              </s:complexType>
            </s:element>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoAnyElementResponse">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="return">
              <s:complexType>
                <s:sequence>
                  <s:any />
                </s:sequence>
              </s:complexType>
            </s:element>
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:element name="echoVoidSoapHeaderResponse">
        <s:complexType />
      </s:element>
      <s:element name="echoMeComplexTypeRequest" type="s3:echoMeComplexTypeRequest" />
      <s:element name="echoMeStringRequest" type="s3:echoMeStringRequest" />
      <s:element name="echoMeComplexTypeResponse" type="s3:echoMeComplexTypeResponse" />
      <s:element name="echoMeStringResponse" type="s3:echoMeStringResponse" />
    </s:schema>
    <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/xsd">
      <s:complexType name="SOAPComplexType">
        <s:sequence>
          <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
          <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="SOAPComplexTypeComplexType">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
          <s:element minOccurs="0" maxOccurs="1" name="varComplexType" type="s1:SOAPComplexType" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="SOAPMultiOccursComplexType">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
          <s:element minOccurs="0" maxOccurs="1" name="varMultiOccurs" type="s1:ArrayOfString" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ArrayOfString">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
        </s:sequence>
      </s:complexType>
      <s:complexType name="ChoiceComplexType">
        <s:sequence>
          <s:choice minOccurs="1" maxOccurs="1">
            <s:element minOccurs="0" maxOccurs="1" name="name0" type="s:string" />
            <s:element minOccurs="0" maxOccurs="1" name="name1" type="s:string" />
          </s:choice>
        </s:sequence>
      </s:complexType>
      <s:simpleType name="Enum">
        <s:restriction base="s:string">
          <s:enumeration value="BitOne" />
          <s:enumeration value="BitTwo" />
          <s:enumeration value="BitThree" />
          <s:enumeration value="BitFour" />
          <s:enumeration value="BitFive" />
        </s:restriction>
      </s:simpleType>
    </s:schema>
    <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org">
      <s:element name="echoVoidSoapHeader">
        <s:complexType />
      </s:element>
    </s:schema>
    <s:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/echoheader/">
      <s:complexType name="echoMeComplexTypeRequest">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
        </s:sequence>
        <s:anyAttribute />
      </s:complexType>
      <s:complexType name="echoMeStringRequest">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
        </s:sequence>
        <s:anyAttribute />
      </s:complexType>
      <s:complexType name="echoMeComplexTypeResponse">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
          <s:element minOccurs="1" maxOccurs="1" name="varInt" type="s:int" />
          <s:element minOccurs="1" maxOccurs="1" name="varFloat" type="s:float" />
        </s:sequence>
        <s:anyAttribute />
      </s:complexType>
      <s:complexType name="echoMeStringResponse">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="varString" type="s:string" />
        </s:sequence>
        <s:anyAttribute />
      </s:complexType>
    </s:schema>
  </wsdl:types>
  <wsdl:message name="echoVoidSoapIn">
    <wsdl:part name="parameters" element="tns:echoVoid" />
  </wsdl:message>
  <wsdl:message name="echoVoidSoapOut">
    <wsdl:part name="parameters" element="tns:echoVoidResponse" />
  </wsdl:message>
  <wsdl:message name="echoIntegerSoapIn">
    <wsdl:part name="parameters" element="tns:echoInteger" />
  </wsdl:message>
  <wsdl:message name="echoIntegerSoapOut">
    <wsdl:part name="parameters" element="tns:echoIntegerResponse" />
  </wsdl:message>
  <wsdl:message name="echoFloatSoapIn">
    <wsdl:part name="parameters" element="tns:echoFloat" />
  </wsdl:message>
  <wsdl:message name="echoFloatSoapOut">
    <wsdl:part name="parameters" element="tns:echoFloatResponse" />
  </wsdl:message>
  <wsdl:message name="echoStringSoapIn">
    <wsdl:part name="parameters" element="tns:echoString" />
  </wsdl:message>
  <wsdl:message name="echoStringSoapOut">
    <wsdl:part name="parameters" element="tns:echoStringResponse" />
  </wsdl:message>
  <wsdl:message name="echoBase64SoapIn">
    <wsdl:part name="parameters" element="tns:echoBase64" />
  </wsdl:message>
  <wsdl:message name="echoBase64SoapOut">
    <wsdl:part name="parameters" element="tns:echoBase64Response" />
  </wsdl:message>
  <wsdl:message name="echoDateSoapIn">
    <wsdl:part name="parameters" element="tns:echoDate" />
  </wsdl:message>
  <wsdl:message name="echoDateSoapOut">
    <wsdl:part name="parameters" element="tns:echoDateResponse" />
  </wsdl:message>
  <wsdl:message name="echoComplexTypeSoapIn">
    <wsdl:part name="parameters" element="tns:echoComplexType" />
  </wsdl:message>
  <wsdl:message name="echoComplexTypeSoapOut">
    <wsdl:part name="parameters" element="tns:echoComplexTypeResponse" />
  </wsdl:message>
  <wsdl:message name="echoIntegerMultiOccursSoapIn">
    <wsdl:part name="parameters" element="tns:echoIntegerMultiOccurs" />
  </wsdl:message>
  <wsdl:message name="echoIntegerMultiOccursSoapOut">
    <wsdl:part name="parameters" element="tns:echoIntegerMultiOccursResponse" />
  </wsdl:message>
  <wsdl:message name="echoFloatMultiOccursSoapIn">
    <wsdl:part name="parameters" element="tns:echoFloatMultiOccurs" />
  </wsdl:message>
  <wsdl:message name="echoFloatMultiOccursSoapOut">
    <wsdl:part name="parameters" element="tns:echoFloatMultiOccursResponse" />
  </wsdl:message>
  <wsdl:message name="echoStringMultiOccursSoapIn">
    <wsdl:part name="parameters" element="tns:echoStringMultiOccurs" />
  </wsdl:message>
  <wsdl:message name="echoStringMultiOccursSoapOut">
    <wsdl:part name="parameters" element="tns:echoStringMultiOccursResponse" />
  </wsdl:message>
  <wsdl:message name="echoComplexTypeMultiOccursSoapIn">
    <wsdl:part name="parameters" element="tns:echoComplexTypeMultiOccurs" />
  </wsdl:message>
  <wsdl:message name="echoComplexTypeMultiOccursSoapOut">
    <wsdl:part name="parameters" element="tns:echoComplexTypeMultiOccursResponse" />
  </wsdl:message>
  <wsdl:message name="echoDecimalSoapIn">
    <wsdl:part name="parameters" element="tns:echoDecimal" />
  </wsdl:message>
  <wsdl:message name="echoDecimalSoapOut">
    <wsdl:part name="parameters" element="tns:echoDecimalResponse" />
  </wsdl:message>
  <wsdl:message name="echoBooleanSoapIn">
    <wsdl:part name="parameters" element="tns:echoBoolean" />
  </wsdl:message>
  <wsdl:message name="echoBooleanSoapOut">
    <wsdl:part name="parameters" element="tns:echoBooleanResponse" />
  </wsdl:message>
  <wsdl:message name="echoHexBinarySoapIn">
    <wsdl:part name="parameters" element="tns:echoHexBinary" />
  </wsdl:message>
  <wsdl:message name="echoHexBinarySoapOut">
    <wsdl:part name="parameters" element="tns:echoHexBinaryResponse" />
  </wsdl:message>
  <wsdl:message name="echoComplexTypeAsSimpleTypesSoapIn">
    <wsdl:part name="parameters" element="tns:echoComplexTypeAsSimpleTypes" />
  </wsdl:message>
  <wsdl:message name="echoComplexTypeAsSimpleTypesSoapOut">
    <wsdl:part name="parameters" element="tns:echoComplexTypeAsSimpleTypesResponse" />
  </wsdl:message>
  <wsdl:message name="echoSimpleTypesAsComplexTypeSoapIn">
    <wsdl:part name="parameters" element="tns:echoSimpleTypesAsComplexType" />
  </wsdl:message>
  <wsdl:message name="echoSimpleTypesAsComplexTypeSoapOut">
    <wsdl:part name="parameters" element="tns:echoSimpleTypesAsComplexTypeResponse" />
  </wsdl:message>
  <wsdl:message name="echoNestedComplexTypeSoapIn">
    <wsdl:part name="parameters" element="tns:echoNestedComplexType" />
  </wsdl:message>
  <wsdl:message name="echoNestedComplexTypeSoapOut">
    <wsdl:part name="parameters" element="tns:echoNestedComplexTypeResponse" />
  </wsdl:message>
  <wsdl:message name="echoNestedMultiOccursSoapIn">
    <wsdl:part name="parameters" element="tns:echoNestedMultiOccurs" />
  </wsdl:message>
  <wsdl:message name="echoNestedMultiOccursSoapOut">
    <wsdl:part name="parameters" element="tns:echoNestedMultiOccursResponse" />
  </wsdl:message>
  <wsdl:message name="echoChoiceSoapIn">
    <wsdl:part name="parameters" element="tns:echoChoice" />
  </wsdl:message>
  <wsdl:message name="echoChoiceSoapOut">
    <wsdl:part name="parameters" element="tns:echoChoiceResponse" />
  </wsdl:message>
  <wsdl:message name="echoEnumSoapIn">
    <wsdl:part name="parameters" element="tns:echoEnum" />
  </wsdl:message>
  <wsdl:message name="echoEnumSoapOut">
    <wsdl:part name="parameters" element="tns:echoEnumResponse" />
  </wsdl:message>
  <wsdl:message name="echoAnyTypeSoapIn">
    <wsdl:part name="parameters" element="tns:echoAnyType" />
  </wsdl:message>
  <wsdl:message name="echoAnyTypeSoapOut">
    <wsdl:part name="parameters" element="tns:echoAnyTypeResponse" />
  </wsdl:message>
  <wsdl:message name="echoAnyElementSoapIn">
    <wsdl:part name="parameters" element="tns:echoAnyElement" />
  </wsdl:message>
  <wsdl:message name="echoAnyElementSoapOut">
    <wsdl:part name="parameters" element="tns:echoAnyElementResponse" />
  </wsdl:message>
  <wsdl:message name="echoVoidSoapHeaderSoapIn">
    <wsdl:part name="parameters" element="s2:echoVoidSoapHeader" />
  </wsdl:message>
  <wsdl:message name="echoVoidSoapHeaderSoapOut">
    <wsdl:part name="parameters" element="tns:echoVoidSoapHeaderResponse" />
  </wsdl:message>
  <wsdl:message name="echoVoidSoapHeaderechoMeComplexTypeRequest">
    <wsdl:part name="echoMeComplexTypeRequest" element="tns:echoMeComplexTypeRequest" />
  </wsdl:message>
  <wsdl:message name="echoVoidSoapHeaderechoMeComplexTypeResponse">
    <wsdl:part name="echoMeComplexTypeResponse" element="tns:echoMeComplexTypeResponse" />
  </wsdl:message>
  <wsdl:message name="echoVoidSoapHeaderechoMeStringRequest">
    <wsdl:part name="echoMeStringRequest" element="tns:echoMeStringRequest" />
  </wsdl:message>
  <wsdl:message name="echoVoidSoapHeaderechoMeStringResponse">
    <wsdl:part name="echoMeStringResponse" element="tns:echoMeStringResponse" />
  </wsdl:message>
  <wsdl:portType name="Round4XSDTestSoap">
    <wsdl:operation name="echoVoid">
      <wsdl:input message="tns:echoVoidSoapIn" />
      <wsdl:output message="tns:echoVoidSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoInteger">
      <wsdl:input message="tns:echoIntegerSoapIn" />
      <wsdl:output message="tns:echoIntegerSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoFloat">
      <wsdl:input message="tns:echoFloatSoapIn" />
      <wsdl:output message="tns:echoFloatSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoString">
      <wsdl:input message="tns:echoStringSoapIn" />
      <wsdl:output message="tns:echoStringSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoBase64">
      <wsdl:input message="tns:echoBase64SoapIn" />
      <wsdl:output message="tns:echoBase64SoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoDate">
      <wsdl:input message="tns:echoDateSoapIn" />
      <wsdl:output message="tns:echoDateSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoComplexType">
      <wsdl:input message="tns:echoComplexTypeSoapIn" />
      <wsdl:output message="tns:echoComplexTypeSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoIntegerMultiOccurs">
      <wsdl:input message="tns:echoIntegerMultiOccursSoapIn" />
      <wsdl:output message="tns:echoIntegerMultiOccursSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoFloatMultiOccurs">
      <wsdl:input message="tns:echoFloatMultiOccursSoapIn" />
      <wsdl:output message="tns:echoFloatMultiOccursSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoStringMultiOccurs">
      <wsdl:input message="tns:echoStringMultiOccursSoapIn" />
      <wsdl:output message="tns:echoStringMultiOccursSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoComplexTypeMultiOccurs">
      <wsdl:input message="tns:echoComplexTypeMultiOccursSoapIn" />
      <wsdl:output message="tns:echoComplexTypeMultiOccursSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoDecimal">
      <wsdl:input message="tns:echoDecimalSoapIn" />
      <wsdl:output message="tns:echoDecimalSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoBoolean">
      <wsdl:input message="tns:echoBooleanSoapIn" />
      <wsdl:output message="tns:echoBooleanSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoHexBinary">
      <wsdl:input message="tns:echoHexBinarySoapIn" />
      <wsdl:output message="tns:echoHexBinarySoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoComplexTypeAsSimpleTypes">
      <wsdl:input message="tns:echoComplexTypeAsSimpleTypesSoapIn" />
      <wsdl:output message="tns:echoComplexTypeAsSimpleTypesSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoSimpleTypesAsComplexType">
      <wsdl:input message="tns:echoSimpleTypesAsComplexTypeSoapIn" />
      <wsdl:output message="tns:echoSimpleTypesAsComplexTypeSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoNestedComplexType">
      <wsdl:input message="tns:echoNestedComplexTypeSoapIn" />
      <wsdl:output message="tns:echoNestedComplexTypeSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoNestedMultiOccurs">
      <wsdl:input message="tns:echoNestedMultiOccursSoapIn" />
      <wsdl:output message="tns:echoNestedMultiOccursSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoChoice">
      <wsdl:input message="tns:echoChoiceSoapIn" />
      <wsdl:output message="tns:echoChoiceSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoEnum">
      <wsdl:input message="tns:echoEnumSoapIn" />
      <wsdl:output message="tns:echoEnumSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoAnyType">
      <wsdl:input message="tns:echoAnyTypeSoapIn" />
      <wsdl:output message="tns:echoAnyTypeSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoAnyElement">
      <wsdl:input message="tns:echoAnyElementSoapIn" />
      <wsdl:output message="tns:echoAnyElementSoapOut" />
    </wsdl:operation>
    <wsdl:operation name="echoVoidSoapHeader">
      <wsdl:input message="tns:echoVoidSoapHeaderSoapIn" />
      <wsdl:output message="tns:echoVoidSoapHeaderSoapOut" />
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="Round4XSDTestSoap" type="tns:Round4XSDTestSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="echoVoid">
      <soap:operation soapAction="http://soapinterop.org/echoVoid" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoInteger">
      <soap:operation soapAction="http://soapinterop.org/echoInteger" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoFloat">
      <soap:operation soapAction="http://soapinterop.org/echoFloat" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoString">
      <soap:operation soapAction="http://soapinterop.org/echoString" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoBase64">
      <soap:operation soapAction="http://soapinterop.org/echoBase64" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoDate">
      <soap:operation soapAction="http://soapinterop.org/echoDate" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoComplexType">
      <soap:operation soapAction="http://soapinterop.org/echoComplexType" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoIntegerMultiOccurs">
      <soap:operation soapAction="http://soapinterop.org/echoIntegerMultiOccurs" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoFloatMultiOccurs">
      <soap:operation soapAction="http://soapinterop.org/echoFloatMultiOccurs" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoStringMultiOccurs">
      <soap:operation soapAction="http://soapinterop.org/echoStringMultiOccurs" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoComplexTypeMultiOccurs">
      <soap:operation soapAction="http://soapinterop.org/echoComplexTypeMultiOccurs" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoDecimal">
      <soap:operation soapAction="http://soapinterop.org/echoDecimal" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoBoolean">
      <soap:operation soapAction="http://soapinterop.org/echoBoolean" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoHexBinary">
      <soap:operation soapAction="http://soapinterop.org/echoHexBinary" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoComplexTypeAsSimpleTypes">
      <soap:operation soapAction="http://soapinterop.org/echoComplexTypeAsSimpleTypes" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoSimpleTypesAsComplexType">
      <soap:operation soapAction="http://soapinterop.org/echoSimpleTypesAsComplexType" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoNestedComplexType">
      <soap:operation soapAction="http://soapinterop.org/echoNestedComplexType" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoNestedMultiOccurs">
      <soap:operation soapAction="http://soapinterop.org/echoNestedMultiOccurs" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoChoice">
      <soap:operation soapAction="http://soapinterop.org/echoChoice" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoEnum">
      <soap:operation soapAction="http://soapinterop.org/echoEnum" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoAnyType">
      <soap:operation soapAction="http://soapinterop.org/echoAnyType" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoAnyElement">
      <soap:operation soapAction="http://soapinterop.org/echoAnyElement" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoVoidSoapHeader">
      <soap:operation soapAction="http://soapinterop.org" style="document" />
      <wsdl:input>
        <soap:body use="literal" />
        <soap:header message="tns:echoVoidSoapHeaderechoMeComplexTypeRequest" part="echoMeComplexTypeRequest" use="literal" />
        <soap:header message="tns:echoVoidSoapHeaderechoMeStringRequest" part="echoMeStringRequest" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" />
        <soap:header message="tns:echoVoidSoapHeaderechoMeComplexTypeResponse" part="echoMeComplexTypeResponse" use="literal" />
        <soap:header message="tns:echoVoidSoapHeaderechoMeStringResponse" part="echoMeStringResponse" use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:binding name="Round4XSDTestSoap12" type="tns:Round4XSDTestSoap">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <wsdl:operation name="echoVoid">
      <soap12:operation soapAction="http://soapinterop.org/echoVoid" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoInteger">
      <soap12:operation soapAction="http://soapinterop.org/echoInteger" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoFloat">
      <soap12:operation soapAction="http://soapinterop.org/echoFloat" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoString">
      <soap12:operation soapAction="http://soapinterop.org/echoString" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoBase64">
      <soap12:operation soapAction="http://soapinterop.org/echoBase64" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoDate">
      <soap12:operation soapAction="http://soapinterop.org/echoDate" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoComplexType">
      <soap12:operation soapAction="http://soapinterop.org/echoComplexType" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoIntegerMultiOccurs">
      <soap12:operation soapAction="http://soapinterop.org/echoIntegerMultiOccurs" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoFloatMultiOccurs">
      <soap12:operation soapAction="http://soapinterop.org/echoFloatMultiOccurs" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoStringMultiOccurs">
      <soap12:operation soapAction="http://soapinterop.org/echoStringMultiOccurs" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoComplexTypeMultiOccurs">
      <soap12:operation soapAction="http://soapinterop.org/echoComplexTypeMultiOccurs" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoDecimal">
      <soap12:operation soapAction="http://soapinterop.org/echoDecimal" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoBoolean">
      <soap12:operation soapAction="http://soapinterop.org/echoBoolean" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoHexBinary">
      <soap12:operation soapAction="http://soapinterop.org/echoHexBinary" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoComplexTypeAsSimpleTypes">
      <soap12:operation soapAction="http://soapinterop.org/echoComplexTypeAsSimpleTypes" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoSimpleTypesAsComplexType">
      <soap12:operation soapAction="http://soapinterop.org/echoSimpleTypesAsComplexType" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoNestedComplexType">
      <soap12:operation soapAction="http://soapinterop.org/echoNestedComplexType" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoNestedMultiOccurs">
      <soap12:operation soapAction="http://soapinterop.org/echoNestedMultiOccurs" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoChoice">
      <soap12:operation soapAction="http://soapinterop.org/echoChoice" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoEnum">
      <soap12:operation soapAction="http://soapinterop.org/echoEnum" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoAnyType">
      <soap12:operation soapAction="http://soapinterop.org/echoAnyType" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoAnyElement">
      <soap12:operation soapAction="http://soapinterop.org/echoAnyElement" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="echoVoidSoapHeader">
      <soap12:operation soapAction="http://soapinterop.org" style="document" />
      <wsdl:input>
        <soap12:body use="literal" />
        <soap12:header message="tns:echoVoidSoapHeaderechoMeComplexTypeRequest" part="echoMeComplexTypeRequest" use="literal" />
        <soap12:header message="tns:echoVoidSoapHeaderechoMeStringRequest" part="echoMeStringRequest" use="literal" />
      </wsdl:input>
      <wsdl:output>
        <soap12:body use="literal" />
        <soap12:header message="tns:echoVoidSoapHeaderechoMeComplexTypeResponse" part="echoMeComplexTypeResponse" use="literal" />
        <soap12:header message="tns:echoVoidSoapHeaderechoMeStringResponse" part="echoMeStringResponse" use="literal" />
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="Round4XSDTest">
    <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">These operations implement DOC/LIT SOAP operations, for interop testing. Please email Abu.Obeida@microsoft.com with any questions/coments.</wsdl:documentation>
    <wsdl:port name="Round4XSDTestSoap" binding="tns:Round4XSDTestSoap">
      <soap:address location="http://wsetesting/asmx/xsd/round4XSD.asmx" />
    </wsdl:port>
    <wsdl:port name="Round4XSDTestSoap12" binding="tns:Round4XSDTestSoap12">
      <soap12:address location="http://wsetesting/asmx/xsd/round4XSD.asmx" />
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>