<?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:jaxb="http://java.sun.com/xml/ns/jaxb"  jaxb:version="2.0"
      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"/>
         
<!-- Using schema binding to change the package name for jaxb art effects -->		
		<jaxb:schemaBindings>
			<jaxb:package name = "org.test.echomessage" />
		</jaxb:schemaBindings>
      </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>
