Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / doc / smi.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE xsd:schema SYSTEM "http://www.w3.org/2001/XMLSchema.dtd">
3
4 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
5
6 <!--
7    - The top-level element.
8    -
9   -->
10
11  <xsd:element name="smi">
12   <xsd:complexType>
13    <xsd:sequence>
14     <xsd:element ref="module"/>
15     <xsd:element ref="imports"       minOccurs="0" maxOccurs="unbounded"/>
16     <xsd:element ref="typedefs"      minOccurs="0" maxOccurs="unbounded"/>
17     <xsd:element ref="nodes"         minOccurs="0" maxOccurs="unbounded"/>
18     <xsd:element ref="notifications" minOccurs="0" maxOccurs="unbounded"/>
19     <xsd:element ref="groups"        minOccurs="0" maxOccurs="unbounded"/>
20     <xsd:element ref="compliances"   minOccurs="0" maxOccurs="unbounded"/>
21    </xsd:sequence>
22   </xsd:complexType>
23  </xsd:element>
24
25 <!--
26    - Terminal Elements.
27    -
28   -->
29
30  <xsd:element name="description">
31   <xsd:simpleType>
32    <xsd:restriction base="xsd:string"/>
33   </xsd:simpleType>
34  </xsd:element>
35
36  <xsd:element name="reference">
37   <xsd:simpleType>
38    <xsd:restriction base="xsd:string"/>
39   </xsd:simpleType>
40  </xsd:element>
41
42  <xsd:element name="format">
43   <xsd:simpleType>
44    <xsd:restriction base="xsd:string"/>
45   </xsd:simpleType>
46  </xsd:element>
47
48  <xsd:element name="units">
49   <xsd:simpleType>
50    <xsd:restriction base="xsd:string"/>
51   </xsd:simpleType>
52  </xsd:element>
53
54  <xsd:element name="default">
55   <xsd:simpleType>
56    <xsd:restriction base="xsd:string"/>
57   </xsd:simpleType>
58  </xsd:element>
59
60  <xsd:element name="access">
61   <xsd:simpleType>
62    <xsd:restriction base="xsd:string">
63     <xsd:enumeration value="noaccess"/>
64     <xsd:enumeration value="notifyonly"/>
65     <xsd:enumeration value="readonly"/>
66     <xsd:enumeration value="readwrite"/>
67    </xsd:restriction>
68   </xsd:simpleType>
69  </xsd:element>
70
71  <xsd:element name="range">
72   <xsd:complexType>
73    <xsd:attribute name="min" type="xsd:integer" use="required"/>
74    <xsd:attribute name="max" type="xsd:integer" use="required"/>
75   </xsd:complexType>
76  </xsd:element>
77
78  <xsd:element name="namednumber">
79   <xsd:complexType>
80    <xsd:attribute name="name"   type="xsd:string"  use="required"/>
81    <xsd:attribute name="number" type="xsd:integer" use="required"/>
82   </xsd:complexType>
83  </xsd:element>
84
85  <xsd:element name="parent">
86   <xsd:complexType>
87    <xsd:attribute name="module" type="xsd:string" use="required"/>
88    <xsd:attribute name="name"   type="xsd:string" use="required"/>
89   </xsd:complexType>
90  </xsd:element>
91
92  <xsd:element name="type">
93   <xsd:complexType>
94    <xsd:attribute name="module" type="xsd:string" use="required"/>
95    <xsd:attribute name="name"   type="xsd:string" use="required"/>
96   </xsd:complexType>
97  </xsd:element>
98
99  <xsd:element name="syntax">
100   <xsd:complexType>
101    <xsd:choice>
102     <xsd:element ref="type"/>
103     <xsd:element ref="typedef"/>
104    </xsd:choice>
105   </xsd:complexType>
106  </xsd:element>
107
108  <xsd:element name="writesyntax">
109   <xsd:complexType>
110    <xsd:choice>
111     <xsd:element ref="type"/>
112     <xsd:element ref="typedef"/>
113    </xsd:choice>
114   </xsd:complexType>
115  </xsd:element>
116
117  <xsd:element name="linkage">
118   <xsd:complexType>
119    <xsd:choice>
120     <xsd:element ref="index" minOccurs="1" maxOccurs="unbounded"/>
121     <xsd:element ref="augments"/>
122     <xsd:element ref="reorders"/>
123     <xsd:element ref="sparse"/>
124     <xsd:element ref="expands"/>
125    </xsd:choice>
126    <xsd:attribute name="implied" default="false">
127     <xsd:simpleType>
128      <xsd:restriction base="xsd:string">
129       <xsd:enumeration value="true"/>
130       <xsd:enumeration value="false"/>
131      </xsd:restriction>
132     </xsd:simpleType>
133    </xsd:attribute>
134   </xsd:complexType>
135  </xsd:element>
136
137  <xsd:element name="index">
138   <xsd:complexType>
139    <xsd:attribute name="module" type="xsd:string" use="required"/>
140    <xsd:attribute name="name"   type="xsd:string" use="required"/>
141   </xsd:complexType>
142  </xsd:element>
143
144  <xsd:element name="augments">
145   <xsd:complexType>
146    <xsd:attribute name="module" type="xsd:string" use="required"/>
147    <xsd:attribute name="name"   type="xsd:string" use="required"/>
148   </xsd:complexType>
149  </xsd:element>
150
151  <xsd:element name="reorders">
152   <xsd:complexType>
153    <xsd:attribute name="module" type="xsd:string" use="required"/>
154    <xsd:attribute name="name"   type="xsd:string" use="required"/>
155   </xsd:complexType>
156  </xsd:element>
157
158  <xsd:element name="sparse">
159   <xsd:complexType>
160    <xsd:attribute name="module" type="xsd:string" use="required"/>
161    <xsd:attribute name="name"   type="xsd:string" use="required"/>
162   </xsd:complexType>
163  </xsd:element>
164
165  <xsd:element name="expands">
166   <xsd:complexType>
167    <xsd:attribute name="module" type="xsd:string" use="required"/>
168    <xsd:attribute name="name"   type="xsd:string" use="required"/>
169   </xsd:complexType>
170  </xsd:element>
171
172
173
174  <xsd:element name="module">
175   <xsd:complexType>
176    <xsd:sequence>
177     <xsd:element ref="organization" minOccurs="0" maxOccurs="1"/>
178     <xsd:element ref="contact"      minOccurs="0" maxOccurs="1"/>
179     <xsd:element ref="description"  minOccurs="0" maxOccurs="1"/>
180     <xsd:element ref="reference"    minOccurs="0" maxOccurs="1"/>
181     <xsd:element ref="revision"     minOccurs="0" maxOccurs="unbounded"/>
182     <xsd:element ref="identity"     minOccurs="0" maxOccurs="1"/>
183    </xsd:sequence>
184    <xsd:attribute name="name"     type="xsd:string" use="required"/>
185    <xsd:attribute name="language"                   use="required">
186     <xsd:simpleType>
187      <xsd:restriction base="xsd:string">
188       <xsd:enumeration value="SMIv1"/>
189       <xsd:enumeration value="SMIv2"/>
190       <xsd:enumeration value="SMIng"/>
191      </xsd:restriction>
192     </xsd:simpleType>
193    </xsd:attribute>
194   </xsd:complexType>
195  </xsd:element>
196
197  <xsd:element name="organization">
198   <xsd:simpleType>
199    <xsd:restriction base="xsd:string"/>
200   </xsd:simpleType>
201  </xsd:element>
202
203  <xsd:element name="contact">
204   <xsd:simpleType>
205    <xsd:restriction base="xsd:string"/>
206   </xsd:simpleType>
207  </xsd:element>
208
209  <xsd:element name="revision">
210   <xsd:complexType>
211    <xsd:sequence>
212     <xsd:element ref="description"/>
213    </xsd:sequence>
214    <xsd:attribute name="date" type="xsd:string" use="required"/>
215   </xsd:complexType>
216  </xsd:element>
217
218  <xsd:element name="identity">
219   <xsd:complexType>
220    <xsd:attribute name="node" type="xsd:string" use="required"/>
221   </xsd:complexType>
222  </xsd:element>
223
224  <xsd:element name="imports">
225   <xsd:complexType>
226    <xsd:sequence>
227     <xsd:element ref="import" maxOccurs="unbounded"/>
228    </xsd:sequence>
229   </xsd:complexType>
230  </xsd:element>
231
232  <xsd:element name="import">
233   <xsd:complexType>
234    <xsd:attribute name="module" type="xsd:string" use="required"/>
235    <xsd:attribute name="name"   type="xsd:string" use="required"/>
236   </xsd:complexType>
237  </xsd:element>
238
239  <xsd:element name="typedefs">
240   <xsd:complexType>
241    <xsd:sequence>
242     <xsd:element ref="typedef" maxOccurs="unbounded"/>
243    </xsd:sequence>
244   </xsd:complexType>
245  </xsd:element>
246
247  <xsd:element name="typedef">
248   <xsd:complexType>
249    <xsd:sequence>
250     <xsd:element ref="parent"      minOccurs="0" maxOccurs="1"/>
251     <xsd:element ref="range"       minOccurs="0" maxOccurs="unbounded"/>
252     <xsd:element ref="namednumber" minOccurs="0" maxOccurs="unbounded"/>
253     <xsd:element ref="default"     minOccurs="0" maxOccurs="1"/>
254     <xsd:element ref="format"      minOccurs="0" maxOccurs="1"/>
255     <xsd:element ref="units"       minOccurs="0" maxOccurs="1"/>
256     <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
257     <xsd:element ref="reference"   minOccurs="0" maxOccurs="1"/>
258    </xsd:sequence>
259    <xsd:attribute name="name"     type="xsd:string" default=""/>
260    <xsd:attribute name="basetype" type="xsd:string" use="required"/>
261    <xsd:attribute name="status"                     default="current">
262     <xsd:simpleType>
263      <xsd:restriction base="xsd:string">
264       <xsd:enumeration value="current"/>
265       <xsd:enumeration value="deprecated"/>
266       <xsd:enumeration value="obsolete"/>
267       <xsd:enumeration value="mandatory"/>
268       <xsd:enumeration value="optional"/>
269      </xsd:restriction>
270     </xsd:simpleType>
271    </xsd:attribute>
272   </xsd:complexType>
273  </xsd:element>
274
275  <xsd:element name="nodes">
276   <xsd:complexType>
277    <xsd:choice maxOccurs="unbounded">
278     <xsd:element ref="node"/>
279     <xsd:element ref="scalar"/>
280     <xsd:element ref="table"/>
281    </xsd:choice>
282   </xsd:complexType>
283  </xsd:element>
284
285  <xsd:element name="node">
286   <xsd:complexType>
287    <xsd:sequence>
288     <xsd:element ref="description" minOccurs="0" maxOccurs="1"/>
289     <xsd:element ref="reference"   minOccurs="0" maxOccurs="1"/>
290    </xsd:sequence>
291    <xsd:attribute name="name"   type="xsd:string" use="required"/>
292    <xsd:attribute name="oid"    type="xsd:string" use="required"/>
293    <xsd:attribute name="status" default="current">
294     <xsd:simpleType>
295      <xsd:restriction base="xsd:string">
296       <xsd:enumeration value="current"/>
297       <xsd:enumeration value="deprecated"/>
298       <xsd:enumeration value="obsolete"/>
299       <xsd:enumeration value="mandatory"/>
300       <xsd:enumeration value="optional"/>
301      </xsd:restriction>
302     </xsd:simpleType>
303    </xsd:attribute>
304   </xsd:complexType>
305  </xsd:element>
306
307  <xsd:element name="scalar">
308   <xsd:complexType>
309    <xsd:sequence>
310     <xsd:element ref="syntax"/>
311     <xsd:element ref="access"/>
312     <xsd:element ref="default"    minOccurs="0" maxOccurs="1"/>
313     <xsd:element ref="format"     minOccurs="0" maxOccurs="1"/>
314     <xsd:element ref="units"      minOccurs="0" maxOccurs="1"/>
315     <xsd:element ref="description"/>
316     <xsd:element ref="reference"  minOccurs="0" maxOccurs="1"/>
317    </xsd:sequence>
318    <xsd:attribute name="name"   type="xsd:string" use="required"/>
319    <xsd:attribute name="oid"    type="xsd:string" use="required"/>
320    <xsd:attribute name="status" default="current">
321     <xsd:simpleType>
322      <xsd:restriction base="xsd:string">
323       <xsd:enumeration value="current"/>
324       <xsd:enumeration value="deprecated"/>
325       <xsd:enumeration value="obsolete"/>
326       <xsd:enumeration value="mandatory"/>
327       <xsd:enumeration value="optional"/>
328      </xsd:restriction>
329     </xsd:simpleType>
330    </xsd:attribute>
331   </xsd:complexType>
332  </xsd:element>
333
334  <xsd:element name="table">
335   <xsd:complexType>
336    <xsd:sequence>
337     <xsd:element ref="description"/>
338     <xsd:element ref="reference" minOccurs="0" maxOccurs="1"/>
339     <xsd:element ref="row"/>
340    </xsd:sequence>
341    <xsd:attribute name="name"   type="xsd:string" use="required"/>
342    <xsd:attribute name="oid"    type="xsd:string" use="required"/>
343    <xsd:attribute name="status" default="current">
344     <xsd:simpleType>
345      <xsd:restriction base="xsd:string">
346       <xsd:enumeration value="current"/>
347       <xsd:enumeration value="deprecated"/>
348       <xsd:enumeration value="obsolete"/>
349       <xsd:enumeration value="mandatory"/>
350       <xsd:enumeration value="optional"/>
351      </xsd:restriction>
352     </xsd:simpleType>
353    </xsd:attribute>
354   </xsd:complexType>
355  </xsd:element>
356
357  <xsd:element name="row">
358   <xsd:complexType>
359    <xsd:sequence>
360     <xsd:element ref="linkage"/>
361     <xsd:element ref="description"/>
362     <xsd:element ref="reference" minOccurs="0" maxOccurs="1"/>
363     <xsd:element ref="column"    maxOccurs="unbounded"/>
364    </xsd:sequence>
365    <xsd:attribute name="name"   type="xsd:string" use="required"/>
366    <xsd:attribute name="oid"    type="xsd:string" use="required"/>
367    <xsd:attribute name="create" default="false">
368     <xsd:simpleType>
369      <xsd:restriction base="xsd:string">
370       <xsd:enumeration value="true"/>
371       <xsd:enumeration value="false"/>
372      </xsd:restriction>
373     </xsd:simpleType>
374    </xsd:attribute>
375    <xsd:attribute name="status" default="current">
376     <xsd:simpleType>
377      <xsd:restriction base="xsd:string">
378       <xsd:enumeration value="current"/>
379       <xsd:enumeration value="deprecated"/>
380       <xsd:enumeration value="obsolete"/>
381       <xsd:enumeration value="mandatory"/>
382       <xsd:enumeration value="optional"/>
383      </xsd:restriction>
384     </xsd:simpleType>
385    </xsd:attribute>
386   </xsd:complexType>
387  </xsd:element>
388
389  <xsd:element name="column">
390   <xsd:complexType>
391    <xsd:sequence>
392     <xsd:element ref="syntax"/>
393     <xsd:element ref="access"/>
394     <xsd:element ref="default"   minOccurs="0" maxOccurs="1"/>
395     <xsd:element ref="format"    minOccurs="0" maxOccurs="1"/>
396     <xsd:element ref="units"     minOccurs="0" maxOccurs="1"/>
397     <xsd:element ref="description"/>
398     <xsd:element ref="reference" minOccurs="0" maxOccurs="1"/>
399    </xsd:sequence>
400    <xsd:attribute name="name" type="xsd:string" use="required"/>
401    <xsd:attribute name="oid"  type="xsd:string" use="required"/>
402    <xsd:attribute name="status" default="current">
403     <xsd:simpleType>
404      <xsd:restriction base="xsd:string">
405       <xsd:enumeration value="current"/>
406       <xsd:enumeration value="deprecated"/>
407       <xsd:enumeration value="obsolete"/>
408       <xsd:enumeration value="mandatory"/>
409       <xsd:enumeration value="optional"/>
410      </xsd:restriction>
411     </xsd:simpleType>
412    </xsd:attribute>
413   </xsd:complexType>
414  </xsd:element>
415
416  <xsd:element name="notifications">
417   <xsd:complexType>
418    <xsd:sequence>
419     <xsd:element ref="notification" maxOccurs="unbounded"/>
420    </xsd:sequence>
421   </xsd:complexType>
422  </xsd:element>
423
424  <xsd:element name="notification">
425   <xsd:complexType>
426    <xsd:sequence>
427     <xsd:element ref="objects"/>
428     <xsd:element ref="description"/>
429     <xsd:element ref="reference" minOccurs="0" maxOccurs="1"/>
430    </xsd:sequence>
431    <xsd:attribute name="name" type="xsd:string" use="required"/>
432    <xsd:attribute name="oid" type="xsd:string" use="required"/>
433    <xsd:attribute name="status" default="current">
434     <xsd:simpleType>
435      <xsd:restriction base="xsd:string">
436       <xsd:enumeration value="current"/>
437       <xsd:enumeration value="deprecated"/>
438       <xsd:enumeration value="obsolete"/>
439       <xsd:enumeration value="mandatory"/>
440       <xsd:enumeration value="optional"/>
441      </xsd:restriction>
442     </xsd:simpleType>
443    </xsd:attribute>
444   </xsd:complexType>
445  </xsd:element>
446
447  <xsd:element name="objects">
448   <xsd:complexType>
449    <xsd:sequence>
450     <xsd:element ref="object" minOccurs="0" maxOccurs="unbounded"/>
451    </xsd:sequence>
452   </xsd:complexType>
453  </xsd:element>
454
455  <xsd:element name="object">
456   <xsd:complexType>
457    <xsd:attribute name="module" type="xsd:string" use="required"/>
458    <xsd:attribute name="name" type="xsd:string" use="required"/>
459   </xsd:complexType>
460  </xsd:element>
461
462  <xsd:element name="groups">
463   <xsd:complexType>
464    <xsd:sequence>
465     <xsd:element ref="group" maxOccurs="unbounded"/>
466    </xsd:sequence>
467   </xsd:complexType>
468  </xsd:element>
469
470  <xsd:element name="group">
471   <xsd:complexType>
472    <xsd:sequence>
473     <xsd:element ref="members"/>
474     <xsd:element ref="description"/>
475     <xsd:element ref="reference" minOccurs="0" maxOccurs="1"/>
476    </xsd:sequence>
477    <xsd:attribute name="name" type="xsd:string" use="required"/>
478    <xsd:attribute name="oid" type="xsd:string" use="required"/>
479    <xsd:attribute name="status" default="current">
480     <xsd:simpleType>
481      <xsd:restriction base="xsd:string">
482       <xsd:enumeration value="current"/>
483       <xsd:enumeration value="deprecated"/>
484       <xsd:enumeration value="obsolete"/>
485       <xsd:enumeration value="mandatory"/>
486       <xsd:enumeration value="optional"/>
487      </xsd:restriction>
488     </xsd:simpleType>
489    </xsd:attribute>
490   </xsd:complexType>
491  </xsd:element>
492
493  <xsd:element name="members">
494   <xsd:complexType>
495    <xsd:sequence>
496     <xsd:element ref="member" maxOccurs="unbounded"/>
497    </xsd:sequence>
498   </xsd:complexType>
499  </xsd:element>
500
501  <xsd:element name="member">
502   <xsd:complexType>
503    <xsd:attribute name="module" type="xsd:string" use="required"/>
504    <xsd:attribute name="name" type="xsd:string" use="required"/>
505   </xsd:complexType>
506  </xsd:element>
507
508  <xsd:element name="compliances">
509   <xsd:complexType>
510    <xsd:sequence>
511     <xsd:element ref="compliance" maxOccurs="unbounded"/>
512    </xsd:sequence>
513   </xsd:complexType>
514  </xsd:element>
515
516  <xsd:element name="compliance">
517   <xsd:complexType>
518    <xsd:sequence>
519     <xsd:element ref="description"/>
520     <xsd:element ref="requires"/>
521     <xsd:element ref="refinements" minOccurs="0" maxOccurs="1"/>
522    </xsd:sequence>
523    <xsd:attribute name="name" type="xsd:string" use="required"/>
524    <xsd:attribute name="oid" type="xsd:string" use="required"/>
525    <xsd:attribute name="status" default="current">
526     <xsd:simpleType>
527      <xsd:restriction base="xsd:string">
528       <xsd:enumeration value="current"/>
529       <xsd:enumeration value="deprecated"/>
530       <xsd:enumeration value="obsolete"/>
531       <xsd:enumeration value="mandatory"/>
532       <xsd:enumeration value="optional"/>
533      </xsd:restriction>
534     </xsd:simpleType>
535    </xsd:attribute>
536   </xsd:complexType>
537  </xsd:element>
538
539  <xsd:element name="requires">
540   <xsd:complexType>
541    <xsd:choice maxOccurs="unbounded">
542     <xsd:element ref="mandatory"/>
543     <xsd:element ref="option"/>
544    </xsd:choice>
545   </xsd:complexType>
546  </xsd:element>
547
548  <xsd:element name="mandatory">
549   <xsd:complexType>
550    <xsd:attribute name="module" type="xsd:string" use="required"/>
551    <xsd:attribute name="name" type="xsd:string" use="required"/>
552   </xsd:complexType>
553  </xsd:element>
554
555  <xsd:element name="option">
556   <xsd:complexType>
557    <xsd:sequence>
558     <xsd:element ref="description"/>
559    </xsd:sequence>
560    <xsd:attribute name="module" type="xsd:string" use="required"/>
561    <xsd:attribute name="name" type="xsd:string" use="required"/>
562   </xsd:complexType>
563  </xsd:element>
564
565  <xsd:element name="refinements">
566   <xsd:complexType>
567    <xsd:sequence>
568     <xsd:element ref="refinement" maxOccurs="unbounded"/>
569    </xsd:sequence>
570   </xsd:complexType>
571  </xsd:element>
572
573  <xsd:element name="refinement">
574   <xsd:complexType>
575    <xsd:sequence>
576     <xsd:element ref="syntax" minOccurs="0" maxOccurs="1"/>
577     <xsd:element ref="writesyntax" minOccurs="0" maxOccurs="1"/>
578     <xsd:element ref="access" minOccurs="0" maxOccurs="1"/>
579     <xsd:element ref="description"/>
580    </xsd:sequence>
581    <xsd:attribute name="module" type="xsd:string" use="required"/>
582    <xsd:attribute name="name" type="xsd:string" use="required"/>
583   </xsd:complexType>
584  </xsd:element>
585
586 </xsd:schema>