<!--
********************************************************
*
* dna_collect.xsd
*
* Authors: The DNA team, http://www.dna.ac.uk
*
* Version: SId: dna_collect.xsd,v 1.16 2005/12/20 12:07:07 shk Exp S
*
********************************************************
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:dna="http://www.dna.ac.uk/DNA_XMLSchema">


  <xsd:include schemaLocation="dna_common.xsd"/>
  <xsd:include schemaLocation="dna_kappastrategy.xsd"/>



  <xsd:complexType name="collect_request">
    <xsd:sequence>
      <xsd:element name="beamline_parameters" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="beamline_parameters"/>
      <xsd:element name="ignore_maximum_exposure" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:boolean"/>
      <xsd:element name="fileinfo" 
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="fileinfo"/>
      <xsd:element name="oscillation_sequence"
                   minOccurs="1" 
                   maxOccurs="unbounded" 
                   type="oscillation_sequence"/>
      <xsd:element name="wavelength" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:double"/>
      <xsd:element name="resolution" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="resolution"/>
      <xsd:element name="kappa_collect_settings" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="kappa_collect_settings"/>
      <xsd:element name="sample_reference"
                   minOccurs="0"
                   maxOccurs="1"
                   type="sample_reference"/>
      <xsd:element name="sessionId" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:integer"/>
      <xsd:element name="comment"
                   minOccurs="0"
                   maxOccurs="1"
                   type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>

  <!--  Example collect_request:

        <collect_request>
          <fileinfo>
            <directory>/data/id14eh1/inhouse/dna</directory>
            <prefix>dnatest</prefix>
          </fileinfo>
          <oscillation_sequence>
            <start>0.0</start>
            <range>1.0</range>
            <number_of_images>2</number_of_images>
            <overlap>-89.0</overlap>
            <exposure_time>1.0</exposure_time>
            <start_image_number>1</start_image_number>
            <number_of_passes>1</number_of_passes>
          </oscillation_sequence>
        </collect_request>
           
   -->   



  <xsd:complexType name="collect_reference_request">
    <xsd:sequence>
      <xsd:element name="collect_request" 
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="collect_request"/>
      <xsd:element name="archive_reference_images"
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:boolean"/>
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="collect_reference_response">
    <xsd:sequence>
      <xsd:element name="dataCollectionId"
                   minOccurs="0"
                   maxOccurs="1"
                   type="xsd:integer"/>
      <xsd:element name="status" 
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="status"/>
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="collect_data_request">
    <xsd:sequence>
      <xsd:element name="collect_request" 
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="collect_request"/>
      <xsd:element name="integrate" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:boolean"/>
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="collect_data_response">
    <xsd:sequence>
      <xsd:element name="status" 
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="status"/>
    </xsd:sequence>
  </xsd:complexType>



  <!--  Example collect_response:

        <collect_response>
          <status>
            <code>ok</code>
          </status>
        </collect_response>

   -->   


  <xsd:complexType name="collect_response">
    <xsd:sequence>
      <xsd:element name="status" 
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="status"/>
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="bcm_parameters_request">
    <xsd:sequence>
      <xsd:element name="synchronous" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:boolean"/>
    </xsd:sequence>    
  </xsd:complexType>

  <!--  Example:   

        <?xml version="1.0"?>
        <bcm_parameters_request>
          <synchronous>true</synchronous>
        <bcm_parameters_request>

   -->




  <xsd:complexType name="beamline_parameters">
    <xsd:sequence>
      <xsd:element name="maximum_exposure" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:double"/>
      <xsd:element name="minimum_exposure_time" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:double"/>
      <xsd:element name="minimum_phi_speed" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:double"/>
      <xsd:element name="maximum_phi_speed" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:double"/>
      <xsd:element name="ignore_maximum_exposure" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:boolean"/>
    </xsd:sequence>
  </xsd:complexType>


  <xsd:complexType name="bcm_parameters_response">
    <xsd:sequence>
      <xsd:element name="beamline_parameters" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="beamline_parameters"/>
      <xsd:element name="beam" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="beam"/>
      <xsd:element name="experiment" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="experiment"/>
      <xsd:element name="detector" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="detector"/>
      <xsd:element name="status" 
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="status"/>
    </xsd:sequence>
  </xsd:complexType>

  <!--  Example bcm_parameters_response:   

        <?xml version="1.0"?>
        <bcm_parameters_response>
          <beam>
            <x>94.32</x>
            <y>95.29</y>
          </beam>
          <experiment>
            <wavelength>0.9340</wavelength>
            <distance>250.0</distance>
          </experiment>
          <detector>
            <type>adsl</type>
          </detector>
          <status>
            <code>ok</code>
          </status>
        </bcm_parameters_response>

   -->



  <xsd:complexType name="sample_references_request">
    <xsd:sequence>
      <xsd:element name="synchronous" 
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="xsd:boolean"/>
    </xsd:sequence>    
  </xsd:complexType>



  <xsd:complexType name="sample_references_response">
    <xsd:sequence>
      <xsd:element name="sample_reference" 
                   minOccurs="0" 
                   maxOccurs="unbounded" 
                   type="sample_reference"/>
      <xsd:element name="status" 
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="status"/>
    </xsd:sequence>
  </xsd:complexType>



</xsd:schema>