<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://action.policy.org/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ExecutablePackage" targetNamespace="http://action.policy.org/">
	
	<wsdl:types>
		<xsd:schema targetNamespace="http://action.policy.org/">

			<xsd:element name="StringArray" type="tns:StringArray"/>
			<xsd:complexType name="StringArray">
				<xsd:sequence>
					<xsd:element name="string"
						type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="Result" type="tns:Result"/>
			<xsd:complexType name="Result">
				<xsd:sequence>
					<xsd:element name="variableBindings"
						type="tns:StringArray" />
				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="ResultSet" type="tns:ResultSet"/>
			<xsd:complexType name="ResultSet">
				<xsd:sequence>
					<xsd:element name="variableList"
						type="tns:StringArray" />
					<xsd:element name="variableBindings"
						type="tns:Result"  minOccurs="0" maxOccurs="unbounded" />
				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="ActionResult" type="tns:ActionResult"/>
			<xsd:complexType name="ActionResult">
				<xsd:sequence>
					<xsd:element name="executionResult"
						type="xsd:boolean" />
					<xsd:element name="variableBindings"
						type="tns:ResultSet" />
				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="Exception" type="tns:Exception"/>
			<xsd:complexType name="Exception">
				<xsd:sequence>
					<xsd:element name="text" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
				</xsd:sequence>
			</xsd:complexType>
			  
			<xsd:element name="IllegalArgumentException" type="tns:IllegalArgumentException"/>
			<xsd:complexType name="IllegalArgumentException">
				<xsd:complexContent>
					<xsd:extension base="tns:Exception">
						<xsd:sequence/>
					</xsd:extension>
				</xsd:complexContent>
			</xsd:complexType>

			<xsd:element name="ActionException" type="tns:ActionException"/>
			<xsd:complexType name="ActionException">
				<xsd:complexContent>
					<xsd:extension base="tns:Exception">
						<xsd:sequence/>
					</xsd:extension>
				</xsd:complexContent>
			</xsd:complexType>

			<xsd:element name="NoSuchFunctionException" type="tns:NoSuchFunctionException"/>
			<xsd:complexType name="NoSuchFunctionException">
				<xsd:complexContent>
					<xsd:extension base="tns:ActionException">
						<xsd:sequence/>
					</xsd:extension>
				</xsd:complexContent>
			</xsd:complexType>

			<xsd:element name="FunctionFailureException" type="tns:FunctionFailureException"/>
			<xsd:complexType name="FunctionFailureException">
				<xsd:complexContent>
					<xsd:extension base="tns:ActionException">
						<xsd:sequence/>
					</xsd:extension>
				</xsd:complexContent>
			</xsd:complexType>
  
		</xsd:schema>
	</wsdl:types>
	
	<wsdl:message name="executeResponse">
		<wsdl:part name="executeResponse" element="tns:ActionResult"/>
	</wsdl:message>
	
	<wsdl:message name="executeRequest">
		<wsdl:part name="function" type="xsd:string"></wsdl:part>
        <wsdl:part name="arguments" element="tns:StringArray"/>
        <wsdl:part name="inputVars" element="tns:StringArray"/>
    </wsdl:message>

	<wsdl:message name="IllegalArgumentFault">
		<wsdl:part name="fault" element="tns:IllegalArgumentException"/>
	</wsdl:message>

	<wsdl:message name="NoSuchFunctionFault">
		<wsdl:part name="fault" element="tns:NoSuchFunctionException"/>
	</wsdl:message>

	<wsdl:message name="FunctionFailureFault">
		<wsdl:part name="fault" element="tns:FunctionFailureException"/>
	</wsdl:message>

	<wsdl:portType name="ExecutablePackage">
		<wsdl:operation name="execute">
			<wsdl:input message="tns:executeRequest"/>
			<wsdl:output message="tns:executeResponse"/>
			<wsdl:fault name="IllegalArgumentFault" message="tns:IllegalArgumentFault"/>
			<wsdl:fault name="NoSuchFunctionFault" message="tns:NoSuchFunctionFault"/>
			<wsdl:fault name="FunctionFailureFault" message="tns:FunctionFailureFault"/>
		</wsdl:operation>
	</wsdl:portType>

	<wsdl:binding name="ExecutablePackageSOAP" type="tns:ExecutablePackage">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="execute">
			<soap:operation soapAction="http://action.policy.org/NewOperation"/>
			<wsdl:input>
				<soap:body parts=" NewOperationRequest" use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body parts=" NewOperationResponse" use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		</wsdl:binding>

	<wsdl:service name="ExecutablePackage">
		<wsdl:port binding="tns:ExecutablePackageSOAP" name="ExecutablePackageSOAP">
			<soap:address location="http://www.example.org/"/>
		</wsdl:port>
	</wsdl:service>
	
</wsdl:definitions>

