1<?xml version="1.0" encoding="UTF-8"?>
  2<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  3  <xs:import namespace="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="xsi.xsd"/>
  4  <xs:element name="sources">
  5    <xs:complexType>
  6      <xs:all>
  7        <xs:element ref="sids"/>
  8        <xs:element minOccurs="0" ref="satellites"/>
  9        <xs:element minOccurs="0" ref="special-packets"/>
 10      </xs:all>
 11      <xs:attribute ref="xsi:noNamespaceSchemaLocation"/>
 12    </xs:complexType>
 13  </xs:element>
 14  <xs:element name="sids">
 15    <xs:complexType>
 16      <xs:sequence>
 17        <xs:element minOccurs="0" maxOccurs="unbounded" ref="sid"/>
 18      </xs:sequence>
 19    </xs:complexType>
 20  </xs:element>
 21  <xs:element name="sid">
 22    <xs:complexType>
 23      <xs:all>
 24        <xs:element minOccurs="0" ref="sid-num"/>
 25        <xs:element name="name" type="xs:string">
 26          <xs:annotation>
 27            <xs:documentation>Required name of this source</xs:documentation>
 28          </xs:annotation>
 29        </xs:element>
 30        <xs:element minOccurs="0" ref="long-name"/>
 31        <xs:element minOccurs="0" ref="description"/>
 32        <xs:element minOccurs="0" name="satellite" type="xs:string">
 33          <xs:annotation>
 34            <xs:documentation>Name of associated &lt;satellite&gt;</xs:documentation>
 35          </xs:annotation>
 36        </xs:element>
 37        <xs:element minOccurs="0" ref="colour"/>
 38        <xs:element minOccurs="0" ref="visible"/>
 39        <xs:element minOccurs="0" ref="operational"/>
 40        <xs:element minOccurs="0" ref="default"/>
 41        <xs:element minOccurs="0" ref="orbiter"/>
 42        <xs:element minOccurs="0" ref="group"/>
 43      </xs:all>
 44    </xs:complexType>
 45  </xs:element>
 46  <xs:element name="sid-num" type="xs:integer">
 47    <xs:annotation>
 48      <xs:documentation>For SID classes that use SID_NUM fields for database storage</xs:documentation>
 49    </xs:annotation>
 50  </xs:element>
 51  <xs:element name="long-name" type="xs:string">
 52    <xs:annotation>
 53      <xs:documentation>Longer name to use in graph labels and other places</xs:documentation>
 54    </xs:annotation>
 55  </xs:element>
 56  <xs:element name="description" type="xs:string">
 57    <xs:annotation>
 58      <xs:documentation>Description, currently for information only and not used</xs:documentation>
 59    </xs:annotation>
 60  </xs:element>
 61  <xs:element name="colour" type="xs:string">
 62    <xs:annotation>
 63      <xs:documentation>Default colour used in report viewer</xs:documentation>
 64    </xs:annotation>
 65  </xs:element>
 66  <xs:element name="visible" type="xs:boolean">
 67    <xs:annotation>
 68      <xs:documentation>Control visibility of this SID in web tools</xs:documentation>
 69    </xs:annotation>
 70  </xs:element>
 71  <xs:element name="operational" type="xs:boolean">
 72    <xs:annotation>
 73      <xs:documentation>Specify whether this source is included in regular reporting and processing</xs:documentation>
 74    </xs:annotation>
 75  </xs:element>
 76  <xs:element name="default" type="xs:boolean">
 77    <xs:annotation>
 78      <xs:documentation>For one SID only nominate as the default GUI menu item</xs:documentation>
 79    </xs:annotation>
 80  </xs:element>
 81  <xs:element name="orbiter" type="xs:string">
 82    <xs:annotation>
 83      <xs:documentation>Name of either a Python class or another SID for orbit determination</xs:documentation>
 84    </xs:annotation>
 85  </xs:element>
 86  <xs:element name="group" type="xs:string">
 87    <xs:annotation>
 88      <xs:documentation>Used to group similar SIDs in a GUI</xs:documentation>
 89    </xs:annotation>
 90  </xs:element>
 91  <xs:element name="satellites">
 92    <xs:complexType>
 93      <xs:sequence>
 94        <xs:element minOccurs="0" maxOccurs="unbounded" name="satellite">
 95          <xs:complexType>
 96            <xs:all>
 97              <xs:element name="name" type="xs:string">
 98                <xs:annotation>
 99                  <xs:documentation>Normal short identifier for this satellite</xs:documentation>
100                </xs:annotation>
101              </xs:element>
102              <xs:element minOccurs="0" ref="launch-date"/>
103              <xs:element minOccurs="0" ref="decommision-date"/>
104              <xs:element minOccurs="0" ref="orbit-duration"/>
105            </xs:all>
106          </xs:complexType>
107        </xs:element>
108      </xs:sequence>
109    </xs:complexType>
110  </xs:element>
111  <xs:element name="launch-date" type="xs:dateTime">
112    <xs:annotation>
113      <xs:documentation>Launch date, if known</xs:documentation>
114    </xs:annotation>
115  </xs:element>
116  <xs:element name="decommision-date" type="xs:dateTime">
117    <xs:annotation>
118      <xs:documentation>End of life date, if known</xs:documentation>
119    </xs:annotation>
120  </xs:element>
121  <xs:element name="orbit-duration" type="xs:duration">
122    <xs:annotation>
123      <xs:documentation>Nominal orbit duration for satellites with orbits</xs:documentation>
124    </xs:annotation>
125  </xs:element>
126  <xs:element name="special-packets">
127    <xs:annotation>
128      <xs:documentation>For PUS ingestion configuration</xs:documentation>
129    </xs:annotation>
130    <xs:complexType>
131      <xs:all>
132        <xs:element minOccurs="0" ref="good-frame-spid"/>
133        <xs:element minOccurs="0" ref="bad-frame-spid"/>
134        <xs:element minOccurs="0" ref="unknown-packet-spid"/>
135        <xs:element minOccurs="0" ref="bad-packet-spid"/>
136        <xs:element minOccurs="0" ref="idle-packet-spid"/>
137        <xs:element minOccurs="0" ref="idle-frame-spid"/>
138      </xs:all>
139    </xs:complexType>
140  </xs:element>
141  <xs:element name="good-frame-spid" type="xs:integer"/>
142  <xs:element name="bad-frame-spid" type="xs:integer"/>
143  <xs:element name="unknown-packet-spid" type="xs:integer"/>
144  <xs:element name="bad-packet-spid" type="xs:integer"/>
145  <xs:element name="idle-packet-spid" type="xs:integer"/>
146  <xs:element name="idle-frame-spid" type="xs:integer"/>
147</xs:schema>