1<?xml version="1.0" encoding="UTF-8"?>
  2<!-- CHART PUS Packet definition files -->
  3<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4  <xs:import namespace="http://www.w3.org/2001/XMLSchema-instance" schemaLocation="xsi.xsd"/>
  5  <xs:element name="packet">
  6    <xs:complexType>
  7      <xs:choice minOccurs="0" maxOccurs="unbounded">
  8        <xs:element name="name" type="xs:string">
  9          <xs:annotation>
 10            <xs:documentation>packet name</xs:documentation>
 11          </xs:annotation>
 12        </xs:element>
 13        <xs:element ref="description"/>
 14        <xs:element ref="spid"/>
 15        <xs:element ref="service"/>
 16        <xs:element ref="subservice"/>
 17        <xs:element ref="apid"/>
 18        <xs:element ref="dynamic-start"/>
 19        <xs:element ref="param1"/>
 20        <xs:element ref="param2"/>
 21        <xs:element ref="header-type"/>
 22        <xs:element ref="format"/>
 23        <xs:element ref="table"/>
 24      </xs:choice>
 25      <xs:attribute ref="xsi:noNamespaceSchemaLocation" use="required"/>
 26    </xs:complexType>
 27  </xs:element>
 28  <xs:element name="description" type="xs:string">
 29    <xs:annotation>
 30      <xs:documentation>table description string</xs:documentation>
 31    </xs:annotation>
 32  </xs:element>
 33  <xs:element name="spid" type="xs:integer">
 34    <xs:annotation>
 35      <xs:documentation>Special Packet IDentifier</xs:documentation>
 36    </xs:annotation>
 37  </xs:element>
 38  <xs:element name="service" type="xs:integer">
 39    <xs:annotation>
 40      <xs:documentation>PUS service</xs:documentation>
 41    </xs:annotation>
 42  </xs:element>
 43  <xs:element name="subservice" type="xs:integer">
 44    <xs:annotation>
 45      <xs:documentation>PUS subservice</xs:documentation>
 46    </xs:annotation>
 47  </xs:element>
 48  <xs:element name="apid" type="xs:integer">
 49    <xs:annotation>
 50      <xs:documentation>PUS application ID</xs:documentation>
 51    </xs:annotation>
 52  </xs:element>
 53  <xs:element name="dynamic-start" type="xs:integer">
 54    <xs:annotation>
 55      <xs:documentation>First byte where dynamic parameter processing begins</xs:documentation>
 56    </xs:annotation>
 57  </xs:element>
 58  <xs:element name="param1" type="xs:integer">
 59    <xs:annotation>
 60      <xs:documentation>First additional identifier parameter</xs:documentation>
 61    </xs:annotation>
 62  </xs:element>
 63  <xs:element name="param2" type="xs:integer">
 64    <xs:annotation>
 65      <xs:documentation>Second additional identifier parameter</xs:documentation>
 66    </xs:annotation>
 67  </xs:element>
 68  <xs:element name="header-type">
 69    <xs:annotation>
 70      <xs:documentation>Type of binary pre-paremeter standard header</xs:documentation>
 71    </xs:annotation>
 72    <xs:simpleType>
 73      <xs:restriction base="xs:token">
 74        <xs:enumeration value="TM"/>
 75        <xs:enumeration value="STDXPUSS"/>
 76        <xs:enumeration value="STDXCCSD"/>
 77      </xs:restriction>
 78    </xs:simpleType>
 79  </xs:element>
 80  <xs:element name="format">
 81    <xs:annotation>
 82      <xs:documentation>Event configuration</xs:documentation>
 83    </xs:annotation>
 84    <xs:simpleType>
 85      <xs:restriction base="xs:token">
 86        <xs:enumeration value="xdr"/>
 87        <xs:enumeration value="zxdr"/>
 88      </xs:restriction>
 89    </xs:simpleType>
 90  </xs:element>
 91  <xs:element name="table">
 92    <xs:annotation>
 93      <xs:documentation>List of tables we write to</xs:documentation>
 94    </xs:annotation>
 95    <xs:complexType>
 96      <xs:choice minOccurs="0" maxOccurs="unbounded">
 97        <xs:element name="name" type="xs:string">
 98          <xs:annotation>
 99            <xs:documentation>Our table name</xs:documentation>
100          </xs:annotation>
101        </xs:element>
102        <xs:element ref="field"/>
103      </xs:choice>
104    </xs:complexType>
105  </xs:element>
106  <xs:element name="field">
107    <xs:annotation>
108      <xs:documentation>List of parameters</xs:documentation>
109    </xs:annotation>
110    <xs:complexType>
111      <xs:all>
112        <xs:element name="name" type="xs:string">
113          <xs:annotation>
114            <xs:documentation>Parameter name</xs:documentation>
115          </xs:annotation>
116        </xs:element>
117        <xs:element minOccurs="0" ref="byte"/>
118        <xs:element minOccurs="0" ref="bit"/>
119        <xs:element minOccurs="0" ref="group-size"/>
120        <xs:element minOccurs="0" ref="offset-mod"/>
121        <xs:element minOccurs="0" ref="time-offset"/>
122        <xs:element minOccurs="0" ref="num-occ"/>
123        <xs:element minOccurs="0" ref="bits-between-occ"/>
124        <xs:element minOccurs="0" ref="time-delta-occ"/>
125      </xs:all>
126    </xs:complexType>
127  </xs:element>
128  <xs:element name="byte" type="xs:integer">
129    <xs:annotation>
130      <xs:documentation>Byte offset for static fields</xs:documentation>
131    </xs:annotation>
132  </xs:element>
133  <xs:element name="bit" type="xs:integer">
134    <xs:annotation>
135      <xs:documentation>Bit offset for static fields</xs:documentation>
136    </xs:annotation>
137  </xs:element>
138  <xs:element name="group-size" type="xs:integer">
139    <xs:annotation>
140      <xs:documentation>If this field cotrols duplication of subsequenct parameters</xs:documentation>
141    </xs:annotation>
142  </xs:element>
143  <xs:element name="offset-mod" type="xs:integer">
144    <xs:annotation>
145      <xs:documentation>Bit offset to introduce a gap inbetween variable parameters</xs:documentation>
146    </xs:annotation>
147  </xs:element>
148  <xs:element name="time-offset" type="xs:integer">
149    <xs:annotation>
150      <xs:documentation>Time offset in ms if this parameter has a different time to the main packet</xs:documentation>
151    </xs:annotation>
152  </xs:element>
153  <xs:element name="num-occ" type="xs:integer">
154    <xs:annotation>
155      <xs:documentation>Specific a number of fixed repeats of this parameter (sic)</xs:documentation>
156    </xs:annotation>
157  </xs:element>
158  <xs:element name="bits-between-occ" type="xs:integer">
159    <xs:annotation>
160      <xs:documentation>Stride between fixed repeats (sic)</xs:documentation>
161    </xs:annotation>
162  </xs:element>
163  <xs:element name="time-delta-occ" type="xs:integer">
164    <xs:annotation>
165      <xs:documentation>Time delta between repeats (sic)</xs:documentation>
166    </xs:annotation>
167  </xs:element>
168</xs:schema>