<?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://simpletypeinnerunboundedinoutput.test.apache.org" xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://simpletypeinnerunboundedinoutput.test.apache.org" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/">
	<types>
		<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://simpletypeinnerunboundedinoutput.test.apache.org" xmlns:tns="http://simpletypeinnerunboundedinoutput.test.apache.org">

			<xsd:element name="getInput">
			<xsd:complexType>
				<xsd:sequence>
					<xsd:element name="type" maxOccurs="1" minOccurs="0" type="xsd:int" />
				</xsd:sequence>
			</xsd:complexType>
			</xsd:element>
			
			<xsd:element name="getInputResponse">
			<xsd:complexType>
				<xsd:sequence>
					<xsd:element name="type" maxOccurs="1" minOccurs="0" type="tns:Type1" />					
				</xsd:sequence>
			</xsd:complexType>
			</xsd:element>			
			
			<xsd:complexType name="Type1">
				<xsd:sequence>
					<!--xsd:element name="enum_int" maxOccurs="1" minOccurs="0" type="tns:TypeInt" />
					<xsd:element name="enum_string" maxOccurs="1" minOccurs="0" type="tns:TypeString" /-->		
            		<xsd:element maxOccurs="100" minOccurs="1" name="ident">
                		<xsd:simpleType>
                    		<xsd:restriction base="xsd:string"/>
                		</xsd:simpleType>
            		</xsd:element>								
				</xsd:sequence>
				<!--xsd:attribute name="att_enum_int" type="tns:TypeInt"/> 
				<xsd:attribute name="att_enum_string" type="tns:TypeString"/> 
				<xsd:attribute name="att_enum_kind"> 
					<xsd:simpleType>
						<xsd:restriction base="xsd:string">
							<xsd:enumeration value="CHEQUE" />
							<xsd:enumeration value="CREDIT_CARD" />
							<xsd:enumeration value="TRANSFER" />
							<xsd:enumeration value="WITHDRAWAL" />
							<xsd:enumeration value="AUTOMATIC" />
						</xsd:restriction>
					</xsd:simpleType>	
				</xsd:attribute-->	
			</xsd:complexType>
			
			<xsd:simpleType name="TypeInt">
				<xsd:restriction base="xsd:int">
					<xsd:enumeration value="0" />
					<xsd:enumeration value="1" />
				</xsd:restriction>
			</xsd:simpleType>
			
			<xsd:simpleType name="TypeString">
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="one" />
					<xsd:enumeration value="two" />
				</xsd:restriction>
			</xsd:simpleType>			

		</xsd:schema>
	</types>


	<message name="input">
		<part name="parameters" element="tns:getInput" />
	</message>
	
	<message name="output">
		<part name="parameters" element="tns:getInputResponse" />
	</message>	

	<portType name="SimpleTypeInnerUnboundedInOutputWS">
		<operation name="getInput">
			<input message="tns:input" />
			<output message="tns:output" />
		</operation>
	</portType>

	<binding name="SimpleTypeInnerUnboundedInOutputWSBinding" type="tns:SimpleTypeInnerUnboundedInOutputWS">
		<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="SimpleTypeInnerUnboundedInOutputWSService">
		<port name="sampleWS" binding="tns:SimpleTypeInnerUnboundedInOutputWSBinding">
			<soap:address location="http://localhost:9080/SimpleTypeInnerUnboundedInOutput/services/sampleWS" />
		</port>
	</service>
</definitions>
