<?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://nonanonymous.complextype.test.org"
      xmlns:tns="http://nonanonymous.complextype.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://nonanonymous.complextype.test.org"
         xmlns:ts="http://nonanonymous.complextype.test.org/xsd"
         xmlns="http://www.w3.org/2001/XMLSchema"
         elementFormDefault="qualified">

         <complexType name="echoMessage">
            <sequence>
               <element name="request" type="xsd:string"/>
            </sequence>
         </complexType>

         <complexType name="echoMessageResponse">
            <sequence>
               <element name="response" type="xsd:string"/>
            </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="EchoMessagePortType">
      <operation name="echoMessage">
         <input message="tns:echoMessage" />
         <output message="tns:echoMessageResponse" />
      </operation>
   </portType>

   <binding name="EchoMessageBinding" type="tns:EchoMessagePortType">
      <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="EchoMessageService">
      <port binding="tns:EchoMessageBinding" name="EchoMessagePort">
         <soap:address location="http://localhost:6060/EchoMessageService/EchoMessageService"/>
      </port>

   </service>

</definitions>
