<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
  name="NMWGServices"
  targetNamespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
  xmlns:tns="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
  xmlns:nmwg="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"
  xmlns="http://schemas.xmlsoap.org/wsdl/"
  xmlns:apachesoap="http://xml.apache.org/xml-soap"
  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
  xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <!-- Request, report and fault types are imported -->
  <types>
    <xsd:schema>
      <xsd:import schemaLocation="nm_request.xsd"/>
      <xsd:import schemaLocation="nm_batch.xsd"/>
      <xsd:import schemaLocation="nm_report.xsd"/>
      <xsd:import schemaLocation="nm_fault.xsd"/>
    </xsd:schema>
  </types>


  <!-- ==========================================================================
       Messages
  =========================================================================== -->

  <message name="immediateRequestInput">
    <part name="request" element="nmwg:networkMeasurementRequest"/>
  </message>

  <message name="batchingRequestInput">
    <part name="batch" element="nmwg:batchInfo"/>
    <part name="request" element="nmwg:networkMeasurementRequest"/>
  </message>

  <message name="nextBatchInput">
    <part name="batch" element="nmwg:batchInfo"/>
  </message>

  <message name="immediateReportOutput">
    <part name="report" element="nmwg:networkMeasurementReport"/>
  </message>

  <message name="batchingReportOutput">
    <part name="batch" element="nmwg:batchInfo"/>
    <part name="report" element="nmwg:networkMeasurementReport"/>
  </message>

  <!-- The errors we thought of were
    no data available
    communication
    system
    security/AAA
    request
    discovery
  -->
  <message name="nmwgFault">
    <part name="error" element="nmwg:error"/>
  </message>

  <!-- ==========================================================================
    The port types
  =========================================================================== -->

  <portType name="immediateInterface">
    <operation name="immediateRequest">
      <input name="immediateRequestInput" message="tns:immediateRequestInput"/>
      <output name="immediateReportOutput" message="tns:immediateReportOutput"/>
      <fault name="nmwgFault" message="tns:nmwgFault"/>
    </operation>
  </portType>

  <portType name="batchingInterface">
    <operation name="batchingRequest">
      <input name="batchingRequestInput" message="tns:batchingRequestInput"/>
      <output name="batchingReportOutput" message="tns:batchingReportOutput"/>
      <fault name="nmwgFault" message="tns:nmwgFault"/>
    </operation>
    <operation name="nextBatch">
      <input name="nextBatchInput" message="tns:nextBatchInput"/>
      <output name="batchingReportOutput" message="tns:batchingReportOutput"/>
      <fault name="nmwgFault" message="tns:nmwgFault"/>
    </operation>
  </portType>

  <!-- ==========================================================================
    Bindings for document/literal over HTTP
  =========================================================================== -->

  <binding name="immediateSoapDocLitBinding" type="tns:immediateInterface">
    <!-- Document-style message over HTTP -->
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http">

      <operation name="immediateRequest">
        <input message="tns:immediateRequestInput">
          <soap:body use="literal"/>
        </input>
        <output message="tns:immediateReportOutput">
          <soap:body use="literal"/>
        </output>
        <fault message="tns:nmwgFault">
          <soap:body use="literal"/>
        </fault>
      </operation>

    </wsdlsoap:binding>
  </binding>


  <binding name="batchingSoapDocLitBinding" type="tns:batchingInterface">
    <!-- Document-style message over HTTP -->
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http">

      <operation name="batchingRequest">
        <input message="tns:batchingRequestInput">
          <soap:body use="literal"/>
        </input>
        <output message="tns:batchingReportOutput">
          <soap:body use="literal"/>
        </output>
        <fault message="tns:nmwgFault">
          <soap:body use="literal"/>
        </fault>
      </operation>

      <operation name="nextBatch">
        <input message="tns:nextBatchInput">
          <soap:body use="literal"/>
        </input>
        <output message="tns:batchingReportOutput">
          <soap:body use="literal"/>
        </output>
        <fault message="tns:nmwgFault">
          <soap:body use="literal"/>
        </fault>
      </operation>

    </wsdlsoap:binding>
  </binding>

  <!-- ==========================================================================
    Bindings for RPC/encoded over HTTP
  =========================================================================== -->


  <binding name="immediateSoapRPCEncBinding" type="tns:immediateInterface">
    <!-- Document-style message over HTTP -->
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http">

      <operation name="immediateRequest">
        <input message="tns:immediateRequestInput">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </input>
        <output message="tns:immediateReportOutput">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </output>
        <fault message="tns:nmwgFault">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </fault>
      </operation>

    </wsdlsoap:binding>
  </binding>

  <binding name="batchingSoapRPCEncBinding" type="tns:batchingInterface">
    <!-- Document-style message over HTTP -->
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http">

      <operation name="batchingRequest">
        <input message="tns:batchingRequestInput">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </input>
        <output message="tns:batchingReportOutput">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </output>
        <fault message="tns:nmwgFault">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </fault>
      </operation>

      <operation name="nextBatch">
        <input message="tns:nextBatchInput">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </input>
        <output message="tns:batchingReportOutput">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </output>
        <fault message="tns:nmwgFault">
          <soap:body use="encoded"
                     encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
                     namespace="http://www.ggf.org/namespaces/2004/10/gridNetworkMonitoring"/>
        </fault>
      </operation>

    </wsdlsoap:binding>
  </binding>

  <!-- ==========================================================================
       Some example services. You should write your own.
  =========================================================================== -->

  <!-- This describes a service which uses document-style, literal SOAP,
       and supports only batching -->
  <wsdl:service name="ExampleBatchingSoapDocLitService">
    <wsdl:port name="batch" binding="tns:batchingSoapDocLitBinding">
      <wsdlsoap:address location="http://localhost:8080/example/BatchingSoapDocLitService"/>
    </wsdl:port>
  </wsdl:service>

  <!-- This describes a service which uses RPC-style, encoded SOAP,
       and supports both batching and non-batching operation -->
  <wsdl:service name="ExampleMultipleSoapRPCEncService">
    <wsdl:port name="batch" binding="tns:batchingSoapRPCEncBinding">
      <wsdlsoap:address location="http://localhost:8080/example/BatchingSoapRPCEncService"/>
    </wsdl:port>
    <wsdl:port name="batch" binding="tns:immediateSoapRPCEncBinding">
      <wsdlsoap:address location="http://localhost:8080/example/ImmediateSoapRPCEncService"/>
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

