6.3. Immediate and Scheduled Termination MathService WSDL


<?xml version="1.0" encoding="UTF-8"?>
<definitions name="MathServiceRP"
    targetNamespace="http://www.globus.org/namespaces/examples/core/MathService_instance_rp"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    xmlns:tns="http://www.globus.org/namespaces/examples/core/MathService_instance_rp"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:wsrp="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.xsd"
    xmlns:wsrpw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl"
    xmlns:wsrlw="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl"(1)
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    
<wsdl:import 
    namespace=
    "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl"
    location="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties-1.2-draft-01.wsdl" />


<wsdl:import (2)

    namespace=
    "http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl"
    location="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.wsdl" />


   
<!--============================================================

                      T Y P E S

  ============================================================-->
<types>
<xsd:schema targetNamespace="http://www.globus.org/namespaces/examples/core/MathService_instance_rp"
    xmlns:tns="http://www.globus.org/namespaces/examples/core/MathService_instance_rp"
    xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/03/addressing"
    xmlns:wsrl="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">

        <!-- IMPORT WS-ADDRESSING -->
        <xsd:import namespace="http://schemas.xmlsoap.org/ws/2004/03/addressing"
             schemaLocation="http://schemas.xmlsoap.org/ws/2004/03/addressing"/>
        
        <!-- IMPORT WS-ResourceLifetime schemas -->
        
        <xsd:import namespace="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd" (3)
        
             schemaLocation="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime-1.2-draft-01.xsd"/>

        <!-- REQUESTS AND RESPONSES -->

        <xsd:element name="add" type="xsd:int"/>
        <xsd:element name="addResponse">
                <xsd:complexType/> 
        </xsd:element>
        <xsd:element name="subtract" type="xsd:int"/>
        <xsd:element name="subtractResponse">
                <xsd:complexType/>
        </xsd:element>
      
        <xsd:element name="create">
                <xsd:complexType/>
        </xsd:element>
        <xsd:element name="createResponse">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element ref="wsa:EndpointReference"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>

        <!-- MathService Resource Properties -->

        <xsd:element name="Value" type="xsd:int"/>
        <xsd:element name="LastOp" type="xsd:string"/>
        <xsd:element name="MathResourceProperties">
            <xsd:complexType>
                <xsd:sequence>
                    <xsd:element ref="tns:Value"/>
                    <xsd:element ref="tns:LastOp"/>

                    <xsd:element maxOccurs="1" minOccurs="1" ref="wsrl:CurrentTime"/> (4)

                    <xsd:element maxOccurs="1" minOccurs="1" ref="wsrl:TerminationTime"/> (5)
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>

</xsd:schema>
</types>
 
<!--============================================================

                       M E S S A G E S

  ============================================================-->
<message name="AddInputMessage">
        <part name="parameters" element="tns:add"/>
</message>
<message name="AddOutputMessage">
        <part name="parameters" element="tns:addResponse"/>
</message>

<message name="SubtractInputMessage">
        <part name="parameters" element="tns:subtract"/>
</message>
<message name="SubtractOutputMessage">
        <part name="parameters" element="tns:subtractResponse"/>
</message>

<message name="CreateInputMessage">
        <part name="parameters" element="tns:create"/>
</message>
<message name="CreateOutputMessage">
        <part name="parameters" element="tns:createResponse"/>
</message>


<!--============================================================

                       P O R T T Y P E

  ============================================================-->

