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

<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you under the Apache License, Version 2.0 (the
  ~ "License"); you may not use this file except in compliance
  ~ with the License. You may obtain a copy of the License at
  ~
  ~ http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing,
  ~ software distributed under the License is distributed on an
  ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  ~ KIND, either express or implied. See the License for the
  ~ specific language governing permissions and limitations
  ~ under the License.
  -->

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://test" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Test" targetNamespace="http://test">
  <wsdl:types>
    <xsd:schema targetNamespace="http://test" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <xsd:element name="echoResponse">
      	<xsd:complexType>
      		<xsd:sequence>
      			<xsd:element name="response" type="xsd:string"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
      <xsd:element name="echo">
      	<xsd:complexType>
      		<xsd:sequence>
      			<xsd:element name="input" type="xsd:string"></xsd:element>
      		</xsd:sequence>
      	</xsd:complexType>
      </xsd:element>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="echoResponse">
    <wsdl:part element="tns:echoResponse" name="echoResponse"/>
  </wsdl:message>
  <wsdl:message name="echo">
    <wsdl:part element="tns:echo" name="echo"/>
  </wsdl:message>
  <wsdl:portType name="TestPortType">
    <wsdl:operation name="echoString">
      <wsdl:input message="tns:echo"/>
      <wsdl:output message="tns:echoResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="TestBinding" type="tns:TestPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="echoString">
      <soap:operation soapAction="http://test/echoString"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="TestService">
    <wsdl:port binding="tns:TestBinding" name="TestPort">
      <soap:address location="http://localhost:6060/axis2/services/EchoService"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>