<!--
********************************************************
*
* dna_strategy.xsd
*
* Authors: The DNA team, http://www.dna.ac.uk
*
* Version: SId: dna_strategy.xsd,v 1.10 2004/08/18 13:46:39 svensson 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:complexType name="strategy_request">
    <xsd:sequence>
      <xsd:element name="extra_commands"
                   minOccurs="0"
                   maxOccurs="1"
                   type="extra_commands"/>
      <xsd:element name="strategy_settings"
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="strategy_settings"/>      
      <xsd:element name="symmetry"
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="spacegroup"/>
   </xsd:sequence>
  </xsd:complexType>

<!--
********************************************************
*
* I've put this in to get xml generation to work, but 
* strategy_settings needs to be properly defined.(KSA).
*
********************************************************
-->


  <xsd:complexType name="strategy_settings">
    <xsd:sequence>
      <xsd:element name="resolution"
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="resolution"/>
      <!-- this is the limit on the number of 
           overlaps in % -->      
      <xsd:element name="overlap_limit"
                   minOccurs="0"
                   maxOccurs="1"
                   type="xsd:double"/>
    </xsd:sequence>
  </xsd:complexType>


  <xsd:complexType name="completeness">
    <xsd:sequence>
      <xsd:element name="standard"
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="xsd:double"/>      
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="predicted_spots">
    <xsd:sequence>
      <xsd:element name="full"
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="percentage"/>      
      <xsd:element name="overlap"
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="percentage"/>      
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="segment">
    <xsd:sequence>
      <xsd:element name="oscillation_sequence"    
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="oscillation_sequence"/>      
      <xsd:element name="predicted_spots"
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="predicted_spots"/>      
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="strategy_summary">
    <xsd:sequence>
      <xsd:element name="number_of_segments"
                   minOccurs="1"
                   maxOccurs="1"
                   type="xsd:integer"/>
      <xsd:element name="segment"
                   minOccurs="1"
                   maxOccurs="unbounded"
                   type="segment"/>
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="strategy_interpretation">
    <xsd:sequence>
      <xsd:element name="oscillation_sequence"
                   minOccurs="1"
                   maxOccurs="unbounded"
                   type="oscillation_sequence"/>
    </xsd:sequence>
  </xsd:complexType>



  <xsd:complexType name="strategy_response">
    <xsd:sequence>
      <xsd:element name="status"
                   minOccurs="1" 
                   maxOccurs="1" 
                   type="status"/>      
      <xsd:element name="completeness"
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="completeness"/>
      <xsd:element name="strategy_summary"
                   minOccurs="0" 
                   maxOccurs="unbounded" 
                   type="strategy_summary"/>
      <xsd:element name="segment"
                   minOccurs="0"
                   maxOccurs="unbounded"
                   type="segment"/>      
      <xsd:element name="strategy_interpretation"
                   minOccurs="0" 
                   maxOccurs="1" 
                   type="strategy_interpretation"/>      
    </xsd:sequence>
  </xsd:complexType>


</xsd:schema>