1<?xml version="1.0" encoding="UTF-8"?>
 2<!-- CHART Calibration definition files for raw or derived tables or views -->
 3<element name="calibrations" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
 4  <interleave>
 5    <attribute name="xsi:noNamespaceSchemaLocation">
 6      <value>http://chart/schemas/calibration.xsd</value>
 7    </attribute>
 8    <zeroOrMore>
 9      <element name="source">
10        <a:documentation>Identify all spacecraft this file applies to. Wildcards allowed.</a:documentation>
11        <element name="scid">
12          <text/>
13        </element>
14      </element>
15    </zeroOrMore>
16    <zeroOrMore>
17      <element name="calibration">
18        <a:documentation>A single named calibration function</a:documentation>
19        <interleave>
20          <oneOrMore>
21            <element name="field">
22              <a:documentation>Name of the calibration function as refered from the raw table field definition.</a:documentation>
23              <text/>
24            </element>
25          </oneOrMore>
26          <choice>
27            <a:documentation>State a linear calibration.</a:documentation>
28            <element name="linear">
29              <oneOrMore>
30                <element name="pair">
31                  <a:documentation>A linear calibraton may contain multiple pairs.</a:documentation>
32                  <interleave>
33                    <element name="raw">
34                      <a:documentation>Each pair has a raw value</a:documentation>
35                      <data type="integer"/>
36                    </element>
37                    <element name="cal">
38                      <a:documentation>Each pair has a calibrated value</a:documentation>
39                      <data type="double"/>
40                    </element>
41                  </interleave>
42                </element>
43              </oneOrMore>
44            </element>
45            <element name="poly">
46              <a:documentation>State a polynomial calibration</a:documentation>
47              <oneOrMore>
48                <element name="coeff">
49                  <a:documentation>A polynomial may have multiple terms. x0 first.</a:documentation>
50                  <data type="double"/>
51                </element>
52              </oneOrMore>
53            </element>
54            <element name="plsql">
55              <a:documentation>Use a named pl/SQL function for calibration.</a:documentation>
56              <text/>
57            </element>
58            <element name="sql">
59              <a:documentation>Use an inline SQL statement.</a:documentation>
60              <text/>
61            </element>
62          </choice>
63        </interleave>
64      </element>
65    </zeroOrMore>
66  </interleave>
67</element>