<?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://ws.geronimo.apache.org" xmlns:impl="http://ws.geronimo.apache.org" xmlns:intf="http://ws.geronimo.apache.org" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
   <wsdl:message name="getHelloWorldResponse">

      <wsdl:part name="getHelloWorldReturn" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="getHelloWorldRequest">

      <wsdl:part name="in0" type="xsd:string"/>

   </wsdl:message>

   <wsdl:portType name="HelloWorld">

      <wsdl:operation name="getHelloWorld" parameterOrder="in0">

         <wsdl:input name="getHelloWorldRequest" message="impl:getHelloWorldRequest"/>

         <wsdl:output name="getHelloWorldResponse" message="impl:getHelloWorldResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="HelloWorldSoapBinding" type="impl:HelloWorld">

      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="getHelloWorld">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getHelloWorldRequest">

            <wsdlsoap:body use="literal" namespace="http://ws.geronimo.apache.org"/>

         </wsdl:input>

         <wsdl:output name="getHelloWorldResponse">

            <wsdlsoap:body use="literal" namespace="http://ws.geronimo.apache.org"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="HelloWorldService">

      <wsdl:port name="HelloWorld" binding="impl:HelloWorldSoapBinding">

         <wsdlsoap:address location="http://localhost:8080/webref/ws"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
