<?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.                                           -->

<definitions targetNamespace="http://simpletypearray.test.apache.org" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://simpletypearray.test.apache.org" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <xsd:schema targetNamespace="http://simpletypearray.test.apache.org" xmlns:tns="http://simpletypearray.test.apache.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

			<xsd:element name="getInput">
	 				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="input" type="tns:Type"/>
					</xsd:sequence>
				</xsd:complexType>  					
			</xsd:element>			

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

				
			<xsd:element name="getInputResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="input" type="tns:Type"/>
					</xsd:sequence>
				</xsd:complexType>				
			</xsd:element>			

		</xsd:schema>
  </types>
  <message name="output">
    <part name="parameters" element="tns:getInputResponse"/>
  </message>
  <message name="input">
    <part name="parameters" element="tns:getInput"/>
  </message>
  <portType name="SimpleTypeArrayWS">
    <operation name="getInput">
      <input message="tns:input"/>
      <output message="tns:output"/>
    </operation>
  </portType>
  <binding name="SimpleTypeArrayWSBinding" type="tns:SimpleTypeArrayWS">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="getInput">
      <soap:operation/>
      <input>
        <soap:body use="literal"/>
      </input>
      <output>
        <soap:body use="literal"/>
      </output>
    </operation>
  </binding>
  <service name="SimpleTypeArrayWSService">
    <port name="sampleWS" binding="tns:SimpleTypeArrayWSBinding">
      <soap:address location="http://localhost:9080/SimpleTypeArray/services/sampleWS"/>
    </port>
  </service>
</definitions>
