<?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://stringprovider.sample.test.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="StringProvider" targetNamespace="http://stringprovider.sample.test.org">
  <wsdl:types>
    <xsd:schema targetNamespace="http://stringprovider.sample.test.org" 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="arg" 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="StringProviderPortType">
    <wsdl:operation name="echoString">
      <wsdl:input message="tns:echo"/>
      <wsdl:output message="tns:echoResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="StringProviderBinding" type="tns:StringProviderPortType">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="echoString">
      <soap:operation soapAction="http://stringprovider.sample.test.org/echoString"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="StringProviderService">
    <wsdl:port binding="tns:StringProviderBinding" name="StringProviderPort">
      <soap:address location="http://localhost:6060/axis2/services/EchoService"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>
