Advertisement
Guest User

XML schema (XSD)

a guest
Apr 8th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
XML 51.14 KB | None | 0 0
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema xmlns:rdml="http://www.rdml.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.rdml.org">
  3.   <xs:annotation>
  4.     <xs:documentation>
  5.      The MIT License
  6.  
  7.      Copyright (c) 2008-2013 the RDML-consortium
  8.  
  9.      Permission is hereby granted, free of charge, to any person obtaining a copy
  10.      of this software and associated documentation files (the "Software"), to deal
  11.      in the Software without restriction, including without limitation the rights
  12.      to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  13.      copies of the Software, and to permit persons to whom the Software is
  14.      furnished to do so, subject to the following conditions:
  15.  
  16.      The above copyright notice and this permission notice shall be included in
  17.      all copies or substantial portions of the Software.
  18.  
  19.      THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  20.      IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  21.      FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  22.      AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  23.      LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  24.      OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  25.      THE SOFTWARE.
  26.    </xs:documentation>
  27.   </xs:annotation>
  28.   <xs:complexType name="annotationType">
  29.     <xs:annotation>
  30.       <xs:documentation>
  31.        These elements should be used to annotate samples by setting a
  32.        property and a value. A property could be sex, the value M or F.
  33.      </xs:documentation>
  34.     </xs:annotation>
  35.     <xs:all>
  36.       <xs:element name="property" type="xs:string"/>
  37.       <xs:element name="value" type="xs:string"/>
  38.     </xs:all>
  39.   </xs:complexType>
  40.   <xs:complexType name="cdnaSynthesisMethodType">
  41.     <xs:annotation>
  42.       <xs:documentation>
  43.        Description of the cDNA synthesis method.
  44.      </xs:documentation>
  45.     </xs:annotation>
  46.     <xs:sequence>
  47.       <xs:element name="enzyme" type="xs:string" minOccurs="0">
  48.         <xs:annotation>
  49.           <xs:documentation>
  50.            Enzyme used for reverse transcription.
  51.          </xs:documentation>
  52.         </xs:annotation>
  53.       </xs:element>
  54.       <xs:element name="primingMethod" type="rdml:primingMethodType" minOccurs="0"/>
  55.       <xs:element name="dnaseTreatment" type="xs:boolean" minOccurs="0">
  56.         <xs:annotation>
  57.           <xs:documentation>
  58.            True if RNA was DNAse treated prior cDNA synthesis.
  59.          </xs:documentation>
  60.         </xs:annotation>
  61.       </xs:element>
  62.       <xs:element name="thermalCyclingConditions" type="rdml:idReferencesType" minOccurs="0"/>
  63.     </xs:sequence>
  64.   </xs:complexType>
  65.   <xs:complexType name="commercialAssayType">
  66.     <xs:annotation>
  67.       <xs:documentation>
  68.        For some commercial assays, the primer sequences may be unknown. This element
  69.        allows to describe commercial assays.
  70.      </xs:documentation>
  71.     </xs:annotation>
  72.     <xs:sequence>
  73.       <xs:element name="company" type="xs:string"/>
  74.       <xs:element name="orderNumber" type="xs:string"/>
  75.     </xs:sequence>
  76.   </xs:complexType>
  77.   <xs:simpleType name="cqDetectionMethodType">
  78.     <xs:annotation>
  79.       <xs:documentation>
  80.        The method used to determine the Cq value.
  81.      </xs:documentation>
  82.     </xs:annotation>
  83.     <xs:restriction base="xs:string">
  84.       <xs:enumeration value="automated threshold and baseline settings"/>
  85.       <xs:enumeration value="manual threshold and baseline settings"/>
  86.       <xs:enumeration value="second derivative maximum"/>
  87.       <xs:enumeration value="other"/>
  88.     </xs:restriction>
  89.   </xs:simpleType>
  90.   <xs:complexType name="dataCollectionSoftwareType">
  91.     <xs:annotation>
  92.       <xs:documentation>
  93.        Software name and version used to collect and analyze the data.
  94.      </xs:documentation>
  95.     </xs:annotation>
  96.     <xs:sequence>
  97.       <xs:element name="name" type="xs:string"/>
  98.       <xs:element name="version" type="xs:string"/>
  99.     </xs:sequence>
  100.   </xs:complexType>
  101.   <xs:complexType name="dataType">
  102.     <xs:annotation>
  103.       <xs:documentation>
  104.        Due to the frequent occurrence of this element, names are kept short.
  105.      </xs:documentation>
  106.     </xs:annotation>
  107.     <xs:sequence>
  108.       <xs:element name="tar" type="rdml:idReferencesType">
  109.         <xs:annotation>
  110.           <xs:documentation>
  111.            TargetID - A reference to a target.
  112.          </xs:documentation>
  113.         </xs:annotation>
  114.       </xs:element>
  115.       <xs:element name="cq" type="xs:float" minOccurs="0">
  116.         <xs:annotation>
  117.           <xs:documentation>
  118.            Quantification cycle - The calculated fractional PCR cycle used
  119.            for downstream quantification.
  120.            Negative values are used to express following conditions:
  121.            Not Available: -1.0
  122.          </xs:documentation>
  123.         </xs:annotation>
  124.       </xs:element>
  125.       <xs:element name="excl" type="xs:string" minOccurs="0">
  126.         <xs:annotation>
  127.           <xs:documentation>
  128.            Excluded - If present, this entry should not be evaluated. Do not set
  129.            this element to false if this entry is valid, leave the entire
  130.            element out instead.
  131.            It may contain a string with reason for exclusion. Several reasons
  132.            for exclusion should be seperated by semicolons ";".
  133.          </xs:documentation>
  134.         </xs:annotation>
  135.       </xs:element>
  136.       <xs:element name="adp" type="rdml:dpAmpCurveType" maxOccurs="unbounded" minOccurs="0">
  137.         <xs:annotation>
  138.           <xs:documentation>
  139.            Amplification data point - The single data points measured during amplification.
  140.          </xs:documentation>
  141.         </xs:annotation>
  142.       </xs:element>
  143.       <xs:element name="mdp" type="rdml:dpMeltingCurveType" maxOccurs="unbounded" minOccurs="0">
  144.         <xs:annotation>
  145.           <xs:documentation>
  146.            Melting curve data point - The single data points measured during the melting analysis.
  147.          </xs:documentation>
  148.         </xs:annotation>
  149.       </xs:element>
  150.       <xs:element name="endPt" type="xs:float" minOccurs="0">
  151.         <xs:annotation>
  152.           <xs:documentation>
  153.            End point - Result of an endpoint measurement.
  154.          </xs:documentation>
  155.         </xs:annotation>
  156.       </xs:element>
  157.       <xs:element name="bgFluor" type="xs:float" minOccurs="0">
  158.         <xs:annotation>
  159.           <xs:documentation>
  160.            Background fluorescence - The y-intercept of the baseline
  161.            trend based on the estimated background fluorescence.
  162.          </xs:documentation>
  163.         </xs:annotation>
  164.       </xs:element>
  165.       <xs:element name="bgFluorSlp" type="xs:float" minOccurs="0">
  166.         <xs:annotation>
  167.           <xs:documentation>
  168.            Background fluorescence slope - The slope of the baseline trend
  169.            based on the estimated background fluorescence. The element
  170.            should be absent to indicate a slope of 0.0; If this element is
  171.            present without the bgFluor element it should be ignored.
  172.          </xs:documentation>
  173.         </xs:annotation>
  174.       </xs:element>
  175.       <xs:element name="quantFluor" type="xs:float" minOccurs="0">
  176.         <xs:annotation>
  177.           <xs:documentation>
  178.            Quantification flourescence - The fluorescence value corresponding to the treshold line.
  179.          </xs:documentation>
  180.         </xs:annotation>
  181.       </xs:element>
  182.     </xs:sequence>
  183.   </xs:complexType>
  184.   <xs:complexType name="documentationType">
  185.     <xs:annotation>
  186.       <xs:documentation>
  187.        These elements should be used if the same description applies to many samples,
  188.        targets or experiments.
  189.      </xs:documentation>
  190.     </xs:annotation>
  191.     <xs:all>
  192.       <xs:element name="text" type="xs:string" minOccurs="0"/>
  193.     </xs:all>
  194.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  195.   </xs:complexType>
  196.   <xs:complexType name="dpAmpCurveType">
  197.     <xs:annotation>
  198.       <xs:documentation>
  199.        Due to the frequent occurence of this element, names are kept short.
  200.      </xs:documentation>
  201.     </xs:annotation>
  202.     <xs:sequence>
  203.       <xs:element name="cyc" type="xs:float">
  204.         <xs:annotation>
  205.           <xs:documentation>
  206.            Cycle - The PCR cycle at which data point was collected.
  207.          </xs:documentation>
  208.         </xs:annotation>
  209.       </xs:element>
  210.       <xs:element name="tmp" type="xs:float" minOccurs="0">
  211.         <xs:annotation>
  212.           <xs:documentation>
  213.            Temperature - The temperature in degrees Celsius at the time of measurement.
  214.          </xs:documentation>
  215.         </xs:annotation>
  216.       </xs:element>
  217.       <xs:element name="fluor" type="xs:float">
  218.         <xs:annotation>
  219.           <xs:documentation>
  220.            Fluorescence - The fluorescence intensity measured without any correction.
  221.            The fluorescence intensity must not be baseline corrected.
  222.          </xs:documentation>
  223.         </xs:annotation>
  224.       </xs:element>
  225.     </xs:sequence>
  226.   </xs:complexType>
  227.   <xs:complexType name="dpMeltingCurveType">
  228.     <xs:annotation>
  229.       <xs:documentation>
  230.        Due to the frequent occurence of this element, names are kept short.
  231.      </xs:documentation>
  232.     </xs:annotation>
  233.     <xs:sequence>
  234.       <xs:element name="tmp" type="xs:float">
  235.         <xs:annotation>
  236.           <xs:documentation>
  237.            Temperature - The temperature in degrees Celsius of this data point.
  238.          </xs:documentation>
  239.         </xs:annotation>
  240.       </xs:element>
  241.       <xs:element name="fluor" type="xs:float">
  242.         <xs:annotation>
  243.           <xs:documentation>
  244.            Fluorescence - The fluorescence intensity measured without any correction.
  245.            The fluorescence intensity must not be baseline corrected.
  246.          </xs:documentation>
  247.         </xs:annotation>
  248.       </xs:element>
  249.     </xs:sequence>
  250.   </xs:complexType>
  251.   <xs:complexType name="dyeType">
  252.     <xs:annotation>
  253.       <xs:documentation>
  254.        Information on a dye.
  255.      </xs:documentation>
  256.     </xs:annotation>
  257.     <xs:sequence>
  258.       <xs:element name="description" type="xs:string" minOccurs="0"/>
  259.     </xs:sequence>
  260.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  261.   </xs:complexType>
  262.   <xs:complexType name="experimenterType">
  263.     <xs:annotation>
  264.       <xs:documentation>
  265.        Contact details of the experimenter.
  266.      </xs:documentation>
  267.     </xs:annotation>
  268.     <xs:sequence>
  269.       <xs:element name="firstName" type="xs:string"/>
  270.       <xs:element name="lastName" type="xs:string"/>
  271.       <xs:element name="email" type="xs:string" minOccurs="0"/>
  272.       <xs:element name="labName" type="xs:string" minOccurs="0"/>
  273.       <xs:element name="labAddress" type="xs:string" minOccurs="0"/>
  274.     </xs:sequence>
  275.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  276.   </xs:complexType>
  277.   <xs:complexType name="experimentType">
  278.     <xs:annotation>
  279.       <xs:documentation>
  280.        An experiment can contain several runs.
  281.      </xs:documentation>
  282.     </xs:annotation>
  283.     <xs:sequence>
  284.       <xs:element name="description" type="xs:string" minOccurs="0"/>
  285.       <xs:element name="documentation" type="rdml:idReferencesType" minOccurs="0" maxOccurs="unbounded"/>
  286.       <xs:element name="run" type="rdml:runType" minOccurs="0" maxOccurs="unbounded">
  287.         <xs:unique name="runUniId">
  288.           <xs:annotation>
  289.             <xs:documentation>
  290.              react id within the run must be unique.
  291.            </xs:documentation>
  292.           </xs:annotation>
  293.           <xs:selector xpath="./rdml:react"/>
  294.           <xs:field xpath="@id"/>
  295.         </xs:unique>
  296.         <xs:unique name="runDocumentationId">
  297.           <xs:annotation>
  298.             <xs:documentation>
  299.              Documentation references within the run must be unique.
  300.            </xs:documentation>
  301.           </xs:annotation>
  302.           <xs:selector xpath="./rdml:documentation"/>
  303.           <xs:field xpath="@id"/>
  304.         </xs:unique>
  305.         <xs:unique name="runExperimenterId">
  306.           <xs:annotation>
  307.             <xs:documentation>
  308.              Experimenter references within the run must be unique.
  309.            </xs:documentation>
  310.           </xs:annotation>
  311.           <xs:selector xpath="./rdml:experimenter"/>
  312.           <xs:field xpath="@id"/>
  313.         </xs:unique>
  314.       </xs:element>
  315.     </xs:sequence>
  316.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  317.   </xs:complexType>
  318.   <xs:complexType name="gradientType">
  319.     <xs:annotation>
  320.       <xs:documentation>
  321.        This step forms a temperature gradient across the PCR block.
  322.      </xs:documentation>
  323.     </xs:annotation>
  324.     <xs:sequence>
  325.       <xs:element name="highTemperature" type="xs:float">
  326.         <xs:annotation>
  327.           <xs:documentation>
  328.            The high temperature of the gradient in degrees Celsius.
  329.          </xs:documentation>
  330.         </xs:annotation>
  331.       </xs:element>
  332.       <xs:element name="lowTemperature" type="xs:float">
  333.         <xs:annotation>
  334.           <xs:documentation>
  335.            The low temperature of the gradient in degrees Celsius.
  336.          </xs:documentation>
  337.         </xs:annotation>
  338.       </xs:element>
  339.       <xs:element name="duration" type="xs:positiveInteger">
  340.         <xs:annotation>
  341.           <xs:documentation>
  342.            The duration of this step in seconds.
  343.          </xs:documentation>
  344.         </xs:annotation>
  345.       </xs:element>
  346.       <xs:element name="temperatureChange" type="xs:float" minOccurs="0">
  347.         <xs:annotation>
  348.           <xs:documentation>
  349.            The change of the temperature from one cycle to the next:
  350.            actual highTemperature = highTemperature + (temperatureChange * cycle counter)
  351.            actual lowTemperature = lowTemperature + (temperatureChange * cycle counter)
  352.          </xs:documentation>
  353.         </xs:annotation>
  354.       </xs:element>
  355.       <xs:element name="durationChange" type="xs:int" minOccurs="0">
  356.         <xs:annotation>
  357.           <xs:documentation>
  358.            The change of the duration from one cycle to the next:
  359.            actual duration = duration + (durationChange * cycle couter)
  360.          </xs:documentation>
  361.         </xs:annotation>
  362.       </xs:element>
  363.       <xs:element name="measure" type="rdml:measureType" minOccurs="0">
  364.         <xs:annotation>
  365.           <xs:documentation>
  366.            Make a measurement and store it as meltcurve or real-time data.
  367.          </xs:documentation>
  368.         </xs:annotation>
  369.       </xs:element>
  370.       <xs:element name="ramp" type="xs:float" minOccurs="0">
  371.         <xs:annotation>
  372.           <xs:documentation>
  373.            The temperature change from one step to the next in degrees
  374.            Celsius per second. No value means maximal change rate.
  375.          </xs:documentation>
  376.         </xs:annotation>
  377.       </xs:element>
  378.     </xs:sequence>
  379.   </xs:complexType>
  380.   <xs:complexType name="idReferencesType">
  381.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  382.   </xs:complexType>
  383.   <xs:simpleType name="idType">
  384.     <xs:annotation>
  385.       <xs:documentation>
  386.        A ID must be at least one character and unique. The id should be
  387.        a human readable short name as it was provided by the user.
  388.      </xs:documentation>
  389.     </xs:annotation>
  390.     <xs:restriction base="xs:string">
  391.       <xs:minLength value="1"/>
  392.     </xs:restriction>
  393.   </xs:simpleType>
  394.   <xs:simpleType name="labelFormatType">
  395.     <xs:annotation>
  396.       <xs:documentation>
  397.        Label used for pcrFormat.
  398.      </xs:documentation>
  399.     </xs:annotation>
  400.     <xs:restriction base="xs:string">
  401.       <xs:enumeration value="ABC"/>
  402.       <xs:enumeration value="123"/>
  403.       <xs:enumeration value="A1a1"/>
  404.     </xs:restriction>
  405.   </xs:simpleType>
  406.   <xs:complexType name="lidOpenType">
  407.     <xs:annotation>
  408.       <xs:documentation>
  409.        This step waits for the user to open the lid and continues afterwards. It
  410.        allows to stop the program and to wait for the user to add for example
  411.        enzymes and continue the program afterwards. The temperature of the previous
  412.        step is maintained.
  413.      </xs:documentation>
  414.     </xs:annotation>
  415.   </xs:complexType>
  416.   <xs:complexType name="loopType">
  417.     <xs:annotation>
  418.       <xs:documentation>
  419.        This step allows to form a loop or to exclude some steps. It allows to
  420.        jump to a certain "goto" step for "repeat" times. If the "goto" step is  
  421.        higher than the step of the loop, "repeat" must be "0".
  422.      </xs:documentation>
  423.     </xs:annotation>
  424.     <xs:sequence>
  425.       <xs:element name="goto" type="xs:positiveInteger">
  426.         <xs:annotation>
  427.           <xs:documentation>
  428.            The step to go to to form the loop.
  429.          </xs:documentation>
  430.         </xs:annotation>
  431.       </xs:element>
  432.       <xs:element name="repeat" type="xs:positiveInteger">
  433.         <xs:annotation>
  434.           <xs:documentation>
  435.            Determines how often the loop is repeated. The first run through the loop is
  436.            counted as 0, the last loop is "repeat" - 1. The loop is run
  437.            through exactly "repeat" times.
  438.          </xs:documentation>
  439.         </xs:annotation>
  440.       </xs:element>
  441.     </xs:sequence>
  442.   </xs:complexType>
  443.   <xs:simpleType name="measureType">
  444.     <xs:restriction base="xs:string">
  445.       <xs:enumeration value="real time"/>
  446.       <xs:enumeration value="meltcurve"/>
  447.     </xs:restriction>
  448.   </xs:simpleType>
  449.   <xs:simpleType name="nucleotideType">
  450.     <xs:restriction base="xs:string">
  451.       <xs:enumeration value="DNA"/>
  452.       <xs:enumeration value="genomic DNA"/>
  453.       <xs:enumeration value="cDNA"/>
  454.       <xs:enumeration value="RNA"/>
  455.     </xs:restriction>
  456.   </xs:simpleType>
  457.   <xs:complexType name="oligoType">
  458.     <xs:sequence>
  459.       <xs:element name="threePrimeTag" type="xs:string" minOccurs="0">
  460.         <xs:annotation>
  461.           <xs:documentation>
  462.            Description of three prime modification (if present).
  463.          </xs:documentation>
  464.         </xs:annotation>
  465.       </xs:element>
  466.       <xs:element name="fivePrimeTag" type="xs:string" minOccurs="0">
  467.         <xs:annotation>
  468.           <xs:documentation>
  469.            Description of five prime modification (if present).
  470.          </xs:documentation>
  471.         </xs:annotation>
  472.       </xs:element>
  473.       <xs:element name="sequence" type="rdml:sequenceType"/>
  474.     </xs:sequence>
  475.   </xs:complexType>
  476.   <xs:complexType name="pauseType">
  477.     <xs:annotation>
  478.       <xs:documentation>
  479.        This step allows to pause at a certain temperature. It is typically the
  480.        last step in an amplification protocol.  
  481.      </xs:documentation>
  482.     </xs:annotation>
  483.     <xs:sequence>
  484.       <xs:element name="temperature" type="xs:float">
  485.         <xs:annotation>
  486.           <xs:documentation>
  487.            The temperature in degrees Celsius to maintain during the pause.
  488.          </xs:documentation>
  489.         </xs:annotation>
  490.       </xs:element>
  491.     </xs:sequence>
  492.   </xs:complexType>
  493.   <xs:complexType name="pcrFormatType">
  494.     <xs:annotation>
  495.       <xs:documentation>
  496.        The format of the run - This allows the software to display the data
  497.        according to the qPCR instrument run format.
  498.        Rotor formats always have 1 column; rows correspond to the number
  499.        of places in the rotor.
  500.        
  501.        Values for common formats are:
  502.        
  503.        Format            |    rows    |   columns   |  rowLabel  | columnLabel
  504.        --------------------------------------------------------------------------
  505.        single-well       |     1      |      1      |    123     |     123
  506.        48-well plate     |     6      |      8      |    ABC     |     123
  507.        96-well plate     |     8      |     12      |    ABC     |     123
  508.        384-well plate    |    16      |     24      |    ABC     |     123
  509.        1536-well plate   |    32      |     48      |    ABC     |     123
  510.        3072-well array   |    32      |     96      |   A1a1     |    A1a1
  511.        5184-well chip    |    72      |     72      |    ABC     |     123
  512.        32-well rotor     |    32      |      1      |    123     |     123
  513.        72-well rotor     |    72      |      1      |    123     |     123
  514.        100-well rotor    |   100      |      1      |    123     |     123
  515.        free format       |    -1      |      1      |    123     |     123
  516.        
  517.        If rows are -1 then the software should not try to reconstruct a plate and
  518.        just display all react data in list (1 column) form.
  519.        
  520.        If columns is 1 then the software should not display a column label.
  521.          
  522.      </xs:documentation>
  523.     </xs:annotation>
  524.     <xs:sequence>
  525.       <xs:element name="rows" type="xs:int"/>
  526.       <xs:element name="columns" type="xs:int"/>
  527.       <xs:element name="rowLabel" type="rdml:labelFormatType"/>
  528.       <xs:element name="columnLabel" type="rdml:labelFormatType"/>
  529.     </xs:sequence>
  530.   </xs:complexType>
  531.   <xs:simpleType name="primingMethodType">
  532.     <xs:annotation>
  533.       <xs:documentation>
  534.        The primers used to reverse transcribe the RNA to cDNA.
  535.      </xs:documentation>
  536.     </xs:annotation>
  537.     <xs:restriction base="xs:string">
  538.       <xs:enumeration value="oligo-dt"/>
  539.       <xs:enumeration value="random"/>
  540.       <xs:enumeration value="target-specific"/>
  541.       <xs:enumeration value="oligo-dt and random"/>
  542.       <xs:enumeration value="other"/>
  543.     </xs:restriction>
  544.   </xs:simpleType>
  545.   <xs:complexType name="quantityType">
  546.     <xs:annotation>
  547.       <xs:documentation>
  548.        A quantity is always defined by its value and its unit.  
  549.      </xs:documentation>
  550.     </xs:annotation>
  551.     <xs:sequence>
  552.       <xs:element name="value" type="xs:float"/>
  553.       <xs:element name="unit" type="rdml:quantityUnitType"/>
  554.     </xs:sequence>
  555.   </xs:complexType>
  556.   <xs:simpleType name="quantityUnitType">
  557.     <xs:annotation>
  558.       <xs:documentation>
  559.        The unit the quantity
  560.        cop   - copies per microliter  
  561.        fold  - fold change  
  562.        dil   - dilution (10 would mean 1:10 dilution)  
  563.        nMol  - nanomol per microliter
  564.        ng    - nanogram per microliter
  565.        other - other unit (must be linear, no exponents or logarithms allowed)
  566.      </xs:documentation>
  567.     </xs:annotation>
  568.     <xs:restriction base="xs:string">
  569.       <xs:enumeration value="cop"/>
  570.       <xs:enumeration value="fold"/>
  571.       <xs:enumeration value="dil"/>
  572.       <xs:enumeration value="ng"/>
  573.       <xs:enumeration value="nMol"/>
  574.       <xs:enumeration value="other"/>
  575.     </xs:restriction>
  576.   </xs:simpleType>
  577.   <xs:complexType name="rdmlIdType">
  578.     <xs:annotation>
  579.       <xs:documentation>
  580.        This element can be used to assign a publisher and id to the RDML file.
  581.      </xs:documentation>
  582.     </xs:annotation>
  583.     <xs:sequence>
  584.       <xs:element name="publisher" type="xs:string"/>
  585.       <xs:element name="serialNumber" type="xs:string"/>
  586.       <xs:element name="MD5Hash" type="xs:string" minOccurs="0">
  587.         <xs:annotation>
  588.           <xs:documentation>
  589.            An MD5Hash calculated over the complete file after removing all
  590.            rdmlIDTypes and all whitespaces between elements.
  591.          </xs:documentation>
  592.         </xs:annotation>
  593.       </xs:element>
  594.     </xs:sequence>
  595.   </xs:complexType>
  596.   <xs:complexType name="reactType">
  597.     <xs:annotation>
  598.       <xs:documentation>
  599.        A reaction is an independent chemical reaction corresponding for example
  600.        to a well in a 96 well plate, a capillary in a rotor, a through-hole on
  601.        an array, etc.
  602.      </xs:documentation>
  603.     </xs:annotation>
  604.     <xs:sequence>
  605.       <xs:element name="sample" type="rdml:idReferencesType">
  606.         <xs:annotation>
  607.           <xs:documentation>
  608.            SampleID - A reference to a sample.
  609.          </xs:documentation>
  610.         </xs:annotation>
  611.       </xs:element>
  612.       <xs:element name="data" type="rdml:dataType" maxOccurs="unbounded">
  613.         <xs:unique name="adpCycUnique">
  614.           <xs:annotation>
  615.             <xs:documentation>
  616.              The cycle (cyc) within the amplification curve datapoints) (adp) must be unique.
  617.            </xs:documentation>
  618.           </xs:annotation>
  619.           <xs:selector xpath="./rdml:adp"/>
  620.           <xs:field xpath="rdml:cyc"/>
  621.         </xs:unique>
  622.         <xs:unique name="mdpTmpUnique">
  623.           <xs:annotation>
  624.             <xs:documentation>
  625.              The temperature (tmp) within the melting curve datapoints (mdp) must be unique.
  626.            </xs:documentation>
  627.           </xs:annotation>
  628.           <xs:selector xpath="./rdml:mdp"/>
  629.           <xs:field xpath="rdml:tmp"/>
  630.         </xs:unique>
  631.       </xs:element>
  632.     </xs:sequence>
  633.     <xs:attribute name="id" type="xs:positiveInteger" use="required">
  634.       <xs:annotation>
  635.         <xs:documentation>
  636.          The ID of this reaction
  637.          
  638.          Schemas :
  639.             - rotor : assign IDs according to the position of the sample on the rotor (1 for the 1st sample, 2 for the 2nd, ...)
  640.             - plate (96/384/1536 well) : the IDs are assigned in a row-first/column-second manner. For each row, the samples are
  641.                 numbered according to the increasing column number. At the end of a row, the numbering starts at the first column of
  642.                 the next row. An example for this type of plate can be found below :
  643.            
  644.                       1   2   3   4   5   6   7   8   9  10  11  12
  645.                   ___________________________________________________
  646.                 A |   1   2   3   4   5   6   7   8   9  10  11  12
  647.                 B |  13  14  15  16  17  18  19  20  21  22  23  24
  648.                 C |  25  26  27  28  28  30  31  32  33  34  35  36
  649.                 D | ...
  650.                
  651.            
  652.                       1   2   3   4   5   6   7   8   9  10  11  12
  653.                   ___________________________________________________
  654.                 1 |   1   2   3   4   5   6   7   8   9  10  11  12
  655.                 2 |  13  14  15  16  17  18  19  20  21  22  23  24
  656.                 3 |  25  26  27  28  28  30  31  32  33  34  35  36
  657.                 4 | ...
  658.  
  659.  
  660.             - multi-array plate (BioTrove) : the IDs are assigned in a row-first/column-second manner, ignoring the organisation
  661.                 of sub-arrays. For each row, the samples are numbered according to the increasing column number. At the end of a row, the
  662.                 the next row. An example for this type of plate can be found below :
  663.            
  664.                                 1         |         2        |        3         |  ...
  665.                    --------------------------------------------------------------------    
  666.                    |   |   1   2   3   4  |   5   6   7   8  |   9  10  11  12  |  ...
  667.                    ____________________________________________________________________
  668.                    | a |   1   2   3   4  |   5   6   7   8  |   9  10  11  12  |  ...
  669.                  A | b |  49  50  51  52  |  53  54  55  56  |  57  58  59  60  |  ...
  670.                    | c |  97  98  99 100  | 101 102 103 104  | 105 106 107 108  |  ...
  671.                    | d | 145 146 147 148  | 149 150 151 152  | 153 154 155 156  |  ...
  672.                    --------------------------------------------------------------------
  673.                    | a | 193 194 195 196  | 197 198 199 200  | 201 202 203 204  |  ...
  674.                  B | b | 241 242 243 244  | 245 246 247 248  | 249 250 251 252  |  ...
  675.                    | c |  ...             |  ...             |  ...             |  ...
  676.                
  677.        </xs:documentation>
  678.       </xs:annotation>
  679.     </xs:attribute>
  680.   </xs:complexType>
  681.   <xs:complexType name="runType">
  682.     <xs:annotation>
  683.       <xs:documentation>
  684.        A run is a set of reactions performed in one "run", for example
  685.        one plate, one rotor, one array, one chip.
  686.      </xs:documentation>
  687.     </xs:annotation>
  688.     <xs:sequence>
  689.       <xs:element name="description" type="xs:string" minOccurs="0"/>
  690.       <xs:element name="documentation" type="rdml:idReferencesType" minOccurs="0" maxOccurs="unbounded"/>
  691.       <xs:element name="experimenter" type="rdml:idReferencesType" minOccurs="0" maxOccurs="unbounded"/>
  692.       <xs:element name="instrument" type="xs:string" minOccurs="0">
  693.         <xs:annotation>
  694.           <xs:documentation>
  695.            Description of the instrument used to aquire the data.
  696.          </xs:documentation>
  697.         </xs:annotation>
  698.       </xs:element>
  699.       <xs:element name="dataCollectionSoftware" type="rdml:dataCollectionSoftwareType" minOccurs="0">
  700.         <xs:annotation>
  701.           <xs:documentation>
  702.            Description of the software used to analyze/collect the data.
  703.          </xs:documentation>
  704.         </xs:annotation>
  705.       </xs:element>
  706.       <xs:element name="backgroundDeterminationMethod" type="xs:string" minOccurs="0">
  707.         <xs:annotation>
  708.           <xs:documentation>
  709.            Description of method used to determine the background.
  710.          </xs:documentation>
  711.         </xs:annotation>
  712.       </xs:element>
  713.       <xs:element name="cqDetectionMethod" type="rdml:cqDetectionMethodType" minOccurs="0">
  714.         <xs:annotation>
  715.           <xs:documentation>
  716.            Description of method used to calculate the quantification cycle.
  717.          </xs:documentation>
  718.         </xs:annotation>
  719.       </xs:element>
  720.       <xs:element name="thermalCyclingConditions" type="rdml:idReferencesType" minOccurs="0">
  721.         <xs:annotation>
  722.           <xs:documentation>
  723.            The program used to aquire the data.
  724.          </xs:documentation>
  725.         </xs:annotation>
  726.       </xs:element>
  727.       <xs:element name="pcrFormat" type="rdml:pcrFormatType"/>
  728.       <xs:element name="runDate" type="xs:dateTime" minOccurs="0">
  729.         <xs:annotation>
  730.           <xs:documentation>
  731.            Date and time stamp when the data was aquired.
  732.          </xs:documentation>
  733.         </xs:annotation>
  734.       </xs:element>
  735.       <xs:element name="react" type="rdml:reactType" maxOccurs="unbounded" minOccurs="0">
  736.         <xs:unique name="dataTarID">
  737.           <xs:annotation>
  738.             <xs:documentation>
  739.              The target ID (tar-&gt;@id) within the data element must be unique.
  740.            </xs:documentation>
  741.           </xs:annotation>
  742.           <xs:selector xpath="./rdml:data/rdml:tar"/>
  743.           <xs:field xpath="@id"/>
  744.         </xs:unique>
  745.       </xs:element>
  746.     </xs:sequence>
  747.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  748.   </xs:complexType>
  749.   <xs:complexType name="sampleType">
  750.     <xs:annotation>
  751.       <xs:documentation>
  752.        A sample is a defined template solution. Dilutions of the same
  753.        material differ in concentration and are considered different samples.
  754.        A technical replicate samples should contain the same name (reactions
  755.        are performed on the same material), and biological replicates should
  756.        contain different names (the nucleic acids derived from the different
  757.        biological replicates are not the same). Serial dilutions in a standard
  758.        curve must have a different name.
  759.      </xs:documentation>
  760.     </xs:annotation>
  761.     <xs:sequence>
  762.       <xs:element name="description" type="xs:string" minOccurs="0"/>
  763.       <xs:element name="documentation" type="rdml:idReferencesType" minOccurs="0" maxOccurs="unbounded"/>
  764.       <xs:element name="xRef" type="rdml:xRefType" minOccurs="0" maxOccurs="unbounded"/>
  765.       <xs:element name="annotation" type="rdml:annotationType" minOccurs="0" maxOccurs="unbounded"/>
  766.       <xs:element name="type" type="rdml:sampleTypeType" default="unkn"/>
  767.       <xs:element name="interRunCalibrator" type="xs:boolean" default="false" minOccurs="0">
  768.         <xs:annotation>
  769.           <xs:documentation>
  770.            True if this sample is used as inter run calibrator.
  771.          </xs:documentation>
  772.         </xs:annotation>
  773.       </xs:element>
  774.       <xs:element name="quantity" type="rdml:quantityType" minOccurs="0">
  775.         <xs:annotation>
  776.           <xs:documentation>
  777.            Quantity - The reference quantity of this sample. It should be only used if the
  778.            sample is part of a standard curve. The provided value will be used to quantify
  779.            unknown samples in absolute quantification assays.  
  780.            Only the use of true numbers is valid like 1, 10, 100, 1000 or 1, 0.1, 0.01,
  781.            0.001. The use of exponents is not valid like 1, 2, 3, 4 or -1, -2, -3, -4
  782.            because it will not be interpreted as 10E1, 10E2, 10E3, 10E4 or 10E-1, 10E-2,
  783.            10E-3, 10E-4.        
  784.          </xs:documentation>
  785.         </xs:annotation>
  786.       </xs:element>
  787.       <xs:element name="calibratorSample" type="xs:boolean" default="false" minOccurs="0">
  788.         <xs:annotation>
  789.           <xs:documentation>
  790.            True if this sample is used as calibrator sample.
  791.          </xs:documentation>
  792.         </xs:annotation>
  793.       </xs:element>
  794.       <xs:element name="cdnaSynthesisMethod" type="rdml:cdnaSynthesisMethodType" minOccurs="0"/>
  795.       <xs:element name="templateQuantity" type="rdml:templateQuantityType" minOccurs="0"/>
  796.     </xs:sequence>
  797.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  798.   </xs:complexType>
  799.   <xs:simpleType name="sampleTypeType">
  800.     <xs:annotation>
  801.       <xs:documentation>
  802.        unkn - unknown sample
  803.        ntc  - non template control
  804.        nac  - no amplification control
  805.        std  - standard sample
  806.        ntp  - no target present
  807.        nrt  - minusRT
  808.        pos  - positive control
  809.        opt  - optical calibrator sample
  810.      </xs:documentation>
  811.     </xs:annotation>
  812.     <xs:restriction base="xs:string">
  813.       <xs:enumeration value="unkn"/>
  814.       <xs:enumeration value="ntc"/>
  815.       <xs:enumeration value="nac"/>
  816.       <xs:enumeration value="std"/>
  817.       <xs:enumeration value="ntp"/>
  818.       <xs:enumeration value="nrt"/>
  819.       <xs:enumeration value="pos"/>
  820.       <xs:enumeration value="opt"/>
  821.     </xs:restriction>
  822.   </xs:simpleType>
  823.   <xs:simpleType name="sequenceType">
  824.     <xs:restriction base="xs:string">
  825.       <xs:pattern value="([a|c|g|t|r|y|s|w|k|m|b|d|h|v|n|A|C|G|T|R|Y|S|W|K|M|B|D|H|V|N]+)">
  826.         <xs:annotation>
  827.           <xs:documentation>
  828.            All the IUPAC codes :
  829.  
  830.            A         Adenine
  831.            C         Cytosine
  832.            G         Guanine
  833.            T (or U)  Thymine (or Uracil)
  834.            R         A or G
  835.            Y         C or T
  836.            S         G or C
  837.            W         A or T
  838.            K         G or T
  839.            M         A or C
  840.            B         C or G or T
  841.            D         A or G or T
  842.            H         A or C or T
  843.            V         A or C or G
  844.            N         any base
  845.          </xs:documentation>
  846.         </xs:annotation>
  847.       </xs:pattern>
  848.     </xs:restriction>
  849.   </xs:simpleType>
  850.   <xs:complexType name="sequencesType">
  851.     <xs:sequence>
  852.       <xs:element name="forwardPrimer" type="rdml:oligoType" minOccurs="0"/>
  853.       <xs:element name="reversePrimer" type="rdml:oligoType" minOccurs="0"/>
  854.       <xs:element name="probe1" type="rdml:oligoType" minOccurs="0"/>
  855.       <xs:element name="probe2" type="rdml:oligoType" minOccurs="0"/>
  856.       <xs:element name="amplicon" type="rdml:oligoType" minOccurs="0"/>
  857.     </xs:sequence>
  858.   </xs:complexType>
  859.   <xs:simpleType name="stepNumberType">
  860.     <xs:restriction base="xs:positiveInteger">
  861.       <xs:minInclusive value="1"/>
  862.     </xs:restriction>
  863.   </xs:simpleType>
  864.   <xs:complexType name="stepType">
  865.     <xs:sequence>
  866.       <xs:element name="nr" type="rdml:stepNumberType">
  867.         <xs:annotation>
  868.           <xs:documentation>
  869.            The incremental number of the step. First step should be nr = 1 and then
  870.            increment each step by + 1.
  871.          </xs:documentation>
  872.         </xs:annotation>
  873.       </xs:element>
  874.       <xs:element name="description" type="xs:string" minOccurs="0"/>
  875.       <xs:choice>
  876.         <xs:element name="temperature" type="rdml:temperatureType"/>
  877.         <xs:element name="gradient" type="rdml:gradientType"/>
  878.         <xs:element name="loop" type="rdml:loopType"/>
  879.         <xs:element name="pause" type="rdml:pauseType"/>
  880.         <xs:element name="lidOpen" type="rdml:lidOpenType"/>
  881.       </xs:choice>
  882.     </xs:sequence>
  883.   </xs:complexType>
  884.   <xs:complexType name="targetType">
  885.     <xs:annotation>
  886.       <xs:documentation>
  887.        A target is a defined PCR reaction. PCR reactions for the same gene
  888.        which differ in primer sequences are considered different targets.
  889.      </xs:documentation>
  890.     </xs:annotation>
  891.     <xs:sequence>
  892.       <xs:element name="description" type="xs:string" minOccurs="0"/>
  893.       <xs:element name="documentation" type="rdml:idReferencesType" minOccurs="0" maxOccurs="unbounded"/>
  894.       <xs:element name="xRef" type="rdml:xRefType" minOccurs="0" maxOccurs="unbounded"/>
  895.       <xs:element name="type" type="rdml:targetTypeType"/>
  896.       <xs:element name="amplificationEfficiencyMethod" type="xs:string" minOccurs="0"/>
  897.       <xs:element name="amplificationEfficiency" type="xs:float" minOccurs="0">
  898.         <xs:annotation>
  899.           <xs:documentation>
  900.            Amplification efficiency should be given as the fold-increase
  901.            of DNA per cycle (the base of the exponential function),
  902.            for example 1.95 for 95% efficiency.
  903.          </xs:documentation>
  904.         </xs:annotation>
  905.       </xs:element>
  906.       <xs:element name="amplificationEfficiencySE" type="xs:float" minOccurs="0">
  907.         <xs:annotation>
  908.           <xs:documentation>
  909.            The standard error of the value provided in "amplificationEfficiency"
  910.            should be given.
  911.          </xs:documentation>
  912.         </xs:annotation>
  913.       </xs:element>
  914.       <xs:element name="detectionLimit" type="xs:float" minOccurs="0">
  915.         <xs:annotation>
  916.           <xs:documentation>
  917.            The detection limit is given in copies per microliter.
  918.          </xs:documentation>
  919.         </xs:annotation>
  920.       </xs:element>
  921.       <xs:element name="dyeId" type="rdml:idReferencesType">
  922.         <xs:annotation>
  923.           <xs:documentation>
  924.            DyeID - A reference to a dye.
  925.          </xs:documentation>
  926.         </xs:annotation>
  927.       </xs:element>
  928.       <xs:element name="sequences" type="rdml:sequencesType" minOccurs="0"/>
  929.       <xs:element name="commercialAssay" type="rdml:commercialAssayType" minOccurs="0"/>
  930.     </xs:sequence>
  931.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  932.   </xs:complexType>
  933.   <xs:simpleType name="targetTypeType">
  934.     <xs:annotation>
  935.       <xs:documentation>
  936.        ref - reference target
  937.        toi - target of interest
  938.      </xs:documentation>
  939.     </xs:annotation>
  940.     <xs:restriction base="xs:string">
  941.       <xs:enumeration value="ref"/>
  942.       <xs:enumeration value="toi"/>
  943.     </xs:restriction>
  944.   </xs:simpleType>
  945.   <xs:complexType name="temperatureType">
  946.     <xs:annotation>
  947.       <xs:documentation>
  948.        This step keeps a constant temperature on the heat block.
  949.      </xs:documentation>
  950.     </xs:annotation>
  951.     <xs:sequence>
  952.       <xs:element name="temperature" type="xs:float">
  953.         <xs:annotation>
  954.           <xs:documentation>
  955.            The temperature of the step in degrees Celsius.
  956.          </xs:documentation>
  957.         </xs:annotation>
  958.       </xs:element>
  959.       <xs:element name="duration" type="xs:positiveInteger">
  960.         <xs:annotation>
  961.           <xs:documentation>
  962.            The duration of this step in seconds.
  963.          </xs:documentation>
  964.         </xs:annotation>
  965.       </xs:element>
  966.       <xs:element name="temperatureChange" type="xs:float" minOccurs="0">
  967.         <xs:annotation>
  968.           <xs:documentation>
  969.            The change of the temperature from one cycle to the next:
  970.            actual temperature = temperature + (temperatureChange * cycle counter)
  971.          </xs:documentation>
  972.         </xs:annotation>
  973.       </xs:element>
  974.       <xs:element name="durationChange" type="xs:int" minOccurs="0">
  975.         <xs:annotation>
  976.           <xs:documentation>
  977.            The change of the duration from one cycle to the next:
  978.            actual duration = duration + (durationChange * cycle counter)
  979.          </xs:documentation>
  980.         </xs:annotation>
  981.       </xs:element>
  982.       <xs:element name="measure" type="rdml:measureType" minOccurs="0">
  983.         <xs:annotation>
  984.           <xs:documentation>
  985.            Indicates to make a measurement and store it as meltcurve or real-time data.
  986.          </xs:documentation>
  987.         </xs:annotation>
  988.       </xs:element>
  989.       <xs:element name="ramp" type="xs:float" minOccurs="0">
  990.         <xs:annotation>
  991.           <xs:documentation>
  992.            The allowed temperature change from one step to the next in degrees
  993.            Celsius per second. No value means maximal change rate.
  994.          </xs:documentation>
  995.         </xs:annotation>
  996.       </xs:element>
  997.     </xs:sequence>
  998.   </xs:complexType>
  999.   <xs:complexType name="templateQuantityType">
  1000.     <xs:sequence>
  1001.       <xs:element name="conc" type="xs:float">
  1002.         <xs:annotation>
  1003.           <xs:documentation>
  1004.            Concentration of the template in nanogram per microliter in the
  1005.            final reaction mix.
  1006.          </xs:documentation>
  1007.         </xs:annotation>
  1008.       </xs:element>
  1009.       <xs:element name="nucleotide" type="rdml:nucleotideType"/>
  1010.     </xs:sequence>
  1011.   </xs:complexType>
  1012.   <xs:complexType name="thermalCyclingConditionsType">
  1013.     <xs:annotation>
  1014.       <xs:documentation>
  1015.        A cycling program for PCR or to amplify cDNA.
  1016.      </xs:documentation>
  1017.     </xs:annotation>
  1018.     <xs:sequence>
  1019.       <xs:element name="description" type="xs:string" minOccurs="0"/>
  1020.       <xs:element name="documentation" type="rdml:idReferencesType" minOccurs="0" maxOccurs="unbounded"/>
  1021.       <xs:element name="lidTemperature" type="xs:float" minOccurs="0">
  1022.         <xs:annotation>
  1023.           <xs:documentation>
  1024.            The temperature in degrees Celsius of the lid during cycling.
  1025.          </xs:documentation>
  1026.         </xs:annotation>
  1027.       </xs:element>
  1028.       <xs:element name="experimenter" type="rdml:idReferencesType" minOccurs="0" maxOccurs="unbounded">
  1029.         <xs:annotation>
  1030.           <xs:documentation>
  1031.            Reference to the person who made or uses this protocol.
  1032.          </xs:documentation>
  1033.         </xs:annotation>
  1034.       </xs:element>
  1035.       <xs:element name="step" type="rdml:stepType" maxOccurs="unbounded">
  1036.         <xs:annotation>
  1037.           <xs:documentation>
  1038.            The steps a protocol runs through to amplify DNA.
  1039.          </xs:documentation>
  1040.         </xs:annotation>
  1041.       </xs:element>
  1042.     </xs:sequence>
  1043.     <xs:attribute name="id" type="rdml:idType" use="required"/>
  1044.   </xs:complexType>
  1045.   <xs:complexType name="xRefType">
  1046.     <xs:sequence>
  1047.       <xs:element name="name" type="xs:string" minOccurs="0">
  1048.         <xs:annotation>
  1049.           <xs:documentation>
  1050.            Reference to an external database, for example "GenBank".
  1051.          </xs:documentation>
  1052.         </xs:annotation>
  1053.       </xs:element>
  1054.       <xs:element name="id" type="xs:string" minOccurs="0">
  1055.         <xs:annotation>
  1056.           <xs:documentation>
  1057.            The ID of the entry within the external database, for example "AJ832138".
  1058.          </xs:documentation>
  1059.         </xs:annotation>
  1060.       </xs:element>
  1061.     </xs:sequence>
  1062.   </xs:complexType>
  1063.   <xs:element name="rdml">
  1064.     <xs:complexType>
  1065.       <xs:sequence>
  1066.         <xs:element name="dateMade" type="xs:dateTime" minOccurs="0">
  1067.           <xs:annotation>
  1068.             <xs:documentation>
  1069.              The date and time stamp of the creation of this file.
  1070.            </xs:documentation>
  1071.           </xs:annotation>
  1072.         </xs:element>
  1073.         <xs:element name="dateUpdated" type="xs:dateTime" minOccurs="0">
  1074.           <xs:annotation>
  1075.             <xs:documentation>
  1076.              The date and time stamp of the last update of this file.
  1077.            </xs:documentation>
  1078.           </xs:annotation>
  1079.         </xs:element>
  1080.         <xs:element name="id" type="rdml:rdmlIdType" maxOccurs="unbounded" minOccurs="0"/>
  1081.         <xs:element name="experimenter" type="rdml:experimenterType" maxOccurs="unbounded" minOccurs="0"/>
  1082.         <xs:element name="documentation" type="rdml:documentationType" maxOccurs="unbounded" minOccurs="0"/>
  1083.         <xs:element name="dye" type="rdml:dyeType" maxOccurs="unbounded" minOccurs="0"/>
  1084.         <xs:element name="sample" type="rdml:sampleType" maxOccurs="unbounded" minOccurs="0">
  1085.           <xs:unique name="sampleXRefId">
  1086.             <xs:annotation>
  1087.               <xs:documentation>
  1088.                xRefs within the sample types must be unique.
  1089.              </xs:documentation>
  1090.             </xs:annotation>
  1091.             <xs:selector xpath="./rdml:xRef"/>
  1092.             <xs:field xpath="rdml:id"/>
  1093.             <xs:field xpath="rdml:name"/>
  1094.           </xs:unique>
  1095.           <xs:unique name="sampleDocumentationId">
  1096.             <xs:annotation>
  1097.               <xs:documentation>
  1098.                Documentation references within the sample types must be unique.
  1099.              </xs:documentation>
  1100.             </xs:annotation>
  1101.             <xs:selector xpath="./rdml:documentation"/>
  1102.             <xs:field xpath="@id"/>
  1103.           </xs:unique>
  1104.         </xs:element>
  1105.         <xs:element name="target" type="rdml:targetType" maxOccurs="unbounded" minOccurs="0">
  1106.           <xs:unique name="targetXRefId">
  1107.             <xs:annotation>
  1108.               <xs:documentation>
  1109.                xRefs within the sample types must be unique.
  1110.              </xs:documentation>
  1111.             </xs:annotation>
  1112.             <xs:selector xpath="./rdml:xRef"/>
  1113.             <xs:field xpath="rdml:id"/>
  1114.             <xs:field xpath="rdml:name"/>
  1115.           </xs:unique>
  1116.           <xs:unique name="targetDocumentationId">
  1117.             <xs:annotation>
  1118.               <xs:documentation>
  1119.                Documentation references within the target types must be unique.
  1120.              </xs:documentation>
  1121.             </xs:annotation>
  1122.             <xs:selector xpath="./rdml:documentation"/>
  1123.             <xs:field xpath="@id"/>
  1124.           </xs:unique>
  1125.         </xs:element>
  1126.         <xs:element name="thermalCyclingConditions" type="rdml:thermalCyclingConditionsType" maxOccurs="unbounded" minOccurs="0">
  1127.           <xs:unique name="thermalUniId">
  1128.             <xs:annotation>
  1129.               <xs:documentation>
  1130.                step nr within the thermalCyclingConditions must be unique.
  1131.              </xs:documentation>
  1132.             </xs:annotation>
  1133.             <xs:selector xpath="./rdml:step"/>
  1134.             <xs:field xpath="rdml:nr"/>
  1135.           </xs:unique>
  1136.           <xs:unique name="thermalCyclingConditionsDocumentationId">
  1137.             <xs:annotation>
  1138.               <xs:documentation>
  1139.                Documentation references within the thermalCyclingConditions types must be unique.
  1140.              </xs:documentation>
  1141.             </xs:annotation>
  1142.             <xs:selector xpath="./rdml:documentation"/>
  1143.             <xs:field xpath="@id"/>
  1144.           </xs:unique>
  1145.           <xs:unique name="thermalCyclingConditionsExperimenterId">
  1146.             <xs:annotation>
  1147.               <xs:documentation>
  1148.                Experimenter references within the thermalCyclingConditions types must be unique.
  1149.              </xs:documentation>
  1150.             </xs:annotation>
  1151.             <xs:selector xpath="./rdml:experimenter"/>
  1152.             <xs:field xpath="@id"/>
  1153.           </xs:unique>
  1154.         </xs:element>
  1155.         <xs:element name="experiment" type="rdml:experimentType" maxOccurs="unbounded" minOccurs="0">
  1156.           <xs:unique name="experimentUniId">
  1157.             <xs:annotation>
  1158.               <xs:documentation>
  1159.                run IDs within the experiment types must be unique.
  1160.              </xs:documentation>
  1161.             </xs:annotation>
  1162.             <xs:selector xpath="./rdml:run"/>
  1163.             <xs:field xpath="@id"/>
  1164.           </xs:unique>
  1165.           <xs:unique name="experimentDocumentationId">
  1166.             <xs:annotation>
  1167.               <xs:documentation>
  1168.                Documentation references within the experiment types must be unique.
  1169.              </xs:documentation>
  1170.             </xs:annotation>
  1171.             <xs:selector xpath="./rdml:documentation"/>
  1172.             <xs:field xpath="@id"/>
  1173.           </xs:unique>
  1174.         </xs:element>
  1175.       </xs:sequence>
  1176.       <xs:attribute name="version" type="xs:string" fixed="1.2" use="required"/>
  1177.     </xs:complexType>
  1178.     <xs:keyref name="documentationKeyRef" refer="rdml:documentationKey">
  1179.       <xs:selector xpath="./rdml:sample/rdml:documentation"/>
  1180.       <xs:field xpath="@id"/>
  1181.     </xs:keyref>
  1182.     <xs:keyref name="documentationKeyRef2" refer="rdml:documentationKey">
  1183.       <xs:selector xpath="./rdml:target/rdml:documentation"/>
  1184.       <xs:field xpath="@id"/>
  1185.     </xs:keyref>
  1186.     <xs:keyref name="documentationKeyRef3" refer="rdml:documentationKey">
  1187.       <xs:selector xpath="./rdml:thermalCyclingConditions/rdml:documentation"/>
  1188.       <xs:field xpath="@id"/>
  1189.     </xs:keyref>
  1190.     <xs:keyref name="documentationKeyRef4" refer="rdml:documentationKey">
  1191.       <xs:selector xpath="./rdml:experiment/rdml:documentation"/>
  1192.       <xs:field xpath="@id"/>
  1193.     </xs:keyref>
  1194.     <xs:keyref name="documentationKeyRef5" refer="rdml:documentationKey">
  1195.       <xs:selector xpath="./rdml:experiment/rdml:run/rdml:documentation"/>
  1196.       <xs:field xpath="@id"/>
  1197.     </xs:keyref>
  1198.     <xs:key name="documentationKey">
  1199.       <xs:selector xpath="./rdml:documentation"/>
  1200.       <xs:field xpath="@id"/>
  1201.     </xs:key>
  1202.     <xs:keyref name="dyeKeyRef" refer="rdml:dyeKey">
  1203.       <xs:selector xpath="./rdml:target/rdml:dyeId"/>
  1204.       <xs:field xpath="@id"/>
  1205.     </xs:keyref>
  1206.     <xs:key name="dyeKey">
  1207.       <xs:selector xpath="./rdml:dye"/>
  1208.       <xs:field xpath="@id"/>
  1209.     </xs:key>
  1210.     <xs:key name="experimentIdKey">
  1211.       <xs:selector xpath="./rdml:experiment"/>
  1212.       <xs:field xpath="@id"/>
  1213.     </xs:key>
  1214.     <xs:keyref name="experimenterIdKeyRef" refer="rdml:experimenterIdKey">
  1215.       <xs:selector xpath="./rdml:experiment/rdml:run/rdml:experimenter"/>
  1216.       <xs:field xpath="@id"/>
  1217.     </xs:keyref>
  1218.     <xs:keyref name="experimenterIdKeyRef2" refer="rdml:experimenterIdKey">
  1219.       <xs:selector xpath="./rdml:thermalCyclingConditions/rdml:experimenter"/>
  1220.       <xs:field xpath="@id"/>
  1221.     </xs:keyref>
  1222.     <xs:key name="experimenterIdKey">
  1223.       <xs:selector xpath="./rdml:experimenter"/>
  1224.       <xs:field xpath="@id"/>
  1225.     </xs:key>
  1226.     <xs:keyref name="sampleIdKeyRef" refer="rdml:sampleIdKey">
  1227.       <xs:selector xpath="./rdml:experiment/rdml:run/rdml:react/rdml:sample"/>
  1228.       <xs:field xpath="@id"/>
  1229.     </xs:keyref>
  1230.     <xs:key name="sampleIdKey">
  1231.       <xs:selector xpath="./rdml:sample"/>
  1232.       <xs:field xpath="@id"/>
  1233.     </xs:key>
  1234.     <xs:keyref name="targetIdKeyRef" refer="rdml:targetIdKey">
  1235.       <xs:selector xpath="./rdml:experiment/rdml:run/rdml:react/rdml:data/rdml:tar"/>
  1236.       <xs:field xpath="@id"/>
  1237.     </xs:keyref>
  1238.     <xs:key name="targetIdKey">
  1239.       <xs:selector xpath="./rdml:target"/>
  1240.       <xs:field xpath="@id"/>
  1241.     </xs:key>
  1242.     <xs:keyref name="thermalCyclingConditionsIdKeyRef" refer="rdml:thermalCyclingConditionsIdKey">
  1243.       <xs:selector xpath="./rdml:experiment/rdml:run/rdml:thermalCyclingConditions"/>
  1244.       <xs:field xpath="@id"/>
  1245.     </xs:keyref>
  1246.     <xs:keyref name="thermalCyclingConditionsIdKeyRef2" refer="rdml:thermalCyclingConditionsIdKey">
  1247.       <xs:selector xpath="./rdml:sample/rdml:cdnaSynthesisMethod/rdml:thermalCyclingConditions"/>
  1248.       <xs:field xpath="@id"/>
  1249.     </xs:keyref>
  1250.     <xs:key name="thermalCyclingConditionsIdKey">
  1251.       <xs:selector xpath="./rdml:thermalCyclingConditions"/>
  1252.       <xs:field xpath="@id"/>
  1253.     </xs:key>
  1254.   </xs:element>
  1255. </xs:schema>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement