<?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 targetNamespace="http://org/apache/axis2/jaxws/test/OMELEMENT"
    xmlns:impl="http://org/apache/axis2/jaxws/test/OMELEMENT" 
    xmlns:intf="http://org/apache/axis2/jaxws/test/OMELEMENT" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:wsdlsoap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="http://org/apache/axis2/jaxws/test/OMELEMENT" 
        xmlns="http://www.w3.org/2001/XMLSchema" 
        xmlns:impl="http://org/apache/axis2/jaxws/test/OMELEMENT" 
        xmlns:intf="http://org/apache/axis2/jaxws/test/OMELEMENT" 
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema">

   <element name="echoOMElement">
    <complexType>
     <sequence>
      <element name="input" nillable="true" type="xsd:anyType"/>
     </sequence>
    </complexType>
   </element>
   <element name="echoOMElementResponse">
    <complexType>
     <sequence>
      <element name="echoOMElementReturn" nillable="true" type="xsd:anyType"/>
     </sequence>
    </complexType>
   </element>
        </schema>
 </wsdl:types>

   <wsdl:message name="echoOMElementResponse">

      <wsdl:part element="impl:echoOMElementResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="echoOMElementRequest">

      <wsdl:part element="impl:echoOMElement" name="parameters"/>

   </wsdl:message>

   <wsdl:portType name="Echo">

      <wsdl:operation name="echoOMElement">

         <wsdl:input message="impl:echoOMElementRequest" name="echoOMElementRequest"/>

         <wsdl:output message="impl:echoOMElementResponse" name="echoOMElementResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="OMElementBinding" type="impl:Echo">

      <wsdlsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="echoOMElement">

         <wsdlsoap12:operation soapAction=""/>

         <wsdl:input name="echoOMElementRequest">

            <wsdlsoap12:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="echoOMElementResponse">

            <wsdlsoap12:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="OMElementProviderService">

      <wsdl:port binding="impl:OMElementBinding" name="OMElementProviderPort">

         <wsdlsoap12:address location="http://localhost:9080/axis2/services/OMElementProviderService"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
