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>