<?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.
  -->

<definitions targetNamespace="http://anytype.test.org"
      xmlns:tns="http://anytype.test.org"
      xmlns="http://schemas.xmlsoap.org/wsdl/" 
      xmlns:xsd="http://www.w3.org/2001/XMLSchema"
      xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">

   <types>
      <xsd:schema targetNamespace="http://anytype.test.org"
         xmlns:ts="http://anytype.test.org/xsd"
         xmlns="http://www.w3.org/2001/XMLSchema"
         elementFormDefault="qualified">

         <complexType name="echoMessage">
            <sequence>
               <element name="request" type="xsd:anyType"/>
            </sequence>
         </complexType>

         <complexType name="echoMessageResponse">
            <sequence>
               <element name="response" type="xsd:anyType"/>
            </sequence>
         </complexType>

         <element name="echoMessage" type="tns:echoMessage"/>
         <element name="echoMessageResponse" type="tns:echoMessageResponse"/>

      </xsd:schema>
   </types>

   <message name="echoMessage">
      <part name="message" element="tns:echoMessage"/>
   </message>

   <message name="echoMessageResponse">
      <part name="result" element="tns:echoMessageResponse"/>
   </message>

   <portType name="AnyTypeMessagePortType">
      <operation name="echoMessage">
         <input message="tns:echoMessage" />
         <output message="tns:echoMessageResponse" />
      </operation>
   </portType>

   <binding name="AnyTypeMessageBinding" type="tns:AnyTypeMessagePortType">
      <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="echoMessage">
         <soap:operation soapAction=""/>
         <input>
            <soap:body use="literal"/>
         </input>

         <output>
            <soap:body use="literal"/>
         </output>
      </operation>
   </binding>

   <service name="AnyTypeMessageService">
      <port binding="tns:AnyTypeMessageBinding" name="AnyTypePort">
         <soap:address location="http://localhost:6060/axis2/Services/AnyTypeMessageService"/>
      </port>

   </service>

</definitions>
