<?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.
  -->


<definitions name="StringList" targetNamespace="http://org/test/StringList"
	xmlns:tns="http://org/test/StringList" xmlns="http://schemas.xmlsoap.org/wsdl/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">


	<types>
		<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
			elementFormDefault="qualified" targetNamespace="http://org/test/StringList">
			<xsd:element name="StringList" type="tns:StringListType" />
			<xsd:element name="StringListResponse" type="tns:StringListType" />
    
			<xsd:simpleType name="StringListType">
				<xsd:list itemType="xsd:string"/>
			</xsd:simpleType>
			
		</xsd:schema>
	</types>

	<message name="StringList">
		<part name="parameters" element="tns:StringList" />
	</message>
	<message name="StringListResponse">
		<part name="result" element="tns:StringListResponse" />
	</message>
	
	<portType name="StringListPortType">
		<operation name="StringList">
			<input message="tns:StringList" name="add" />
			<output message="tns:StringListResponse" name="addResponse" />
			
		</operation>
	</portType>
	<binding name="StringListBinding" type="tns:StringListPortType">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
			style="document" />
		<operation name="StringList">
			<input>
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			
		</operation>
		
	</binding>
	<service name="StringListService">
		<port name="StringListPort" binding="tns:StringListBinding">
			<soap:address
				location="http://localhost:6060/axis2/services/StringListService" />
		</port>
	</service>
</definitions>
