<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.tardis.edu.au/schemas" xmlns:oai_ds="http://www.tardis.edu.au/schemas" elementFormDefault="qualified">

    <!-- Protein Crystallography Dataset schema -->
    <!-- Version 1.0 - Updated 08/07/2008 -->
<xsd:element name="datasets">
    <xsd:complexType>
        <xsd:sequence>    
        <xsd:element name="dataset" minOccurs="0" maxOccurs="unbounded">
            <xsd:complexType>
                <xsd:sequence>
        
                <!-- Dataset Basics -->
                <xsd:element name="datasetName" type="xsd:string" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="collectionDate" type="xsd:date" minOccurs = "0" maxOccurs = "1"/>
                <xsd:element name="resolutionLimit" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="imageType" type="xsd:string" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="images" type="xsd:nonNegativeInteger" minOccurs = "1" maxOccurs = "1"/>
                                           
                <!-- Rotation Range Info -->
                <xsd:element name="oscillationRange" minOccurs="0" maxOccurs="unbounded">
                    <xsd:complexType>
                               <xsd:all>
                                <xsd:element name="start" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                                <xsd:element name="end" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>    
                              </xsd:all>
                       </xsd:complexType>
                </xsd:element>        
                
                <xsd:element name="oscillationAngle" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>        
        
                <!-- Instrument Info -->
                <xsd:element name="diffractometerType" type="xsd:string" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="xraySource" type="xsd:string" minOccurs = "1" maxOccurs = "1"/>
        
                <!-- Crystal Name -->
                <xsd:element name="crystalName" type="xsd:string" minOccurs = "1" maxOccurs = "1"/>
        
                <!-- File Info -->
                <xsd:element name="files" minOccurs="0" maxOccurs="1">
                    <xsd:complexType>
                        <xsd:sequence>
                           <xsd:element name="file" minOccurs="0" maxOccurs="unbounded">
                               <xsd:complexType>
                                   <xsd:all>
                                <xsd:element name="fileName" type="xsd:string" minOccurs = "1" maxOccurs = "1"/>
                                <xsd:element name="fileSize" type="xsd:string" minOccurs = "1" maxOccurs = "1"/>    
                                </xsd:all>                       
                               </xsd:complexType>
                           </xsd:element>
                           </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
        
                <!-- OTHER DIFFDUMP-PRODUCED INFO -->
                <xsd:element name="exposureTime" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="detectorSN" type="xsd:string" minOccurs = "1" maxOccurs = "1"/>            
                <xsd:element name="xrayWavelength" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="directBeamXPos" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="directBeamYPos" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="detectorDistance" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>            
                <xsd:element name="imageSizeX" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="imageSizeY" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="pixelSizeX" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="pixelSizeY" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
                <xsd:element name="twoTheta" type="xsd:float" minOccurs = "1" maxOccurs = "1"/>
        
                <!-- OPTIONAL USER INPUT -->
                <xsd:element name="mosaicSpread" type="xsd:float" minOccurs = "0" maxOccurs = "1"/>            
                <xsd:element name="chiAngle" type="xsd:float" minOccurs = "0" maxOccurs = "1"/>    
        
                </xsd:sequence>
            </xsd:complexType>
        </xsd:element>
    </xsd:sequence>
    </xsd:complexType>
</xsd:element>
</xsd:schema>