<portType name="MathPortType" 
    wsrp:ResourceProperties="tns:MathResourceProperties">

	<operation name="add">
		<input message="tns:AddInputMessage"/>
		<output message="tns:AddOutputMessage"/>
	</operation>
        
	<operation name="subtract">
		<input message="tns:SubtractInputMessage"/>
		<output message="tns:SubtractOutputMessage"/>
	</operation>

	<operation name="createResource">
		<input message="tns:CreateInputMessage"/>
		<output message="tns:CreateOutputMessage"/>
	</operation>

        <!-- WS-ResourceProperties operations -->
	<operation name="GetResourceProperty"> 
		<input name="GetResourcePropertyRequest" 
                    message="wsrpw:GetResourcePropertyRequest" 
                    wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourceProperty"/>
                <output name="GetResourcePropertyResponse" 
                    message="wsrpw:GetResourcePropertyResponse" 
                    wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetResourcePropertyResponse"/>
                <fault name="InvalidResourcePropertyQNameFault" 
                    message="wsrpw:InvalidResourcePropertyQNameFault"/>
                <fault name="ResourceUnknownFault" 
                    message="wsrpw:ResourceUnknownFault"/>
	</operation>

    <operation name="GetMultipleResourceProperties"> 
      <input name="GetMultipleResourcePropertiesRequest" message="wsrpw:GetMultipleResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourceProperties"/>
      <output name="GetMultipleResourcePropertiesResponse" message="wsrpw:GetMultipleResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/GetMultipleResourcePropertiesResponse"/>
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault"/>
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault"/>
    </operation>

    <operation name="SetResourceProperties"> 
      <input name="SetResourcePropertiesRequest" message="wsrpw:SetResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/SetResourceProperties"/>
      <output name="SetResourcePropertiesResponse" message="wsrpw:SetResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/SetResourcePropertiesResponse"/>
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault"/>
      <fault name="UnableToModifyResourcePropertyFault" message="wsrpw:UnableToModifyResourcePropertyFault"/>
      <fault name="SetResourcePropertyRequestFailedFault" message="wsrpw:SetResourcePropertyRequestFailedFault"/>
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault"/>
      <fault name="InvalidSetResourcePropertiesRequestContentFault" message="wsrpw:InvalidSetResourcePropertiesRequestContentFault"/>
    </operation>

    <operation name="QueryResourceProperties"> 
      <input name="QueryResourcePropertiesRequest" message="wsrpw:QueryResourcePropertiesRequest" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourceProperties"/>
      <output name="QueryResourcePropertiesResponse" message="wsrpw:QueryResourcePropertiesResponse" wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceProperties/QueryResourcePropertiesResponse"/>
      <fault name="UnknownQueryExpressionDialectFault" message="wsrpw:UnknownQueryExpressionDialectFault"/>
      <fault name="InvalidResourcePropertyQNameFault" message="wsrpw:InvalidResourcePropertyQNameFault"/>
      <fault name="QueryEvaluationErrorFault" message="wsrpw:QueryEvaluationErrorFault"/>
      <fault name="InvalidQueryExpressionFault" message="wsrpw:InvalidQueryExpressionFault"/>
      <fault name="ResourceUnknownFault" message="wsrpw:ResourceUnknownFault"/>
    </operation>
    
    <!-- WS-ResourceLifetime operations -->
    <!--     ScheduledResourceTermination -->
        <wsdl:operation name="SetTerminationTime"> (6)
    
            <wsdl:input message="wsrlw:SetTerminationTimeRequest"
                        wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/SetTerminationTime"/>
            <wsdl:output message="wsrlw:SetTerminationTimeResponse"
                         wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/SetTerminationTimeResponse"/>
            <wsdl:fault
                message="wsrlw:UnableToSetTerminationTimeFault"
                name="UnableToSetTerminationTimeFault"/>
            <wsdl:fault message="wsrlw:ResourceUnknownFault" name="ResourceUnknownFault"/>
            <wsdl:fault
                message="wsrlw:TerminationTimeChangeRejectedFault"
                name="TerminationTimeChangeRejectedFault"/>
        </wsdl:operation>

    <!--   ImmediateResourceTermination -->
        <wsdl:operation name="Destroy"> (7)
    
            <wsdl:input message="wsrlw:DestroyRequest"
                        wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/Destroy"/>
            <wsdl:output message="wsrlw:DestroyResponse"
                         wsa:Action="http://docs.oasis-open.org/wsrf/2004/06/wsrf-WS-ResourceLifetime/DestroyResponse"/>
            <wsdl:fault
                message="wsrlw:ResourceNotDestroyedFault"
                name="ResourceNotDestroyedFault"/>
            <wsdl:fault message="wsrlw:ResourceUnknownFault" name="ResourceUnknownFault"/>
        </wsdl:operation>
    
</portType>

<!--============================================================

                       B I N D I N G

  ============================================================-->
<binding name="MathBinding" type="MathPortType"> 
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

    <wsdl:operation name="add">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="subtract">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="createResource">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetResourceProperty">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="GetMultipleResourceProperties">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="SetResourceProperties">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="QueryResourceProperties">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    
    <wsdl:operation name="SetTerminationTime"> (8)
    
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>

    <wsdl:operation name="Destroy">
      <soap:operation soapAction=""/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    

</binding>

<!--============================================================

                       S E R V I C E

  ============================================================-->
<service name="MathService">
    <port name="MathPort" binding="MathBinding">
       <soap:address location="http://localhost:8080/wsrf/services/"/>
    </port>
</service>

</definitions>