Batchelor SOAP Service

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="https://nowise.se/schemas/batchelor/soap?ver=2.0" xmlns:soap-env="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" targetNamespace="https://nowise.se/schemas/batchelor/soap?ver=2.0">
  <wsdl:documentation>The SOAP service handler.
  
  &amp;lt;code&amp;gt;
  // 
  // The default job queue is derived from connection. It's possibly to use
  // multiple job queues and switch between them by calling select().
  //
  proxy-&amp;gt;select('my-job-queue');
  
  // 
  // Pass null to revert back to default job queue:
  // 
  proxy-&amp;gt;select(null);
  &amp;lt;/code&amp;gt;
  
  &amp;lt;code&amp;gt;
  // 
  // Queued jobs can be listed by calling queue(). Jobs are enqueue (scheduled 
  // for later execution) by calling enqueue:
  // 
  queued = proxy-&amp;gt;enqueue(job);
  
  // 
  // The queued job returned contains the identity that can be used i.e. when
  // removing a job:
  // 
  proxy-&amp;gt;dequeue(queued-&amp;gt;identity);
  
  &amp;lt;/code&amp;gt;
  
  &amp;lt;code&amp;gt;
  // 
  // The three methods opendid(), readdir() and fopen() can be used to create
  // explorer-like interfaces. This code can be used to download all files in
  // from a job queue:
  // 
  foreach (proxy-&amp;gt;opendir() as identity) {
       foreach (proxy-&amp;gt;readdir(identity) as filename) {
               this-&amp;gt;save(filename, proxy-&amp;gt;fopen(identity, filename));
       }
  }
  &amp;lt;/code&amp;gt;
 
  @since 2.0.x Clients based on 1.0 API need to update.
  @author Anders Lövgren (Nowise Systems)</wsdl:documentation>
  <wsdl:types>
    <xsd:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="https://nowise.se/schemas/batchelor/soap?ver=2.0">
      <xsd:complexType name="QueuedJob">
        <xsd:all>
          <xsd:element name="identity" type="tns:JobIdentity"/>
          <xsd:element name="status" type="tns:JobStatus"/>
          <xsd:element name="submit" type="tns:JobSubmit"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="JobIdentity">
        <xsd:all>
          <xsd:element name="jobid" type="xsd:string"/>
          <xsd:element name="result" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="JobStatus">
        <xsd:all>
          <xsd:element name="queued" type="tns:DateTime"/>
          <xsd:element name="started" type="tns:DateTime"/>
          <xsd:element name="finished" type="tns:DateTime"/>
          <xsd:element name="state" type="tns:JobState"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="DateTime">
        <xsd:all>
          <xsd:element name="date" type="xsd:string"/>
          <xsd:element name="timezone_type" type="xsd:int"/>
          <xsd:element name="timezone" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="JobState">
        <xsd:all>
          <xsd:element name="value" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="JobSubmit">
        <xsd:all>
          <xsd:element name="task" type="xsd:string"/>
          <xsd:element name="name" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="JobData">
        <xsd:all>
          <xsd:element name="data" type="xsd:string"/>
          <xsd:element name="type" type="xsd:string"/>
          <xsd:element name="task" type="xsd:string"/>
          <xsd:element name="name" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:complexType name="File">
        <xsd:all>
          <xsd:element name="name" type="xsd:string"/>
          <xsd:element name="size" type="xsd:int"/>
          <xsd:element name="mime" type="xsd:string"/>
          <xsd:element name="type" type="xsd:string"/>
          <xsd:element name="lang" type="xsd:string"/>
        </xsd:all>
      </xsd:complexType>
      <xsd:element name="queue" type="tns:queue"/>
      <xsd:complexType name="queue">
        <xsd:sequence>
          <xsd:element name="sort" type="xsd:string" maxOccurs="1"/>
          <xsd:element name="filter" type="xsd:string" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="queueResponse" type="tns:queueResponse"/>
      <xsd:complexType name="queueResponse">
        <xsd:sequence>
          <xsd:element name="return" type="tns:QueuedJob" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="select" type="tns:select"/>
      <xsd:complexType name="select">
        <xsd:sequence>
          <xsd:element name="queue" type="xsd:string" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="selectResponse" type="tns:selectResponse"/>
      <xsd:complexType name="selectResponse">
        <xsd:sequence>
          <xsd:element name="return" type="xsd:string" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="enqueue" type="tns:enqueue"/>
      <xsd:complexType name="enqueue">
        <xsd:sequence>
          <xsd:element name="indata" type="tns:JobData" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="enqueueResponse" type="tns:enqueueResponse"/>
      <xsd:complexType name="enqueueResponse">
        <xsd:sequence>
          <xsd:element name="return" type="tns:QueuedJob" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="dequeue" type="tns:dequeue"/>
      <xsd:complexType name="dequeue">
        <xsd:sequence>
          <xsd:element name="job" type="tns:JobIdentity" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="dequeueResponse" type="tns:dequeueResponse"/>
      <xsd:complexType name="dequeueResponse">
        <xsd:sequence>
          <xsd:element name="return" type="xsd:boolean" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="suspend" type="tns:suspend"/>
      <xsd:complexType name="suspend">
        <xsd:sequence>
          <xsd:element name="job" type="tns:JobIdentity" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="suspendResponse" type="tns:suspendResponse"/>
      <xsd:complexType name="suspendResponse">
        <xsd:sequence>
          <xsd:element name="return" type="xsd:boolean" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="resume" type="tns:resume"/>
      <xsd:complexType name="resume">
        <xsd:sequence>
          <xsd:element name="job" type="tns:JobIdentity" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="resumeResponse" type="tns:resumeResponse"/>
      <xsd:complexType name="resumeResponse">
        <xsd:sequence>
          <xsd:element name="return" type="xsd:boolean" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="stat" type="tns:stat"/>
      <xsd:complexType name="stat">
        <xsd:sequence>
          <xsd:element name="job" type="tns:JobIdentity" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="statResponse" type="tns:statResponse"/>
      <xsd:complexType name="statResponse">
        <xsd:sequence>
          <xsd:element name="return" type="tns:JobStatus" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="watch" type="tns:watch"/>
      <xsd:complexType name="watch">
        <xsd:sequence>
          <xsd:element name="stamp" type="xsd:int" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="watchResponse" type="tns:watchResponse"/>
      <xsd:complexType name="watchResponse">
        <xsd:sequence>
          <xsd:element name="return" type="tns:QueuedJob" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="opendir" type="tns:opendir"/>
      <xsd:complexType name="opendir">
        <xsd:sequence/>
      </xsd:complexType>
      <xsd:element name="opendirResponse" type="tns:opendirResponse"/>
      <xsd:complexType name="opendirResponse">
        <xsd:sequence>
          <xsd:element name="return" type="tns:JobIdentity" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="readdir" type="tns:readdir"/>
      <xsd:complexType name="readdir">
        <xsd:sequence>
          <xsd:element name="job" type="tns:JobIdentity" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="readdirResponse" type="tns:readdirResponse"/>
      <xsd:complexType name="readdirResponse">
        <xsd:sequence>
          <xsd:element name="return" type="tns:File" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="fopen" type="tns:fopen"/>
      <xsd:complexType name="fopen">
        <xsd:sequence>
          <xsd:element name="job" type="tns:JobIdentity" maxOccurs="1"/>
          <xsd:element name="file" type="xsd:string" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="fopenResponse" type="tns:fopenResponse"/>
      <xsd:complexType name="fopenResponse">
        <xsd:sequence>
          <xsd:element name="return" type="xsd:string" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
      <xsd:element name="version" type="tns:version"/>
      <xsd:complexType name="version">
        <xsd:sequence/>
      </xsd:complexType>
      <xsd:element name="versionResponse" type="tns:versionResponse"/>
      <xsd:complexType name="versionResponse">
        <xsd:sequence>
          <xsd:element name="return" type="xsd:string" maxOccurs="1"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:schema>
  </wsdl:types>
  <wsdl:message name="queue">
    <wsdl:part element="tns:queue" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="select">
    <wsdl:part element="tns:select" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="enqueue">
    <wsdl:part element="tns:enqueue" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="dequeue">
    <wsdl:part element="tns:dequeue" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="suspend">
    <wsdl:part element="tns:suspend" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="resume">
    <wsdl:part element="tns:resume" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="stat">
    <wsdl:part element="tns:stat" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="watch">
    <wsdl:part element="tns:watch" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="opendir">
    <wsdl:part element="tns:opendir" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="readdir">
    <wsdl:part element="tns:readdir" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="fopen">
    <wsdl:part element="tns:fopen" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="version">
    <wsdl:part element="tns:version" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="queueResponse">
    <wsdl:part element="tns:queueResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="selectResponse">
    <wsdl:part element="tns:selectResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="enqueueResponse">
    <wsdl:part element="tns:enqueueResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="dequeueResponse">
    <wsdl:part element="tns:dequeueResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="suspendResponse">
    <wsdl:part element="tns:suspendResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="resumeResponse">
    <wsdl:part element="tns:resumeResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="statResponse">
    <wsdl:part element="tns:statResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="watchResponse">
    <wsdl:part element="tns:watchResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="opendirResponse">
    <wsdl:part element="tns:opendirResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="readdirResponse">
    <wsdl:part element="tns:readdirResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="fopenResponse">
    <wsdl:part element="tns:fopenResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:message name="versionResponse">
    <wsdl:part element="tns:versionResponse" name="parameters"/>
  </wsdl:message>
  <wsdl:portType name="SoapServiceHandlerPortType">
    <wsdl:operation name="queue">
      <wsdl:documentation>This method returns the list of queued jobs in current queue.
          
          @param string sort The sort options.
          @param string filter The filter options.
          @return QueuedJob[]</wsdl:documentation>
      <wsdl:input message="tns:queue" name="queue"/>
      <wsdl:output message="tns:queueResponse" name="queueResponse"/>
    </wsdl:operation>
    <wsdl:operation name="select">
      <wsdl:documentation>Switch currently selected job queue.
          
          Pass queue as the name of the job queue to select it as current job
          qeuue for next operations. Use null as argument for reverting back to
          default queue.
          
          @param string queue The queue name.
          @return string</wsdl:documentation>
      <wsdl:input message="tns:select" name="select"/>
      <wsdl:output message="tns:selectResponse" name="selectResponse"/>
    </wsdl:operation>
    <wsdl:operation name="enqueue">
      <wsdl:documentation>Queues an job for later execution.
          
          @param JobData indata The input data.
          @return QueuedJob</wsdl:documentation>
      <wsdl:input message="tns:enqueue" name="enqueue"/>
      <wsdl:output message="tns:enqueueResponse" name="enqueueResponse"/>
    </wsdl:operation>
    <wsdl:operation name="dequeue">
      <wsdl:documentation>Dequeues an already existing job.
          
          @param JobIdentity job The job identity.
          @return bool</wsdl:documentation>
      <wsdl:input message="tns:dequeue" name="dequeue"/>
      <wsdl:output message="tns:dequeueResponse" name="dequeueResponse"/>
    </wsdl:operation>
    <wsdl:operation name="suspend">
      <wsdl:documentation>Suspend (pause) an already running job.
          @param JobIdentity job The job identity.
          @return bool</wsdl:documentation>
      <wsdl:input message="tns:suspend" name="suspend"/>
      <wsdl:output message="tns:suspendResponse" name="suspendResponse"/>
    </wsdl:operation>
    <wsdl:operation name="resume">
      <wsdl:documentation>Resume (continue) an already suspended job.
          @param JobIdentity job The job identity.
          @return bool</wsdl:documentation>
      <wsdl:input message="tns:resume" name="resume"/>
      <wsdl:output message="tns:resumeResponse" name="resumeResponse"/>
    </wsdl:operation>
    <wsdl:operation name="stat">
      <wsdl:documentation>Get status for single job.
          
          @param JobIdentity job
          @return JobStatus</wsdl:documentation>
      <wsdl:input message="tns:stat" name="stat"/>
      <wsdl:output message="tns:statResponse" name="statResponse"/>
    </wsdl:operation>
    <wsdl:operation name="watch">
      <wsdl:documentation>Get an list of jobs enqueued after the given timestamp.
          
          @param int stamp The UNIX timestamp.
          @return QueuedJob[]</wsdl:documentation>
      <wsdl:input message="tns:watch" name="watch"/>
      <wsdl:output message="tns:watchResponse" name="watchResponse"/>
    </wsdl:operation>
    <wsdl:operation name="opendir">
      <wsdl:documentation>List all queued jobs.
          
          Call this method to return a list of all jobs in the current selected 
          batch queue.
          
          @return JobIdentity[]</wsdl:documentation>
      <wsdl:input message="tns:opendir" name="opendir"/>
      <wsdl:output message="tns:opendirResponse" name="opendirResponse"/>
    </wsdl:operation>
    <wsdl:operation name="readdir">
      <wsdl:documentation>List files and directories in job directory.
          
          Get a list of all files and directories in the job directory associated 
          with the job identity object.
          
          @param JobIdentity job The job identity.
          @return File[]</wsdl:documentation>
      <wsdl:input message="tns:readdir" name="readdir"/>
      <wsdl:output message="tns:readdirResponse" name="readdirResponse"/>
    </wsdl:operation>
    <wsdl:operation name="fopen">
      <wsdl:documentation>Read file content.
          
          Opens the given file from the job directory associated with the job 
          identity object and return its content.
          
          @param JobIdentity job The job identity.
          @param string file The filename.
          @return string</wsdl:documentation>
      <wsdl:input message="tns:fopen" name="fopen"/>
      <wsdl:output message="tns:fopenResponse" name="fopenResponse"/>
    </wsdl:operation>
    <wsdl:operation name="version">
      <wsdl:documentation>Get API version.
          @return string</wsdl:documentation>
      <wsdl:input message="tns:version" name="version"/>
      <wsdl:output message="tns:versionResponse" name="versionResponse"/>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="SoapServiceHandlerBinding" type="tns:SoapServiceHandlerPortType">
    <soap-env:binding xmlns="http://schemas.xmlsoap.org/wsdl/soap/" style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="queue">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="select">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="enqueue">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="dequeue">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="suspend">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="resume">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="stat">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="watch">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="opendir">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="readdir">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="fopen">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="version">
      <wsdl:input xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:input>
      <wsdl:output xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/">
        <soap-env:body xmlns="http://schemas.xmlsoap.org/wsdl/soap/" use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="SoapServiceHandlerService">
    <wsdl:port xmlns:default="http://schemas.xmlsoap.org/wsdl/soap/" name="SoapServiceHandlerPort" binding="tns:SoapServiceHandlerBinding">
      <soap-env:address xmlns="http://schemas.xmlsoap.org/wsdl/soap/" location="http://chemgps.bmc.uu.se/batchelor/api/soap/"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>