<?xml version="1.0" encoding="UTF-8"?>
<definitions name="complexContent"
  targetNamespace="urn:complexContent"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:tns="urn:complexContent"
  xmlns:txd="urn:complexContent.type">

  <types>
    <schema elementFormDefault="qualified"
      xmlns="http://www.w3.org/2001/XMLSchema"
      targetNamespace="urn:complexContent.type">
      <complexType name="Base">
        <sequence>
          <element name="Id" type="xsd:string"
            nillable="false" minOccurs="0" maxOccurs="1"/>
          <element name="Type" type="xsd:string"
            nillable="true" minOccurs="0" maxOccurs="1"/>
        </sequence>
      </complexType>

      <complexType name="Derived">
        <complexContent>
          <extension base="txd:Base">
            <sequence>
              <element name="Name" type="xsd:string"/>
            </sequence>
          </extension>
        </complexContent>
      </complexType>
    </schema>

    <schema elementFormDefault="qualified"
      xmlns="http://www.w3.org/2001/XMLSchema"
      targetNamespace="urn:complexContent">
      <element name="Derived" type="txd:Derived"/>

      <element name="echo">
        <complexType>
          <sequence>
            <element name="item" type="txd:Derived"/>
          </sequence>
        </complexType>
      </element>
    </schema>
  </types>

  <message name="echoRequest">
    <part element="tns:echo" name="parameters"/>
  </message>

  <message name="echoResponse">
    <part element="tns:echo" name="parameters"/>
  </message>

  <portType name="Soap">
    <operation name="echo">
      <input  message="tns:echoRequest"/>
      <output message="tns:echoResponse"/>
    </operation>
  </portType> 

  <binding name="SoapBinding" type="tns:Soap">
    <soap:binding style="document"
      transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="echo">
      <soap:operation soapAction=""/>
      <input>
        <soap:body parts="parameters" use="literal"/>
      </input>
      <output> 
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>

  <service name="complexContentService">
    <port binding="tns:SoapBinding" name="Soap">
      <soap:address location="http://localhost:17171/"/>
    </port>
  </service>
</definitions>
