<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2003-2004 The Apache Software Foundation.                      -->
<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved                   -->
<!--                                                                          -->
<!-- Licensed 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://largereturningstring.test.apache.org" xmlns:impl="http://largereturningstring.test.apache.org" xmlns:intf="http://largereturningstring.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="http://largereturningstring.test.apache.org" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:impl="http://largereturningstring.test.apache.org" xmlns:intf="http://largereturningstring.test.apache.org" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <element name="getLargeString">
    <complexType>
     <sequence>
      <element name="size" type="xsd:int"/>
     </sequence>
    </complexType>
   </element>
   <element name="getLargeStringResponse">
    <complexType>
     <sequence>
      <element name="getLargeStringReturn" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
  </schema>
 </wsdl:types>

   <wsdl:message name="getLargeStringRequest">

      <wsdl:part element="intf:getLargeString" name="parameters"/>

   </wsdl:message>

   <wsdl:message name="getLargeStringResponse">

      <wsdl:part element="intf:getLargeStringResponse" name="parameters"/>

   </wsdl:message>

   <wsdl:portType name="LargeReturningString">

      <wsdl:operation name="getLargeString">

         <wsdl:input message="intf:getLargeStringRequest" name="getLargeStringRequest"/>

         <wsdl:output message="intf:getLargeStringResponse" name="getLargeStringResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="LargeReturningStringSoapBinding" type="intf:LargeReturningString">

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

      <wsdl:operation name="getLargeString">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="getLargeStringRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="getLargeStringResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="LargeReturningStringService">

      <wsdl:port binding="intf:LargeReturningStringSoapBinding" name="LargeReturningString">

         <wsdlsoap:address location="http://localhost:9080/LargeReturningString/services/LargeReturningString"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
