<?xml version="1.0" encoding="utf-8"?>
<definitions 
        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:tns="http://soapinterop.org/"
	xmlns:ns0="http://soapinterop.org/intermediarytest/"
	xmlns:ns1="http://soapinterop.org/echoheader/"
	targetNamespace="http://soapinterop.org/"
	xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>

    <xs:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/intermediarytest/">

      <xs:element name="echoString">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="inputString" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <xs:element name="echoStringResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="return" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <xs:element name="endpoint">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="url" type="xs:anyURI" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>

    </xs:schema>

    <xs:schema elementFormDefault="qualified" targetNamespace="http://soapinterop.org/echoheader/">
 
      <xs:complexType name="echoMeStringRequest">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="varString" type="xs:string" />
        </xs:sequence>
      </xs:complexType>

      <xs:complexType name="echoMeStringResponse">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="varString" type="xs:string" />
        </xs:sequence>
      </xs:complexType>

    </xs:schema>

  </types>


  <message name="echoStringIn">
    <part name="parameters" element="ns0:echoString" />
  </message>
  <message name="echoStringOut">
    <part name="parameters" element="ns0:echoStringResponse" />
  </message>

  <message name="echoMeStringRequest">
    <part name="echoMeStringRequest" element="ns1:echoMeStringRequest" />
  </message>
  <message name="echoMeStringResponse">
    <part name="echoMeStringResponse" element="ns1:echoMeStringResponse" />
  </message>

  <message name="endpointRequest">
    <part name="endpointURL" element="ns0:endpoint" />
  </message>

  <portType name="IntermediaryTest">
    <operation name="echoString">
      <input message="tns:echoStringIn" />
      <output message="tns:echoStringOut" />
    </operation>
  </portType>

  <binding name="IntermediaryTestSoapBinding" type="tns:IntermediaryTest">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
    <operation name="echoString">
      <soap:operation soapAction="http://soapinterop.org/echoString" style="document" />
      <input>
        <soap:body use="literal" />
        <soap:header message="tns:endpointRequest" part="endpointURL" use="literal" />
        <soap:header message="tns:echoMeStringRequest" part="echoMeStringRequest" use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
        <soap:header message="tns:echoMeStringResponse" part="echoMeStringResponse" use="literal" />
      </output>
    </operation>
  </binding>

  <service name="IntermediaryTestSvc">
    <port name="IntermediaryTestSoapPort" binding="tns:IntermediaryTestSoapBinding">
      <soap:address location="PUT_ENDPOINT_URL_HERE" />
    </port>
  </service>

</definitions>