<?xml version="1.0" ?>

<definitions 
    name="name clash test"
    targetNamespace="urn:clash.wsdl.test"
    xmlns:tns="urn:clash.wsdl.test"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns="http://schemas.xmlsoap.org/wsdl/">

    <!-- Test Name clases in WSDL to make sure we munge names correctly -->

  <!-- type defs -->
  <types>
    <xsd:schema targetNamespace="urn:clash.wsdl.test"
                xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:complexType name="sharedName">
        <xsd:all>
          <xsd:element name="sharedName" type="xsd:int"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:element name="sharedName">
        <xsd:complexType>
          <xsd:all>
            <xsd:element name="sharedName" type="xsd:int"/>
          </xsd:all>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="another">
        <xsd:complexType>
          <xsd:all>
            <xsd:element name="sharedName" type="xsd:boolean"/>
          </xsd:all>
        </xsd:complexType>
      </xsd:element>
        <!-- This element shares the same element and attribute name -->
        <!-- WSDL2Java should munge the duplicate name and make it unque -->
        <xsd:complexType name="sayHello">
          <xsd:sequence>
            <xsd:element name="string_1" type="xsd:string" nillable="true"/>
            <xsd:element name="string_2" type="xsd:string" nillable="true"/>
          </xsd:sequence>
          <xsd:attribute name="string_1" type="xsd:string" use="required"/>
        </xsd:complexType>
    </xsd:schema>
  </types>

  <!-- message declns -->
  <message name="empty"/>

  <message name="sharedName">
    <part name="sharedName" type="tns:sharedName"/>
  </message>
  <message name="anotherMessage">
    <part name="sharedName" type="xsd:int"/>
  </message>
  <message name="InputMessage">
      <part name="in1" type="tns:sayHello"/>
  </message>

  <!-- port type declns -->
  <portType name="sharedName">
    <operation name="sharedName">
      <input name="sharedNameIn" message="tns:empty"/>
      <output name="sharedNameOut" message="tns:sharedName"/>
    </operation>
    <operation name="sharedName">
      <input name="sharedNameIn2" message="tns:sharedName"/>
      <output name="emptyOut2" message="tns:empty"/>
    </operation>
    <operation name="sharedName">
      <input name="anotherIn3" message="tns:anotherMessage"/>
      <output name="emptyOut3" message="tns:empty"/>
    </operation>
      <operation name="op1">
          <input name="In4" message="tns:InputMessage"/>
          <output name="Out4" message="tns:empty"/>
      </operation>
  </portType>

  <!-- binding declns -->
  <binding name="nonSharedName" type="tns:sharedName">
    <soap:binding
        style="rpc"
        transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sharedName">
      <input name="sharedNameIn">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </input>
      <output name="sharedNameOut">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </output>
    </operation>
    <operation name="sharedName">
      <input name="sharedNameIn2">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </input>
      <output name="emptyOut2">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </output>
    </operation>
    <operation name="sharedName">
      <input name="anotherIn3">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </input>
      <output name="emptyOut3">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </output>
    </operation>
      <operation name="op1">
        <input name="In4">
          <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
        </input>
        <output name="Out4">
          <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
        </output>
      </operation>
  </binding>


  <binding name="anotherNonSharedName" type="tns:sharedName">
    <soap:binding
        style="rpc"
        transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="sharedName">
      <input name="sharedNameIn">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </input>
      <output name="sharedNameOut">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </output>
    </operation>
    <operation name="sharedName">
      <input name="sharedNameIn2">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </input>
      <output name="emptyOut2">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </output>
    </operation>
    <operation name="sharedName">
      <input name="anotherIn3">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </input>
      <output name="emptyOut3">
        <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
      </output>
    </operation>
    <operation name="op1">
       <input name="In4">
         <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
       </input>
       <output name="Out4">
         <soap:body use="encoded" namespace="urn:clash.wsdl.test"/>
       </output>
    </operation>
  </binding>

  <!-- service declarations -->
  <service name="sharedName">
    <port name="nonSharedName" binding="tns:nonSharedName">
      <soap:address location="http://localhost:8080/axis/services/nonSharedName"/>
    </port>
    <port name="anotherNonSharedName" binding="tns:anotherNonSharedName">
      <soap:address location="http://localhost:8080/axis/services/anotherNonSharedName"/>
    </port>
  </service>

</definitions>

