<?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.
  -->

<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://apache.org/axis2/jaxws/sample/dlwmin" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:types="http://apache.org/axis2/jaxws/sample/dlwmin/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://apache.org/axis2/jaxws/sample/dlwmin" name="HelloWorld">
    <wsdl:types/>
    <wsdl:types>
        <schema targetNamespace="http://apache.org/axis2/jaxws/sample/dlwmin" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:types="http://apache.org/axis2/jaxws/sample/dlwmin/types" elementFormDefault="qualified">
            <import namespace="http://apache.org/axis2/jaxws/sample/dlwmin/types" schemaLocation="greeterTypes.xsd"/>
            <element name="greetMe">
                <complexType>
                    <sequence>
                        <element name="requestType" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
            <element name="greetMeResponse">
                <complexType>
                    <sequence>
                        <element name="responseType" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
            <element name="testUnqualified">
                <complexType>
                    <sequence>
                        <element name="unqualifiedRequest" form="unqualified" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
            <element name="testUnqualifiedResponse">
                <complexType>
                    <sequence>
                        <element name="unqualifiedResponse" form="unqualified" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
            <element name="process">
                <complexType>
                    <sequence>
                        <element name="inAction" form="unqualified" type="xsd:int"/>
                        <element name="in" form="unqualified" type="types:testBean"/>
                    </sequence>
                </complexType>
            </element>
            <element name="processResponse">
                <complexType>
                    <sequence>
                        <element name="out" form="unqualified" type="types:testBean"/>
                    </sequence>
                </complexType>
            </element>
            <element name="processFault">
                <complexType>
                    <sequence>
                        <element name="flag" form="unqualified" type="xsd:int"/>
                        <element name="message" form="unqualified" type="xsd:string"/>
                    </sequence>
                </complexType>
            </element>
        </schema>
    </wsdl:types>
    <wsdl:message name="greetMeRequest">
        <wsdl:part name="in" element="tns:greetMe"/>
    </wsdl:message>
    <wsdl:message name="greetMeResponse">
        <wsdl:part name="out" element="tns:greetMeResponse"/>
    </wsdl:message>
    <wsdl:message name="testUnqualifiedRequest">
        <wsdl:part name="in" element="tns:testUnqualified"/>
    </wsdl:message>
    <wsdl:message name="testUnqualifiedResponse">
        <wsdl:part name="out" element="tns:testUnqualifiedResponse"/>
    </wsdl:message>
    <wsdl:message name="processRequest">
        <wsdl:part name="in" element="tns:process"/>
    </wsdl:message>
    <wsdl:message name="processResponse">
        <wsdl:part name="out" element="tns:processResponse"/>
    </wsdl:message>
    <wsdl:message name="processFault">
        <wsdl:part name="fault" element="tns:processFault"/>
    </wsdl:message>
    <wsdl:message name="processFault2">
        <wsdl:part name="fault2" element="types:processFault2"/>
    </wsdl:message>
    <wsdl:message name="processFault3">
        <wsdl:part name="fault3" element="types:processFault3"/>
    </wsdl:message>
    <wsdl:portType name="Greeter">
        <wsdl:operation name="greetMe">
            <wsdl:input name="greetMeRequest" message="tns:greetMeRequest"/>
            <wsdl:output name="greetMeResponse" message="tns:greetMeResponse"/>
        </wsdl:operation>
        <wsdl:operation name="testUnqualified">
            <wsdl:input name="testUnqualifiedRequest" message="tns:testUnqualifiedRequest"/>
            <wsdl:output name="testUnqualifiedResponse" message="tns:testUnqualifiedResponse"/>
        </wsdl:operation>
        <wsdl:operation name="process">
            <wsdl:input name="processRequest" message="tns:processRequest"/>
            <wsdl:output name="processResponse" message="tns:processResponse"/>
            <wsdl:fault name="processFault" message="tns:processFault"/>
            <wsdl:fault name="processFault2" message="tns:processFault2"/>
            <wsdl:fault name="processFault3" message="tns:processFault3"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="GreeterSOAPBinding" type="tns:Greeter">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="greetMe">
            <soap:operation soapAction="greetMe" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="testUnqualified">
            <soap:operation soapAction="testUnqualified" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="process">
            <soap:operation soapAction="process" style="document"/>
            <wsdl:input>
                <soap:body use="literal"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal"/>
            </wsdl:output>
            <fault name="processFault">
                <soap:fault name="processFault" use="literal"/>
            </fault>
            <fault name="processFault2">
                <soap:fault name="processFault2" use="literal"/>
            </fault>
            <fault name="processFault3">
                <soap:fault name="processFault3" use="literal"/>
            </fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="GreeterService">
        <wsdl:port name="GreeterPort" binding="tns:GreeterSOAPBinding">
            <soap:address location="http://localhost:6060/axis2/services/GreeterService"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>
