<?xml version="1.0"?>
<!--

    Copyright (c) 2017, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

<definitions name="SimpleTest"
             targetNamespace="http://SimpleTest.org/" 
	     xmlns="http://schemas.xmlsoap.org/wsdl/" 
	     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
	     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
	     xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
	     xmlns:tns="http://SimpleTest.org/" 
	     xmlns:s="http://SimpleTest.org/xsd" 
	     xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

    <types>
        <schema xmlns="http://www.w3.org/2001/XMLSchema" 
                targetNamespace="http://SimpleTest.org/xsd">

            <element name="echoString">
                <complexType>
                    <sequence>
		        <element name="inputString" 
                                 type="xsd:string" 
                                 nillable="true"/>
                    </sequence>
		</complexType>
	    </element>

	    <element name="StringResponseName">
	        <complexType>
		    <sequence>
		        <element name="responseString" 
                                 type="xsd:string" 
                                 nillable="true"/>
                    </sequence>
		</complexType>
            </element>
        </schema>
    </types>

    <message name="echoString">
        <part name="body" element="s:echoString"/>
    </message>
    <message name="echoStringResponse">
        <part name="return" element="s:StringResponseName"/>
    </message>

    <portType name="SimpleTest">
        <operation name="echoString" parameterOrder="body" >
           <input message="tns:echoString"/>
	   <output message="tns:echoStringResponse"/>
        </operation>
    </portType>

    <binding name="SimpleTestBinding" type="tns:SimpleTest">
        <soap:binding style="document" 
                      transport="http://schemas.xmlsoap.org/soap/http"/>
            <operation name="echoString">
	        <soap:operation soapAction="http://SimpleTest.org/"/>
	            <input> <soap:body use="literal"/> </input>
                    <output> <soap:body use="literal"/> </output>
            </operation>
    </binding>

    <service name="SimpleTestService">
        <port name="SimpleTestPort" binding="tns:SimpleTestBinding">
            <soap:address location="http://localhost:1024/doclit/doclit"/>
        </port>
    </service>
</definitions>
