<?xml version="1.0" encoding="utf-8"?>
<!-- - - - - - - - - - - - - - - - - - - - - - - -  -->
<!-- Schema: leco.xsd                               -->
<!-- - - - - - - - - - - - - - - - - - - - - - - -  -->
<!--
    SCHEMA: leco.xsd
    AUTHOR: Irena Spasic
    LAST CHANGE: 10-02-2005
    DESCRIPTION: This document provides an XML schema which models 
    the parameter setup for an GC-MS instrument, model Leco.
-->
<xs:schema xmlns:GCMS="http://www.GCMS.com" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.GCMS.com" elementFormDefault="unqualified" attributeFormDefault="unqualified">
  <!-- - - - - - - - - - - - - - - - - - - - - - - -  -->
  <!--  Root element: lecoRun                         -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - -  -->
  <xs:element name="lecoRun">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="GasChromatograph">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="hardware_control">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="Agilent 6890">
                      <xs:annotation>
                        <xs:documentation>Agilent 6890 Gas Chromatograph</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="Generic">
                      <xs:annotation>
                        <xs:documentation>Generic Gas Chromatograph</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                    <xs:enumeration value="Direct Inlet">
                      <xs:annotation>
                        <xs:documentation>Direct Inlet to Calibration compound</xs:documentation>
                      </xs:annotation>
                    </xs:enumeration>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="equilibration_time" type="xs:duration"/>
              <xs:element name="max_inlet_temperature" type="GCMS:temperature"/>
              <xs:element name="OvenTemperatureRamp">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="oven_entry" type="GCMS:ovenEntry" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="coolant_to_column_oven">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="GCMS:OnOffType">
                      <xs:attribute name="timeout" type="xs:int"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="TransferLine">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="temperature" type="GCMS:temperature"/>
                    <xs:element name="equilibration_time" type="xs:duration"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Inlet">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="type">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Split vs Splitless"/>
                          <!-- and so on??? -->
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="mode">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Split"/>
                          <!-- and so on??? -->
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="location">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Front"/>
                          <xs:enumeration value="Back"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="temperature" type="GCMS:temperature"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="flow_and_Pressure">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="EPC (Electronic Pressure Control)"/>
                    <xs:enumeration value="Conventional flow and pressure control"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Column">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="length">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:decimal">
                            <xs:attribute name="unit" type="xs:string" default="m"/>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="internal_diameter" type="GCMS:micron"/>
                    <xs:element name="film_thickness" type="GCMS:micron"/>
                    <xs:element name="phase" type="xs:string">
                      <!-- is there a pattern ??? -->
                    </xs:element>
                    <xs:element name="max_temperature" type="GCMS:temperature"/>
                    <xs:element name="bleed_masses" type="GCMS:masses"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="MassDefectTracking">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="mass" type="GCMS:mass" minOccurs="0" maxOccurs="unbounded"/>
                  </xs:sequence>
                  <xs:attribute name="MassOption">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:enumeration value="Included"/>
                        <xs:enumeration value="Excluded"/>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
                </xs:complexType>
              </xs:element>
              <xs:element name="carrier_gas">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="Helium"/>
                    <!-- and so on??? -->
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="Flow">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="approximate_const_flow" type="GCMS:YesNoType">
                      <xs:annotation>
                        <xs:documentation>Approximate constant flow via pressure ramps?</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="column_mode">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Constant Flow"/>
                          <!-- and so on??? -->
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="column_flow" type="GCMS:flow"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Split">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="ratio" type="xs:decimal"/>
                    <xs:element name="flow" type="GCMS:flow"/>
                    <xs:element name="total_flow" type="GCMS:flow"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="GasSaver">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="on_off" type="GCMS:OnOffType"/>
                    <xs:element name="flow">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:decimal">
                            <xs:attribute name="unit" type="xs:string" use="optional" fixed="ml"/>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="time" type="xs:duration"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Zones">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="detector_thermal_zone" type="GCMS:thermalZoneType"/>
                    <xs:element name="aux_thermal_zone_1" type="GCMS:thermalZoneType"/>
                    <xs:element name="aux_thermal_zone_2" type="GCMS:thermalZoneType"/>
                    <xs:element name="aux_pneumatic_zone_3" type="GCMS:OnOffType"/>
                    <xs:element name="aux_pneumatic_zone_4" type="GCMS:OnOffType"/>
                    <xs:element name="aux_pneumatic_zone_5" type="GCMS:OnOffType"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="MassSpectrometer">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="gc_total_time" type="GCMS:YesNoType"/>
              <xs:element name="solvent_delay" type="xs:duration"/>
              <xs:element name="filament_during_solvent_delay" type="GCMS:OnOffType"/>
              <xs:element name="msSettings">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="start_mass" type="GCMS:massU"/>
                    <xs:element name="end_mass" type="GCMS:massU"/>
                    <xs:element name="acquisition_rate">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:decimal">
                            <xs:attribute name="unit" type="xs:string" use="optional" fixed="spectra per second"/>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="detector_voltage" type="GCMS:voltage"/>
                    <xs:element name="filament_bias_voltage" type="GCMS:voltage"/>
                    <xs:element name="mass_defect_mode">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Auto">
                            <xs:annotation>
                              <xs:documentation>Select masses for automatic tracking in Section E of GC method</xs:documentation>
                            </xs:annotation>
                          </xs:enumeration>
                          <xs:enumeration value="Manual"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="verification" type="GCMS:OnOffType">
                      <xs:annotation>
                        <xs:documentation>Verify offset before collecting data?</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="mass_defect">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:decimal">
                            <xs:attribute name="unit" type="xs:string" use="optional" fixed="mu per 100 u"/>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="IonSource">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="temperature" type="GCMS:temperature"/>
                    <xs:element name="temperature_equilibration_time" type="xs:duration"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="MassesToDisplayDuringAcquisition" type="GCMS:masses"/>
              <xs:element name="epa_tune_compliance" type="GCMS:YesNoType">
                <!-- what type??? -->
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Autosampler">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="brand">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="Agilent"/>
                    <xs:enumeration value="CTC Combi Pal"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="nanoliter_adapter" type="GCMS:YesNoType"/>
              <xs:element name="syringe_size">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:int">
                      <xs:attribute name="unit" type="xs:string" use="optional" fixed="microL"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="sample_volume">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:int">
                      <xs:attribute name="unit" type="xs:string" use="optional" fixed="microL"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="number_of_sample_pumps" type="GCMS:intZeroFifteen"/>
              <xs:element name="viscosity_delay">
                <xs:simpleType>
                  <xs:restriction base="xs:duration">
                    <xs:minInclusive value="PT0S"/>
                    <xs:maxInclusive value="PT7S"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
              <xs:element name="sample_prewash" type="GCMS:intZeroFifteen"/>
              <xs:element name="solventA_prewash" type="GCMS:intZeroFifteen"/>
              <xs:element name="solventB_prewash" type="GCMS:intZeroFifteen"/>
              <xs:element name="preinjection_delay" type="GCMS:minute"/>
              <xs:element name="postinjection_delay" type="GCMS:minute"/>
              <xs:element name="solventA_postwash" type="GCMS:intZeroFifteen"/>
              <xs:element name="solventB_postwash" type="GCMS:intZeroFifteen"/>
              <xs:element name="slow_plunger" type="GCMS:YesNoType"/>
              <xs:element name="sample_skim" type="GCMS:YesNoType"/>
              <xs:element name="sample_skim_depth">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="GCMS:twoToThirty">
                      <xs:attribute name="unit" type="xs:string" use="optional" fixed="mm"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ElectronicsOperating" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Filaments">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="FilamentNo1" type="GCMS:filamentType"/>
                    <xs:element name="FilamentNo2" type="GCMS:filamentType"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="push_pulse" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="ion_focus" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="drift_region" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="einzel_lens" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="z_deflection" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="z_steering" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="yc_steering" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="yf_steering" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="moderator" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="reflector" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="barrier" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="detector" type="xs:string">
                <!-- what type??? -->
              </xs:element>
              <xs:element name="source_temperature" type="GCMS:temperature"/>
              <xs:element name="transfer_line_temperature" type="GCMS:temperature"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="DataProcessing" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Tasks">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="baseline" type="GCMS:YesNoType"/>
                    <xs:element name="peak_find" type="GCMS:YesNoType"/>
                    <xs:element name="library_search" type="GCMS:YesNoType"/>
                    <xs:element name="calculate_area_height" type="GCMS:YesNoType"/>
                    <xs:element name="retention_index_method" type="GCMS:YesNoType"/>
                    <xs:element name="quantify" type="GCMS:YesNoType"/>
                    <xs:element name="compare" type="GCMS:YesNoType"/>
                    <xs:element name="semiquantification" type="GCMS:YesNoType"/>
                    <xs:element name="tune_check" type="GCMS:YesNoType"/>
                    <xs:element name="tailing_factor_check" type="GCMS:YesNoType"/>
                    <xs:element name="calibration_check" type="GCMS:YesNoType"/>
                    <xs:element name="blank_check" type="GCMS:YesNoType"/>
                    <xs:element name="report" type="GCMS:YesNoType"/>
                    <xs:element name="export_peak_information" type="GCMS:YesNoType"/>
                    <xs:element name="export_andi_ms_file" type="GCMS:YesNoType"/>
                    <xs:element name="export_pegasus_data_file" type="GCMS:YesNoType"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="Baseline">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="TrackingInfo">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="tracking_entry" minOccurs="0" maxOccurs="0">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="number" type="xs:int"/>
                                <xs:element name="start" type="xs:string">
                                  <!-- what type??? -->
                                </xs:element>
                                <xs:element name="end" type="xs:string">
                                  <!-- what type??? -->
                                </xs:element>
                                <xs:element name="mode" type="xs:string">
                                  <!-- what type??? -->
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="offset" type="xs:decimal"/>
                    <xs:element name="data_points_to_average" type="xs:int"/>
                    <xs:element name="peak_width_broadening" type="GCMS:YesNoType"/>
                    <xs:element name="exp_peak_width" minOccurs="0" maxOccurs="2">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="peak_width" type="xs:duration"/>
                          <xs:element name="retention_time" type="xs:duration"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="max_unknown_peaks" type="xs:int"/>
                    <xs:element name="SegmentedProcessingInfo">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="segmented_processing_entry" minOccurs="0" maxOccurs="0">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="number" type="xs:int"/>
                                <xs:element name="start" type="xs:string">
                                  <!-- what type??? -->
                                </xs:element>
                                <xs:element name="end" type="xs:string">
                                  <!-- what type??? -->
                                </xs:element>
                                <xs:element name="peak_find" type="GCMS:OnOffType"/>
                                <xs:element name="sn" type="xs:decimal"/>
                                <xs:element name="Masses">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="mass" type="GCMS:mass" minOccurs="0" maxOccurs="unbounded"/>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="library_identity_search">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Normal"/>
                          <xs:enumeration value="Quick"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="library_search">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="Forward"/>
                          <xs:enumeration value="Reverse"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="number_of_hits" type="xs:int"/>
                    <xs:element name="masses_to_search" type="GCMS:masses"/>
                    <xs:element name="min_molecular_weight" type="GCMS:mass"/>
                    <xs:element name="max_molecular_weight" type="GCMS:mass"/>
                    <xs:element name="mass_threshold">
                      <xs:simpleType>
                        <xs:restriction base="xs:int">
                          <xs:minInclusive value="0"/>
                          <xs:maxInclusive value="998"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="min_similarity_match">
                      <xs:simpleType>
                        <xs:restriction base="xs:int">
                          <xs:minInclusive value="0"/>
                          <xs:maxInclusive value="999"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="libraries" type="GCMS:libraries"/>
                    <xs:element name="mass_for_area_height_calculation">
                      <xs:simpleType>
                        <xs:union memberTypes="xs:int GCMS:massCodes"/>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="retention_index_method">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="n-alkanes retention index yeast"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="check_retention_index_analytes" type="GCMS:YesNoType"/>
                    <xs:element name="max_retention_index_variation">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="GCMS:YesNoType">
                            <xs:attribute name="allowed_variation" type="xs:int" use="optional"/>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="update_retention_times" type="GCMS:YesNoType"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="SegmentedProcessing">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="start" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="end" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="peak_find" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="sn" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="Masses">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mass" type="GCMS:mass" maxOccurs="unbounded"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="LibrarySearch">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="libraries">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="library" type="xs:string" maxOccurs="unbounded"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="search_mode" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="number_of_hits" type="xs:int"/>
                    <xs:element name="masses_to_search">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mass" type="GCMS:mass" maxOccurs="unbounded"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="min_mol_weight" type="GCMS:mass"/>
                    <xs:element name="max_mol_weight" type="GCMS:mass"/>
                    <xs:element name="mass_threshold" type="GCMS:mass"/>
                    <xs:element name="minimum_similiarity_match" type="xs:decimal"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="SemiquantificationInfo" type="xs:string"/>
              <xs:element name="Filter">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Quantifieds">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="quantify" type="xs:string" maxOccurs="unbounded">
                            <!-- what type??? -->
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="match" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="out_of_tolerance" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="ContaminantsUnknowns">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="contaminants_unknown" type="xs:string" maxOccurs="unbounded"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="NotFounds">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="not_found" type="xs:string" maxOccurs="unbounded"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="group" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="expand_semiquantifications" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                    <xs:element name="display_total_row" type="xs:string">
                      <!-- what type??? -->
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="ExportedInfo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="LibraryHits">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="library_hit" type="xs:string" maxOccurs="unbounded"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Spectra">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="spectrum" type="xs:string" maxOccurs="unbounded"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="ID" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <!-- - - - - - - - - - - - - - - - - - - - - - - - -->
  <!--               custom types                    -->
  <!-- - - - - - - - - - - - - - - - - - - - - - - - -->
  <xs:complexType name="filamentType">
    <xs:sequence>
      <xs:element name="current" type="xs:decimal"/>
      <xs:element name="bias" type="xs:decimal"/>
      <xs:element name="bias_current" type="xs:decimal"/>
      <xs:element name="repeller" type="xs:string"/>
      <xs:element name="extraction_A" type="xs:string"/>
      <xs:element name="extraction_B" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="solventType">
    <xs:sequence>
      <xs:element name="prewash" type="xs:string"/>
      <xs:element name="postwash" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="intZeroFifteen">
    <xs:restriction base="xs:int">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="15"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="minute">
    <xs:restriction base="xs:duration">
      <xs:minInclusive value="PT0S"/>
      <xs:maxInclusive value="PT60S"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="twoToThirty">
    <xs:restriction base="xs:int">
      <xs:minInclusive value="-2"/>
      <xs:maxInclusive value="30"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="masses">
    <xs:sequence>
      <xs:element name="mass" type="GCMS:mass" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="mass">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="unit" type="xs:string" default="g??? which default?"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="libraries">
    <xs:sequence>
      <xs:element name="library" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="massCodes">
    <xs:restriction base="xs:string">
      <xs:enumeration value="U">
        <xs:annotation>
          <xs:documentation>Unique mass</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="T">
        <xs:annotation>
          <xs:documentation>Tic</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="A">
        <xs:annotation>
          <xs:documentation>Apexing masses</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="DA">
        <xs:annotation>
          <xs:documentation>Deconvoluted AIC</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="temperature">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="unit" type="xs:string" default="C"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="temperatureRate">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="unit" type="xs:string" default="C per min"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="ovenEntry">
    <xs:sequence>
      <xs:element name="number" type="xs:int"/>
      <xs:element name="rate" type="GCMS:temperatureRate"/>
      <xs:element name="target_temperature" type="GCMS:temperature"/>
      <xs:element name="duration" type="xs:duration"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="micron">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="unit" type="xs:string" use="optional" fixed="micron"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="flow">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="unit" type="xs:string" use="optional" fixed="ml per min"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="thermalZoneType">
    <xs:sequence>
      <xs:element name="on_off" type="GCMS:OnOffType"/>
      <xs:element name="temperature" type="GCMS:temperature" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="massU">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="unit" type="xs:string" use="optional" fixed="u"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="voltage">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="unit" type="xs:string" use="optional" fixed="V"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="OnOffType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="on"/>
      <xs:enumeration value="off"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="YesNoType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="yes"/>
      <xs:enumeration value="no"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
