<?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="AddNumbers" targetNamespace="http://org/test/addnumbers"
	xmlns:tns="http://org/test/addnumbers" xmlns="http://schemas.xmlsoap.org/wsdl/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
	xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
	xmlns:notsoap="http://not.a.soap.address/wsdl/notsoap/">


	<types>
		<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
			elementFormDefault="qualified" targetNamespace="http://org/test/addnumbers">
			<element name="addNumbersResponse">
				<complexType>
					<sequence>
						<element name="return" type="xsd:int" />
					</sequence>
				</complexType>
			</element>

			<element name="addNumbers">
				<complexType>
					<sequence>
						<element name="arg0" type="xsd:int" />
						<element name="arg1" type="xsd:int" />
					</sequence>
				</complexType>
			</element>

			<element name="AddNumbersFault">
				<complexType>
					<sequence>
						<element name="faultInfo" type="xsd:string" />
						<element name="message" type="xsd:string" />
					</sequence>
				</complexType>
			</element>

			<element name="oneWayInt">
				<complexType>
					<sequence>
						<element name="arg0" type="xsd:int" />
					</sequence>
				</complexType>
			</element>

		</xsd:schema>
	</types>

	<message name="addNumbers">
		<part name="parameters" element="tns:addNumbers" />
	</message>
	<message name="addNumbersResponse">
		<part name="result" element="tns:addNumbersResponse" />
	</message>
	<message name="addNumbersFault">
		<part name="AddNumbersFault" element="tns:AddNumbersFault" />
	</message>
	<message name="oneWayInt">
		<part name="parameters" element="tns:oneWayInt" />
	</message>

	<portType name="AddNumbersPortType">
		<operation name="addNumbers">
			<input message="tns:addNumbers" name="add" />
			<output message="tns:addNumbersResponse" name="addResponse" />
			<fault name="addNumbersFault" message="tns:addNumbersFault" />
		</operation>
		<operation name="oneWayInt">
			<input message="tns:oneWayInt" />
		</operation>
	</portType>
	<portType name="AddNumbersPortTypeOtherPT">
		<operation name="addNumbers">
			<input message="tns:addNumbers" name="add" />
			<output message="tns:addNumbersResponse" name="addResponse" />
			<fault name="addNumbersFault" message="tns:addNumbersFault" />
		</operation>
		<operation name="oneWayInt">
			<input message="tns:oneWayInt" />
		</operation>
	</portType>
	
	<binding name="AddNumbersBinding" type="tns:AddNumbersPortType">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
			style="document" />
		<operation name="addNumbers">
			<soap:operation soapAction="" />
			<input>
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="addNumbersFault">
				<soap:fault name="addNumbersFault" use="literal" />
			</fault>
		</operation>
		<operation name="oneWayInt">
			<soap:operation soapAction="" />
			<input>
				<soap:body use="literal" />
			</input>
		</operation>
	</binding>
	<binding name="AddNumbersBindingSamePT" type="tns:AddNumbersPortType">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
			style="document" />
		<operation name="addNumbers">
			<soap:operation soapAction="" />
			<input>
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="addNumbersFault">
				<soap:fault name="addNumbersFault" use="literal" />
			</fault>
		</operation>
		<operation name="oneWayInt">
			<soap:operation soapAction="" />
			<input>
				<soap:body use="literal" />
			</input>
		</operation>
	</binding>
	<binding name="AddNumbersBindingOtherPT" type="tns:AddNumbersPortTypeOtherPT">
		<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
			style="document" />
		<operation name="addNumbers">
			<soap:operation soapAction="" />
			<input>
				<soap:body use="literal" />
			</input>
			<output>
				<soap:body use="literal" />
			</output>
			<fault name="addNumbersFault">
				<soap:fault name="addNumbersFault" use="literal" />
			</fault>
		</operation>
		<operation name="oneWayInt">
			<soap:operation soapAction="" />
			<input>
				<soap:body use="literal" />
			</input>
		</operation>
	</binding>
	
	<!--
		IMPORTANT NOTE: These ports are not intended to be connected too!  This test is simply for
		WSDL processing and Service.addPort(...) and Service.getPort(...) validation; no attempt is
		made to actually connect to the endpoints defined below; there is no implementation and no
		valid endpoint at those addresses.	
	-->
	
	<service name="AddNumbersService1">
		<port name="AddNumbersPortS1P1" binding="tns:AddNumbersBinding">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS1P1" />
		</port>
		<port name="AddNumbersPortS1P2" binding="tns:AddNumbersBinding">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS1P2" />
		</port>
		<port name="AddNumbersPortS1P3" binding="tns:AddNumbersBinding">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS1P3" />
		</port>
	</service>
	<service name="AddNumbersService2">
		<port name="AddNumbersPortS2P1" binding="tns:AddNumbersBinding">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS2P1" />
		</port>
		<port name="AddNumbersPortS2P2" binding="tns:AddNumbersBinding">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS2P2" />
		</port>
		<port name="AddNumbersPortS2P3" binding="tns:AddNumbersBinding">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS2P3" />
		</port>
				<port name="AddNumbersPortS2P4" binding="tns:AddNumbersBinding">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS2P4" />
		</port>
		
	</service>
		<service name="AddNumbersService3">
		<port name="AddNumbersPortS3P1" binding="tns:AddNumbersBindingOtherPT">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS3P1" />
		</port>
		<port name="AddNumbersPortS3P2" binding="tns:AddNumbersBinding">
			<soap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS3P2" />
		</port>
		<port name="AddNumbersPortS3P3" binding="tns:AddNumbersBindingSamePT">
			<notsoap:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS3P3" />
		</port>
				<port name="AddNumbersPortS3P4" binding="tns:AddNumbersBinding">
			<soap12:address
				location="http://localhost:9080/AddNumber/AddNumbersImplServiceS3P4" />
		</port>
		
	</service>
	
</definitions>
