<?xml version="1.0"?>

<definitions name="InteropInfo" targetNamespace="http://soapinterop.org/info/"
								xmlns="http://schemas.xmlsoap.org/wsdl/"
								xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
								xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
								xmlns:xsd="http://www.w3.org/2001/XMLSchema"
								xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
								xmlns:tns="http://soapinterop.org/info/"
								xmlns:xs1="http://soapinterop.org/info/xs"
								xmlns:xs2="http://soapinterop.org/info/types/"
								xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
	<types>
		<schema xmlns="http://www.w3.org/2001/XMLSchema"
						targetNamespace="http://soapinterop.org/info/xs">

			<complexType name="EndpointInfo">
				<all>
					<element name="endpointName" type="string"/>	
					<element name="endpointURL" type="anyURI"/>
					<element name="wsdlURL" type="anyURI"/>
				</all>
			</complexType>
			<complexType name="ArrayOfEndpointInfo">
				<complexContent>
					<restriction base="SOAP-ENC:Array">
						<sequence>
          						<element name="item" type="xs1:EndpointInfo" minOccurs="0" maxOccurs="unbounded"/>
		  				</sequence>
 						<attributeGroup ref="SOAP-ENC:commonAttributes"/>					
						<attribute ref="SOAP-ENC:offset"/>
						<attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xs1:EndpointInfo[]"/>
					</restriction>
				</complexContent>
			</complexType>
		</schema>

		<schema xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://soapinterop.org/info/types/" xmlns:info="http://soapinterop.org/info/types/">

			<element name="updateInteropInfoRequest">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="item" type="info:endpointInfoItem"/>
					</sequence>
				</complexType>
			</element>

			<element name="updateInteropInfoResponse">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="item" type="info:interopInfoLink"/>
					</sequence>
				</complexType>
			</element>

			<element name="getInteropInfoResponse">
				<complexType>
					<sequence>
						<element minOccurs="0" maxOccurs="unbounded" name="item" type="info:endpointInfoItem"/>
						<element minOccurs="0" maxOccurs="unbounded" name="item" type="info:interopInfoLink"/>
					</sequence>
				</complexType>
			</element>

			<complexType name="endpointInfoItem">
				<sequence>
					<element minOccurs="0" maxOccurs="1" name="endpointName" type="xsd:string"/>
					<element minOccurs="0" maxOccurs="1" name="endpointURL" type="xsd:anyURI"/>
					<element minOccurs="0" maxOccurs="1" name="wsdlURL" type="xsd:anyURI"/>
				</sequence>
			</complexType>

			<complexType name="interopInfoLink">
				<sequence>
					<element minOccurs="0" maxOccurs="1" name="url" type="xsd:anyURI"/>
					<element minOccurs="0" maxOccurs="1" name="name" type="xsd:string"/>
				</sequence>
			</complexType>

		</schema>

	</types>

	<message name="GetEndpointInfoRequest">
		<part name="groupName" type="xsd:string"/>
	</message>
	<message name="GetEndpointInfoResponse">
		<part name="return" type="xs1:ArrayOfEndpointInfo"/>
	</message>

	<message name="interop_info_update_in">
		<part name="inputDoc" element="xs2:updateInteropInfoRequest"/>
	</message>
	<message name="interop_info_update_out">
		<part name="outputDoc" element="xs2:updateInteropInfoResponse"/>
	</message>

	<message name="interop_info_GET_out">
		<part name="response" element="xs2:getInteropInfoResponse"/>
	</message>

	<portType name="InteropInfoPortType">
		<operation name="GetEndpointInfo" parameterOrder="groupName">
			<input message="tns:GetEndpointInfoRequest"/>
			<output message="tns:GetEndpointInfoResponse"/>
		</operation>
	</portType>

	<portType name="interop_info_POST_PortType">

		<operation name="updateInteropInfo">
			<input message="tns:interop_info_update_in"/>
			<output message="tns:interop_info_update_out"/>
		</operation>

	</portType>

	<portType name="interop_info_GET_PortType">

		<operation name="getInteropInfo">
			<output message="tns:interop_info_GET_out"/>
		</operation>

	</portType>

	<binding name="InteropInfoSOAPBinding" type="tns:InteropInfoPortType">
		<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="GetEndpointInfo">
			<soap:operation soapAction="http://soapinterop.org/info/"/>
			<input>
				<soap:body use="encoded" namespace="http://soapinterop.org/info/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</input>
			<output>
				<soap:body use="encoded" namespace="http://soapinterop.org/info/" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
			</output>
		</operation>
	</binding>

	<binding name="interop_info_SOAP_12_binding" type="tns:interop_info_POST_PortType">

		<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<operation name="updateInteropInfo">
			<soap12:operation />
			<input>
				<soap12:body use="literal"/>
			</input>
			<output>
				<soap12:body use="literal"/>
			</output>
		</operation> 

	</binding>

	<service name="interopInfoSvc">
  		<port name="interopInfoPort" binding="tns:InteropInfoSOAPBinding">
    			<soap:address location="http://www.whitemesa.net/interopInfo"/>
  		</port>
  		<port name="interopInfoSOAP12Port" binding="tns:interop_info_SOAP_12_binding">
    			<soap12:address location="http://www.whitemesa.net/interopInfo12"/>
  		</port>
	</service>

</definitions>
