<?xml version="1.0"?>

<definitions name="SOAP-12-TestDefinitions"
	targetNamespace="http://whitemesa.net/wsdl/soap12-test"
	xmlns="http://schemas.xmlsoap.org/wsdl/"
	xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:enc="http://www.w3.org/2003/05/soap-encoding"
	xmlns:tns="http://whitemesa.net/wsdl/soap12-test"
	xmlns:types="http://example.org/ts-tests/xsd"
	xmlns:test="http://example.org/ts-tests"
	xmlns:iop="http://soapinterop.org/"
	xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
	<types>

		<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://example.org/ts-tests/xsd">

			<complexType name="SOAPStruct">
				<all>
					<element name="varString" type="xsd:string"/>
					<element name="varInt" type="xsd:int"/>
					<element name="varFloat" type="xsd:float"/>
				</all>
			</complexType>

			<!-- added to support test xmlp-10 -->
			<complexType name="SOAPStructTypes">
				<sequence>
					<element name="type1" type="xsd:QName" />
					<element name="type2" type="xsd:QName" />
					<element name="type3" type="xsd:QName" />
					<element name="type4" type="xsd:QName" />
				</sequence>
			</complexType>

			<!-- unknown header block type to support xmlp-6 -->
			<complexType name="Unknown">
					<sequence>
						<element minOccurs="0" maxOccurs="1" name="stringValue" type="xsd:string" />
					</sequence>
			</complexType>
		</schema>

	</types>

	<!-- xmlp-3 getTime rpc operation -->
	<message name="getTimeRpcResponse">
		<part name="return" type="xsd:time"/>
	</message>

	<!-- xmlp-4 echoSimpleTypesAsStruct rpc operation -->
	<message name="echoSimpleTypesAsStructRequest">
		<part name="inputString" type="xsd:string"/>
		<part name="inputInteger" type="xsd:int"/>
		<part name="inputFloat" type="xsd:float"/>
	</message>
	<message name="echoSimpleTypesAsStructResponse">
		<part name="return" type="types:SOAPStruct"/>
	</message>

	<!-- xmlp-5, xmlp-6 echoVoid rpc operation -->
	<message name="echoVoidRequest" />
	<message name="echoVoidResponse" />

	<!-- xmlp-1, xmlp-9 echoString rpc operation -->
	<message name="echoStringRequest">
		<part name="inputString" type="xsd:string"/>
	</message>
	<message name="echoStringResponse">
		<part name="return" type="xsd:string"/>
	</message>

	<!-- xmlp-10 echoSimpleTypesAsStructOfSchemaTypesRequest rpc operation -->
	<message name="echoSimpleTypesAsStructOfSchemaTypesRequest">
		<part name="input1" type="xsd:anyType"/>
		<part name="input2" type="xsd:anyType"/>
		<part name="input3" type="xsd:anyType"/>
		<part name="input4" type="xsd:anyType"/>
	</message>
	<message name="echoSimpleTypesAsStructOfSchemaTypesResponse">
		<part name="return" type="types:SOAPStructTypes"/>
	</message>

	<!-- xmlp-11 echoInteger rpc operation -->
	<message name="echoIntegerRequest">
		<part name="inputInteger" type="xsd:int"/>
	</message>
	<message name="echoIntegerResponse">
		<part name="return" type="xsd:int"/>
	</message>

	<!-- xmlp-6 "unknown" header block -->
	<message name="UnknownHdrBlock">
		<part name="Unknown" type="types:Unknown" />
	</message>

	<portType name="Soap12AddTestPortTypeRpc">

		<!-- xmlp-3 getTime rpc operation -->
		<operation name="getTime">
			<output message="tns:getTimeRpcResponse"/>
		</operation>

		<!-- xmlp-4 echoSimpleTypesAsStruct rpc operation -->
		<operation name="echoSimpleTypesAsStruct" parameterOrder="inputString inputInteger inputFloat">
			<input message="tns:echoSimpleTypesAsStructRequest"/>
			<output message="tns:echoSimpleTypesAsStructResponse"/>
		</operation>
		
		<!-- xmlp-5, xmlp-6 echoVoid rpc operation -->
		<operation name="echoVoid">
			<input message="tns:echoVoidRequest"/>
			<output message="tns:echoVoidResponse"/>
		</operation>

		<!-- xmlp-1, xmlp-9 echoString rpc operation -->
		<operation name="echoString" parameterOrder="inputString">
			<input message="tns:echoStringRequest"/>
			<output message="tns:echoStringResponse"/>
		</operation>

		<!-- xmlp-10 echoSimpleTypesAsStructOfSchemaTypes rpc operation -->
		<operation name="echoSimpleTypesAsStructOfSchemaTypes" parameterOrder="input1 input2 input3 input4">
			<input message="tns:echoSimpleTypesAsStructOfSchemaTypesRequest"/>
			<output message="tns:echoSimpleTypesAsStructOfSchemaTypesResponse"/>
		</operation>

		<!-- xmlp-11 echoInteger rpc operation -->
		<operation name="echoInteger" parameterOrder="inputInteger">
			<input message="tns:echoIntegerRequest"/>
			<output message="tns:echoIntegerResponse"/>
		</operation>

	</portType>

	<binding name="Soap12AddTestRpcBinding" type="tns:Soap12AddTestPortTypeRpc">
		<soap12:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

		<!-- xmlp-3 getTime rpc operation -->
		<operation name="getTime">
			<soap12:operation/>
			<output>
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</output>
		</operation>

		<!-- xmlp-4 echoSimpleTypesAsStruct rpc operation -->
		<operation name="echoSimpleTypesAsStruct">
			<soap12:operation/>
			<input>
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</input>
			<output>
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</output>
		</operation>

		<!-- xmlp-5, xmlp-6 echoVoid rpc operation -->
		<operation name="echoVoid">
			<soap12:operation/>
			<input>
				<soap12:header use="encoded" message="tns:UnknownHdrBlock" part="Unknown" namespace="http://example.org/ts-tests/xsd" encodingStyle="http://www.w3.org/2003/05/soap-encoding" />
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</input>
			<output>
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</output>
		</operation>

		<!-- xmlp-1, xmlp-9 echoString rpc operation -->
		<operation name="echoString">
			<soap12:operation/>
			<input>
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</input>
			<output>
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</output>
		</operation>

		<!-- xmlp-10 echoSimpleTypesAsStructOfSchemaTypes rpc operation -->
		<operation name="echoSimpleTypesAsStructOfSchemaTypes">
			<soap12:operation/>
			<input>
				<soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</input>
			<output>
				<soap12:body use="encoded" namespace="http://example.org/ts-tests" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</output>
		</operation>

		<!-- xmlp-11 echoInteger rpc operation -->
		<operation name="echoInteger">
			<soap12:operation/>
			<input>
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</input>
			<output>
				<soap12:body use="encoded" namespace="http://soapinterop.org/" encodingStyle="http://www.w3.org/2003/05/soap-encoding"/>
			</output>
		</operation>

	</binding>

	<service name="WhiteMesaSoap12AddTestSvc">

  		<port name="Soap12AddTestRpcPort" binding="tns:Soap12AddTestRpcBinding">
    			<soap12:address location="http://www.whitemesa.net/soap12/add-test-rpc"/>
  		</port>

	</service>

</definitions>
