<?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
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://soapinterop.org/wsdl"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:ns2="http://soapinterop.org/types"
    xmlns:ns3="http://soapinterop.org/types/part"
    xmlns:ns4="http://soapinterop.org/types/requestresponse"
    targetNamespace="http://soapinterop.org/wsdl">
    <types>
        <schema
            xmlns="http://www.w3.org/2001/XMLSchema"
            xmlns:tns="http://soapinterop.org/types"
            targetNamespace="http://soapinterop.org/types">

            <complexType name="ArrayOfString">
                <sequence>
                    <element name="value" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/>
                </sequence>
            </complexType>

            <complexType name="ArrayOfInt">
                <sequence>
                    <element name="value" minOccurs="0" maxOccurs="unbounded" type="xsd:int"/>
                </sequence>
            </complexType>

            <complexType name="ArrayOfFloat">
                <sequence>
                    <element name="value" minOccurs="0" maxOccurs="unbounded" type="xsd:float"/>
                </sequence>
            </complexType>

            <simpleType name="Enum">
                <restriction base="xsd:int">
                    <enumeration value="1"/>
                    <enumeration value="2"/>
                </restriction>
            </simpleType>

        </schema>

        <schema
            xmlns="http://www.w3.org/2001/XMLSchema"
            xmlns:tns="http://soapinterop.org/types/part"
            targetNamespace="http://soapinterop.org/types/part">

            <element name="EmptyPart">
                <complexType/>
            </element>

            <element name="StringPart" type="xsd:string"/>
            <element name="IntPart" type="xsd:int"/>
            <element name="FloatPart" type="xsd:float"/>
            <element name="ArrayOfStringPart" type="ns2:ArrayOfString"/>
            <element name="ArrayOfIntPart" type="ns2:ArrayOfInt"/>
            <element name="ArrayOfFloatPart" type="ns2:ArrayOfFloat"/>
            <element name="String2Part" type="xsd:string"/>
            <element name="EnumPart" type="ns2:Enum"/>

        </schema>

        <schema
            xmlns="http://www.w3.org/2001/XMLSchema"
            xmlns:tns="http://soapinterop.org/types/requestresponse"
            targetNamespace="http://soapinterop.org/types/requestresponse">

            <element name="echoEmptyFaultRequest">
                <complexType/>
            </element>
            <element name="echoEmptyFaultResponse">
                <complexType/>
            </element>

            <element name="echoStringFaultRequest" type="xsd:string"/>
            <element name="echoStringFaultResponse">
                <complexType/>
            </element>

            <element name="echoIntArrayFaultRequest" type="ns2:ArrayOfInt"/>
            <element name="echoIntArrayFaultResponse">
                <complexType/>
            </element>

            <element name="echoMultipleFaults1Request">
                <complexType>
                    <sequence>
                        <element name="whichFault" type="xsd:int"/>
                        <element name="param1" type="xsd:string"/>
                        <element name="param2" type="ns2:ArrayOfFloat"/>
                    </sequence>
                </complexType>
            </element>
            <element name="echoMultipleFaults1Response">
                <complexType/>
            </element>

            <element name="echoMultipleFaults2Request">
                <complexType>
                    <sequence>
                        <element name="whichFault" type="xsd:int"/>
                        <element name="param1" type="xsd:string"/>
                        <element name="param2" type="xsd:float"/>
                        <element name="param3" type="ns2:ArrayOfString"/>
                    </sequence>
                </complexType>
            </element>
            <element name="echoMultipleFaults2Response">
                <complexType/>
            </element>

            <element name="echoMultipleFaults3Request">
                <complexType>
                    <sequence>
                        <element name="whichFault" type="xsd:int"/>
                        <element name="param1" type="xsd:string"/>
                        <element name="param2" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
            <element name="echoMultipleFaults3Response">
                <complexType/>
            </element>

            <element name="echoMultipleFaults4Request">
                <complexType>
                    <sequence>
                        <element name="whichFault" type="xsd:int"/>
                        <element name="param1" type="xsd:int"/>
                        <element name="param2" type="ns2:Enum"/>
                    </sequence>
                </complexType>
            </element>
            <element name="echoMultipleFaults4Response">
                <complexType/>
            </element>

        </schema>
    </types>

    <message name="echoEmptyFaultRequest">
        <part name="param" element="ns4:echoEmptyFaultRequest"/>
    </message>
    <message name="echoEmptyFaultResponse">
        <part name="param" element="ns4:echoEmptyFaultResponse"/>
    </message>

    <message name="echoStringFaultRequest">
        <part name="param" element="ns4:echoStringFaultRequest"/>
    </message>
    <message name="echoStringFaultResponse">
        <part name="param" element="ns4:echoStringFaultResponse"/>
    </message>

    <message name="echoIntArrayFaultRequest">
        <part name="param" element="ns4:echoIntArrayFaultRequest"/>
    </message>
    <message name="echoIntArrayFaultResponse">
        <part name="param" element="ns4:echoIntArrayFaultResponse"/>
    </message>

    <message name="echoMultipleFaults1Request">
        <part name="param" element="ns4:echoMultipleFaults1Request"/>
    </message>
    <message name="echoMultipleFaults1Response">
        <part name="param" element="ns4:echoMultipleFaults1Response"/>
    </message>

    <message name="echoMultipleFaults2Request">
        <part name="param" element="ns4:echoMultipleFaults2Request"/>
    </message>
    <message name="echoMultipleFaults2Response">
        <part name="param" element="ns4:echoMultipleFaults2Response"/>
    </message>

    <message name="echoMultipleFaults3Request">
        <part name="param" element="ns4:echoMultipleFaults3Request"/>
    </message>
    <message name="echoMultipleFaults3Response">
        <part name="param" element="ns4:echoMultipleFaults3Response"/>
    </message>

    <message name="echoMultipleFaults4Request">
        <part name="param" element="ns4:echoMultipleFaults4Request"/>
    </message>
    <message name="echoMultipleFaults4Response">
        <part name="param" element="ns4:echoMultipleFaults4Response"/>
    </message>

    <!-- Fault messages -->
    <message name="EmptyFault">
        <part name="part1" element="ns3:EmptyPart"/>
    </message>
    <message name="StringFault">
        <part name="part2" element="ns3:StringPart"/>
    </message>
    <message name="IntFault">
        <part name="part3" element="ns3:IntPart"/>
    </message>
    <message name="FloatFault">
        <part name="part4" element="ns3:FloatPart"/>
    </message>
    <message name="StringArrayFault">
        <part name="part5" element="ns3:ArrayOfStringPart"/>
    </message>
    <message name="IntArrayFault">
        <part name="part6" element="ns3:ArrayOfIntPart"/>
    </message>
    <message name="FloatArrayFault">
        <part name="part7" element="ns3:ArrayOfFloatPart"/>
    </message>
    <!--
        Part name same as in Fault2 message
    -->
    <message name="String2Fault">
        <part name="part2" element="ns3:String2Part"/>
    </message>
    <message name="EnumFault">
        <part name="part9" element="ns3:EnumPart"/>
    </message>

    <portType name="SimpleDocLitPortType">
        <!--
            Throws an empty fault
        -->
        <operation name="echoEmptyFault" parameterOrder="">
            <input message="tns:echoEmptyFaultRequest"/>
            <output message="tns:echoEmptyFaultResponse"/>
            <fault name="SimpleFault" message="tns:EmptyFault"/>
        </operation>

        <!--
            Throws fault with xsd:string parameter
        -->
        <operation name="echoStringFault" parameterOrder="param">
            <input message="tns:echoStringFaultRequest"/>
            <output message="tns:echoStringFaultResponse"/>
            <fault name="SimpleFault" message="tns:StringFault"/>
        </operation>

        <!--
            Throws fault with xsd:int[] parameter
        -->
        <operation name="echoIntArrayFault" parameterOrder="param">
            <input message="tns:echoIntArrayFaultRequest"/>
            <output message="tns:echoIntArrayFaultResponse"/>
            <fault name="SimpleFault" message="tns:IntArrayFault"/>
        </operation>

        <!--
            Throws empty fault, fault with a xsd:string
            parameter and fault with xsd:float[] parameter
        -->
        <operation name="echoMultipleFaults1" parameterOrder="param">
            <input message="tns:echoMultipleFaults1Request"/>
            <output message="tns:echoMultipleFaults1Response"/>
            <fault name="SimpleFault1" message="tns:EmptyFault"/>
            <fault name="SimpleFault2" message="tns:StringFault"/>
            <fault name="SimpleFault3" message="tns:FloatArrayFault"/>
        </operation>

        <!--
            Throws fault with xsd:string parameter, fault with
            xsd:float parameter and fault with xsd:string[]
            parameters
        -->
        <operation name="echoMultipleFaults2" parameterOrder="param">
            <input message="tns:echoMultipleFaults2Request"/>
            <output message="tns:echoMultipleFaults2Response"/>
            <fault name="SimpleFault1" message="tns:StringFault"/>
            <fault name="SimpleFault2" message="tns:FloatFault"/>
            <fault name="SimpleFault3" message="tns:StringArrayFault"/>
        </operation>

        <!--
            Throws two faults, each with xsd:string parameters
            and same part names
        -->
        <operation name="echoMultipleFaults3" parameterOrder="param">
            <input message="tns:echoMultipleFaults3Request"/>
            <output message="tns:echoMultipleFaults3Response"/>
            <fault name="SimpleFault1" message="tns:StringFault"/>
            <fault name="SimpleFault2" message="tns:String2Fault"/>
        </operation>

        <!--
            Throws fault with xsd:int parameter and fault with an
            int enumeration parameter
        -->
        <operation name="echoMultipleFaults4" parameterOrder="param">
            <input message="tns:echoMultipleFaults4Request"/>
            <output message="tns:echoMultipleFaults4Response"/>
            <fault name="SimpleFault1" message="tns:IntFault"/>
            <fault name="SimpleFault2" message="tns:EnumFault"/>
        </operation>
    </portType>

    <binding name="SimpleDocLitBinding" type="tns:SimpleDocLitPortType">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>

        <operation name="echoEmptyFault">
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="SimpleFault">
                <soap:fault name="SimpleFault" use="literal"/>
            </fault>
            <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
        </operation>

        <operation name="echoStringFault">
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="SimpleFault">
                <soap:fault name="SimpleFault" use="literal"/>
            </fault>
            <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
        </operation>

        <operation name="echoIntArrayFault">
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="SimpleFault">
                <soap:fault name="SimpleFault" use="literal"/>
            </fault>
            <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
        </operation>

        <operation name="echoMultipleFaults1">
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="SimpleFault1">
                <soap:fault name="SimpleFault1" use="literal"/>
            </fault>
            <fault name="SimpleFault2">
                <soap:fault name="SimpleFault2" use="literal"/>
            </fault>
            <fault name="SimpleFault3">
                <soap:fault name="SimpleFault3" use="literal"/>
            </fault>
            <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
        </operation>

        <operation name="echoMultipleFaults2">
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="SimpleFault1">
                <soap:fault name="SimpleFault1" use="literal"/>
            </fault>
            <fault name="SimpleFault2">
                <soap:fault name="SimpleFault2" use="literal"/>
            </fault>
            <fault name="SimpleFault3">
                <soap:fault name="SimpleFault3" use="literal"/>
            </fault>
            <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
        </operation>

        <operation name="echoMultipleFaults3">
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="SimpleFault1">
                <soap:fault name="SimpleFault1" use="literal"/>
            </fault>
            <fault name="SimpleFault2">
                <soap:fault name="SimpleFault2" use="literal"/>
            </fault>
            <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
        </operation>

        <operation name="echoMultipleFaults4">
            <input>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
            <fault name="SimpleFault1">
                <soap:fault name="SimpleFault1" use="literal"/>
            </fault>
            <fault name="SimpleFault2">
                <soap:fault name="SimpleFault2" use="literal"/>
            </fault>
            <soap:operation soapAction="http://soapinterop.org/r4/groupg/"/>
        </operation>

    </binding>

    <service name="SimpleDocLitService">
        <port name="SimpleDocLitPort" binding="tns:SimpleDocLitBinding">
            <soap:address
                location="http://localhost:8080/axis/services/SimpleDocLitPort"/>
        </port>
    </service>
</definitions>

