Imported Upstream version 0.4.8
[platform/upstream/libsmi.git] / doc / smi.dtd
1 <!--**
2     ** XML DTD for SMIv1/SMIv2/SMIng modules.
3     **
4     ** Typical invocation:
5     **    <!DOCTYPE smi PUBLIC
6     **            "-//IETF//DTD RFCxxxx SMI v0.1//EN"
7     **            "/some/path/smi.dtd">
8     **
9     ** Contact: Juergen Schoenwaelder
10     **          TU Braunschweig
11     **          Bueltenweg 74/75
12     **          38106 Braunschweig
13     **          Germany
14     **
15     **          <schoenw@ibr.cs.tu-bs.de>
16     **
17     ** Copyright (c) The Internet Society (2000).
18     ** All Rights Reserved.
19     **
20     ** $ID$
21     **
22     **-->
23
24
25 <!--** Entity Definitions **-->
26
27
28 <!ENTITY        % IDENTIFIER    "CDATA">
29     <!-- an SMI identifier (aka ASN.1 descriptor) -->
30
31 <!ENTITY        % OID           "CDATA">
32     <!-- Object Identifier in dotted notation (e.g. 1.3.6.1.2.1) -->
33
34 <!ENTITY        % TEXT          "#PCDATA">
35     <!-- text as defined in the SMI specification -->
36
37 <!ENTITY        % DATE          "CDATA">
38     <!-- date and time information (ISO date format) -->
39
40 <!ENTITY        % VALUE         "CDATA">
41     <!-- value of one of the SMI basetypes -->
42
43 <!ENTITY        % STATUS        "CDATA">
44     <!-- value of one of the SMI status values -->
45
46
47 <!--** Fundamental Attribute Definitions **-->
48
49
50 <!ENTITY        % at.module     'module %IDENTIFIER;    #REQUIRED'>
51
52 <!ENTITY        % at.name       'name   %IDENTIFIER;    #REQUIRED'>
53
54 <!ENTITY        % at.optname    'name   %IDENTIFIER;    ""'>
55
56 <!ENTITY        % at.oid        'oid    %OID;           #REQUIRED'>
57
58 <!ENTITY        % at.language   'language (SMIv1
59                                         |SMIv2
60                                         |SMIng)         #REQUIRED'>
61
62 <!ENTITY        % at.status     'status (current
63                                         |deprecated
64                                         |obsolete
65                                         |mandatory
66                                         |optional)      "current"'>
67
68 <!ENTITY        % at.basetype   'basetype %IDENTIFIER;  #REQUIRED'>
69
70 <!ENTITY        % at.date       'date   %DATE;          #REQUIRED'>
71
72 <!ENTITY        % at.number     'number %VALUE;         #REQUIRED'>
73
74 <!ENTITY        % at.min        'min    %VALUE;         #REQUIRED'>
75
76 <!ENTITY        % at.max        'max    %VALUE;         #REQUIRED'>
77
78 <!ENTITY        % at.node       'node   %IDENTIFIER;    #REQUIRED'>
79
80 <!ENTITY        % at.implied    'implied (true|false)   "false"'>
81
82 <!ENTITY        % at.create     'create (true|false)    "false"'>
83
84
85 <!--** Fundamental Element Definitions **-->
86
87
88 <!ELEMENT       description     (%TEXT;)>
89
90 <!ELEMENT       reference       (%TEXT;)>
91
92 <!ELEMENT       format          (%TEXT;)>
93
94 <!ELEMENT       units           (%TEXT;)>
95
96 <!ELEMENT       default         (%TEXT;)>
97
98 <!ELEMENT       access          (%TEXT;)>
99
100 <!ELEMENT       range           EMPTY>
101 <!ATTLIST       range           %at.min;
102                                 %at.max;>
103
104 <!ELEMENT       namednumber     EMPTY>
105 <!ATTLIST       namednumber     %at.name;
106                                 %at.number;>
107
108 <!ELEMENT       parent          EMPTY>
109 <!ATTLIST       parent          %at.module;
110                                 %at.name;>
111
112 <!ELEMENT       type            EMPTY>
113 <!ATTLIST       type            %at.module;
114                                 %at.name;>
115
116 <!ELEMENT       syntax          (type|typedef)>
117 <!ELEMENT       writesyntax     (type|typedef)>
118
119 <!ELEMENT       linkage         (index+|augments|reorders|sparse|expands)>
120 <!ATTLIST       linkage         %at.implied;>
121 <!ELEMENT       index           EMPTY>
122 <!ATTLIST       index           %at.module;
123                                 %at.name;>
124 <!ELEMENT       augments        EMPTY>
125 <!ATTLIST       augments        %at.module;
126                                 %at.name;>
127 <!ELEMENT       reorders        EMPTY>
128 <!ATTLIST       reorders        %at.module;
129                                 %at.name;>
130 <!ELEMENT       sparse          EMPTY>
131 <!ATTLIST       sparse          %at.module;
132                                 %at.name;>
133 <!ELEMENT       expands         EMPTY>
134 <!ATTLIST       expands         %at.module;
135                                 %at.name;>
136
137
138 <!--** Structure Element and Attribute Definitions **-->
139
140
141 <!ELEMENT       smi             (module, 
142                                  imports*,
143                                  typedefs*,
144                                  nodes*,
145                                  notifications*,
146                                  groups*,
147                                  compliances*)>
148
149 <!ELEMENT       module          (organization?,
150                                  contact?,
151                                  description?,
152                                  reference?,
153                                  revision*,
154                                  identity?)>
155 <!ATTLIST       module          %at.name;
156                                 %at.language;>
157
158 <!ELEMENT       organization    (%TEXT;)>
159 <!ELEMENT       contact         (%TEXT;)>
160 <!ELEMENT       revision        (description)>
161 <!ATTLIST       revision        %at.date;>
162 <!ELEMENT       identity        EMPTY>
163 <!ATTLIST       identity        %at.node;>
164
165 <!ELEMENT       imports         (import+)>
166 <!ELEMENT       import          EMPTY>
167 <!ATTLIST       import          %at.module;
168                                 %at.name;>
169
170 <!ELEMENT       typedefs        (typedef+)>
171 <!ELEMENT       typedef         (parent?,
172                                  range*,
173                                  namednumber*,
174                                  default?,
175                                  format?,
176                                  units?,
177                                  description?,
178                                  reference?)>
179 <!ATTLIST       typedef         %at.optname;
180                                 %at.basetype;
181                                 %at.status;>
182
183 <!ELEMENT       nodes          (node|scalar|table)+>
184
185 <!ELEMENT       node            (description?,
186                                  reference?)>
187 <!ATTLIST       node            %at.name;
188                                 %at.oid;
189                                 %at.status;>
190
191 <!ELEMENT       scalar          (syntax,
192                                  access,
193                                  default?,
194                                  format?,
195                                  units?,
196                                  description,
197                                  reference?)>
198 <!ATTLIST       scalar          %at.name;
199                                 %at.oid;
200                                 %at.status;>
201
202 <!ELEMENT       table           (description,
203                                  reference?,
204                                  row)>
205 <!ATTLIST       table           %at.name;
206                                 %at.oid;
207                                 %at.status;>
208
209 <!ELEMENT       row            (linkage,
210                                 description,
211                                 reference?,
212                                 column+)>
213 <!ATTLIST       row             %at.name;
214                                 %at.oid;
215                                 %at.create;
216                                 %at.status;>
217
218 <!ELEMENT       column          (syntax,
219                                  access,
220                                  default?,
221                                  format?,
222                                  units?,
223                                  description,
224                                  reference?)>
225 <!ATTLIST       column          %at.name;
226                                 %at.oid;
227                                 %at.status;>
228
229 <!ELEMENT       notifications   (notification+)>
230 <!ELEMENT       notification    (objects,
231                                  description,
232                                  reference?)>
233 <!ATTLIST       notification    %at.name;
234                                 %at.oid;
235                                 %at.status;>
236 <!ELEMENT       objects         (object*)>
237 <!ELEMENT       object          EMPTY>
238 <!ATTLIST       object          %at.module;
239                                 %at.name;>
240
241 <!ELEMENT       groups          (group+)>
242 <!ELEMENT       group           (members,
243                                  description,
244                                  reference?)>
245 <!ATTLIST       group           %at.name;
246                                 %at.oid;
247                                 %at.status;>
248 <!ELEMENT       members         (member+)>
249 <!ELEMENT       member          EMPTY>
250 <!ATTLIST       member          %at.module;
251                                 %at.name;>
252
253 <!ELEMENT       compliances     (compliance+)>
254 <!ELEMENT       compliance      (description,
255                                  requires,
256                                  refinements?)>
257 <!ATTLIST       compliance      %at.name;
258                                 %at.oid;
259                                 %at.status;>
260 <!ELEMENT       requires        (mandatory|option)+>
261 <!ELEMENT       mandatory       EMPTY>
262 <!ATTLIST       mandatory       %at.module;
263                                 %at.name;>
264 <!ELEMENT       option          (description)>
265 <!ATTLIST       option          %at.module;
266                                 %at.name;>
267 <!ELEMENT       refinements     (refinement+)>
268 <!ELEMENT       refinement      (syntax?,
269                                  writesyntax?,
270                                  access?,
271                                  description)>
272 <!ATTLIST       refinement      %at.module;
273                                 %at.name;>
274
275 <!--** End of the XML DTD for SMIv1/SMIv2/SMIng modules. **-->