asciidoctor-rfc 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/.oss-guides.rubocop.yml +1077 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +19 -1063
  6. data/.travis.yml +3 -2
  7. data/Guardfile +22 -0
  8. data/README.adoc +1151 -0
  9. data/Rakefile +1 -1
  10. data/asciidoctor-rfc.gemspec +20 -3
  11. data/bin/asciidoctor-rfc2 +15 -0
  12. data/bin/asciidoctor-rfc3 +15 -0
  13. data/bin/rspec +0 -1
  14. data/lib/asciidoctor-rfc.rb +4 -0
  15. data/lib/asciidoctor/rfc/common/base.rb +218 -0
  16. data/lib/asciidoctor/rfc/common/front.rb +120 -0
  17. data/lib/asciidoctor/rfc/v2/base.rb +341 -0
  18. data/lib/asciidoctor/rfc/v2/blocks.rb +192 -0
  19. data/lib/asciidoctor/rfc/v2/converter.rb +64 -0
  20. data/lib/asciidoctor/rfc/v2/front.rb +69 -0
  21. data/lib/asciidoctor/rfc/v2/inline_anchor.rb +102 -0
  22. data/lib/asciidoctor/rfc/v2/lists.rb +134 -0
  23. data/lib/asciidoctor/rfc/v2/table.rb +112 -0
  24. data/lib/asciidoctor/rfc/v2/validate.rb +738 -0
  25. data/lib/asciidoctor/rfc/v2/validate2.rng +716 -0
  26. data/lib/asciidoctor/rfc/v3/base.rb +358 -0
  27. data/lib/asciidoctor/rfc/v3/blocks.rb +203 -0
  28. data/lib/asciidoctor/rfc/v3/converter.rb +64 -0
  29. data/lib/asciidoctor/rfc/v3/front.rb +115 -0
  30. data/lib/asciidoctor/rfc/v3/inline_anchor.rb +90 -0
  31. data/lib/asciidoctor/rfc/v3/lists.rb +190 -0
  32. data/lib/asciidoctor/rfc/v3/svg.rng +9081 -0
  33. data/lib/asciidoctor/rfc/v3/table.rb +65 -0
  34. data/lib/asciidoctor/rfc/v3/validate.rb +2168 -0
  35. data/lib/asciidoctor/rfc/v3/validate.rng +2143 -0
  36. data/lib/asciidoctor/rfc/version.rb +2 -2
  37. data/spec/asciidoctor/rfc/v2/appendix_spec.rb +124 -0
  38. data/spec/asciidoctor/rfc/v2/area_spec.rb +60 -0
  39. data/spec/asciidoctor/rfc/v2/author_spec.rb +444 -0
  40. data/spec/asciidoctor/rfc/v2/comments_spec.rb +316 -0
  41. data/spec/asciidoctor/rfc/v2/crossref_spec.rb +205 -0
  42. data/spec/asciidoctor/rfc/v2/date_spec.rb +166 -0
  43. data/spec/asciidoctor/rfc/v2/dlist_spec.rb +108 -0
  44. data/spec/asciidoctor/rfc/v2/document_spec.rb +161 -0
  45. data/spec/asciidoctor/rfc/v2/example_spec.rb +50 -0
  46. data/spec/asciidoctor/rfc/v2/front_spec.rb +75 -0
  47. data/spec/asciidoctor/rfc/v2/image_spec.rb +81 -0
  48. data/spec/asciidoctor/rfc/v2/indexterm_spec.rb +66 -0
  49. data/spec/asciidoctor/rfc/v2/inline_formatting_spec.rb +177 -0
  50. data/spec/asciidoctor/rfc/v2/keyword_spec.rb +63 -0
  51. data/spec/asciidoctor/rfc/v2/listing_spec.rb +59 -0
  52. data/spec/asciidoctor/rfc/v2/literal_spec.rb +53 -0
  53. data/spec/asciidoctor/rfc/v2/olist_spec.rb +147 -0
  54. data/spec/asciidoctor/rfc/v2/paragraph_spec.rb +68 -0
  55. data/spec/asciidoctor/rfc/v2/preamble_spec.rb +140 -0
  56. data/spec/asciidoctor/rfc/v2/quote_spec.rb +24 -0
  57. data/spec/asciidoctor/rfc/v2/references_spec.rb +96 -0
  58. data/spec/asciidoctor/rfc/v2/section_spec.rb +260 -0
  59. data/spec/asciidoctor/rfc/v2/sidebar_spec.rb +32 -0
  60. data/spec/asciidoctor/rfc/v2/table_spec.rb +293 -0
  61. data/spec/asciidoctor/rfc/v2/ulist_spec.rb +96 -0
  62. data/spec/asciidoctor/rfc/v2/workgroup_spec.rb +60 -0
  63. data/spec/asciidoctor/rfc/v3/appendix_spec.rb +130 -0
  64. data/spec/asciidoctor/rfc/v3/area_spec.rb +63 -0
  65. data/spec/asciidoctor/rfc/v3/author_spec.rb +540 -0
  66. data/spec/asciidoctor/rfc/v3/comments_spec.rb +308 -0
  67. data/spec/asciidoctor/rfc/v3/crossref_spec.rb +269 -0
  68. data/spec/asciidoctor/rfc/v3/date_spec.rb +149 -0
  69. data/spec/asciidoctor/rfc/v3/dlist_spec.rb +121 -0
  70. data/spec/asciidoctor/rfc/v3/document_spec.rb +109 -0
  71. data/spec/asciidoctor/rfc/v3/example_spec.rb +34 -0
  72. data/spec/asciidoctor/rfc/v3/front_spec.rb +43 -0
  73. data/spec/asciidoctor/rfc/v3/image_spec.rb +81 -0
  74. data/spec/asciidoctor/rfc/v3/indexterm_spec.rb +69 -0
  75. data/spec/asciidoctor/rfc/v3/inline_formatting_spec.rb +319 -0
  76. data/spec/asciidoctor/rfc/v3/keyword_spec.rb +33 -0
  77. data/spec/asciidoctor/rfc/v3/link_spec.rb +34 -0
  78. data/spec/asciidoctor/rfc/v3/listing_spec.rb +59 -0
  79. data/spec/asciidoctor/rfc/v3/literal_spec.rb +51 -0
  80. data/spec/asciidoctor/rfc/v3/olist_spec.rb +168 -0
  81. data/spec/asciidoctor/rfc/v3/paragraph_spec.rb +73 -0
  82. data/spec/asciidoctor/rfc/v3/preamble_spec.rb +112 -0
  83. data/spec/asciidoctor/rfc/v3/quote_spec.rb +91 -0
  84. data/spec/asciidoctor/rfc/v3/references_spec.rb +147 -0
  85. data/spec/asciidoctor/rfc/v3/section_spec.rb +198 -0
  86. data/spec/asciidoctor/rfc/v3/series_info_spec.rb +151 -0
  87. data/spec/asciidoctor/rfc/v3/sidebar_spec.rb +30 -0
  88. data/spec/asciidoctor/rfc/v3/table_spec.rb +275 -0
  89. data/spec/asciidoctor/rfc/v3/ulist_spec.rb +74 -0
  90. data/spec/asciidoctor/rfc/v3/workgroup_spec.rb +33 -0
  91. data/spec/examples/davies-template-bare-06.adoc +361 -0
  92. data/spec/examples/davies-template-bare-06.xml.orig +426 -0
  93. data/spec/examples/example-v2.adoc +181 -0
  94. data/spec/examples/example-v2.xml +675 -0
  95. data/spec/examples/example-v3.adoc +185 -0
  96. data/spec/examples/example-v3.xml +1009 -0
  97. data/spec/examples/mib-doc-template-xml-06.adoc +596 -0
  98. data/spec/examples/mib-doc-template-xml-06.xml.orig +654 -0
  99. data/spec/examples/rfc1149.md +76 -0
  100. data/spec/examples/rfc1149.md.2.xml +94 -0
  101. data/spec/examples/rfc1149.md.3.xml +93 -0
  102. data/spec/examples/rfc1149.md.adoc +65 -0
  103. data/spec/examples/rfc2100.md +149 -0
  104. data/spec/examples/rfc2100.md.2.xml +169 -0
  105. data/spec/examples/rfc2100.md.3.xml +163 -0
  106. data/spec/examples/rfc2100.md.adoc +136 -0
  107. data/spec/examples/rfc3514.md +203 -0
  108. data/spec/examples/rfc3514.md.2.xml +238 -0
  109. data/spec/examples/rfc3514.md.3.xml +258 -0
  110. data/spec/examples/rfc3514.md.adoc +324 -0
  111. data/spec/examples/rfc5841.md +342 -0
  112. data/spec/examples/rfc5841.md.2.xml +393 -0
  113. data/spec/examples/rfc5841.md.3.xml +449 -0
  114. data/spec/examples/rfc5841.md.adoc +414 -0
  115. data/spec/examples/rfc6350.adoc +3499 -0
  116. data/spec/examples/rfc6350.bib +763 -0
  117. data/spec/examples/rfc748.md +79 -0
  118. data/spec/examples/rfc748.md.2.xml +116 -0
  119. data/spec/examples/rfc748.md.3.xml +109 -0
  120. data/spec/examples/rfc748.md.adoc +80 -0
  121. data/spec/examples/rfc7511.md +257 -0
  122. data/spec/examples/rfc7511.md.2.xml +300 -0
  123. data/spec/examples/rfc7511.md.3.xml +347 -0
  124. data/spec/examples/rfc7511.md.adoc +417 -0
  125. data/spec/spec_helper.rb +115 -5
  126. metadata +274 -9
  127. data/.hound.yml +0 -3
  128. data/README.md +0 -84
  129. data/lib/asciidoctor/rfc.rb +0 -7
  130. data/spec/asciidoctor-rfc/.keep +0 -0
@@ -0,0 +1,716 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <define name="rfc">
4
+ <element name="rfc">
5
+ <optional>
6
+ <attribute name="number"/>
7
+ </optional>
8
+ <optional>
9
+ <attribute name="obsoletes" a:defaultValue=""/>
10
+ </optional>
11
+ <optional>
12
+ <attribute name="updates" a:defaultValue=""/>
13
+ </optional>
14
+ <optional>
15
+ <attribute name="category">
16
+ <choice>
17
+ <value>std</value>
18
+ <value>bcp</value>
19
+ <value>info</value>
20
+ <value>exp</value>
21
+ <value>historic</value>
22
+ </choice>
23
+ </attribute>
24
+ </optional>
25
+ <optional>
26
+ <attribute name="consensus">
27
+ <choice>
28
+ <value>no</value>
29
+ <value>yes</value>
30
+ </choice>
31
+ </attribute>
32
+ </optional>
33
+ <optional>
34
+ <attribute name="seriesNo"/>
35
+ </optional>
36
+ <optional>
37
+ <attribute name="ipr">
38
+ <choice>
39
+ <value>full2026</value>
40
+ <value>noDerivativeWorks2026</value>
41
+ <value>none</value>
42
+ <value>full3667</value>
43
+ <value>noModification3667</value>
44
+ <value>noDerivatives3667</value>
45
+ <value>full3978</value>
46
+ <value>noModification3978</value>
47
+ <value>noDerivatives3978</value>
48
+ <value>trust200811</value>
49
+ <value>noModificationTrust200811</value>
50
+ <value>noDerivativesTrust200811</value>
51
+ <value>trust200902</value>
52
+ <value>noModificationTrust200902</value>
53
+ <value>noDerivativesTrust200902</value>
54
+ <value>pre5378Trust200902</value>
55
+ </choice>
56
+ </attribute>
57
+ </optional>
58
+ <optional>
59
+ <attribute name="iprExtract">
60
+ <data type="IDREF"/>
61
+ </attribute>
62
+ </optional>
63
+ <optional>
64
+ <attribute name="submissionType" a:defaultValue="IETF">
65
+ <choice>
66
+ <value>IETF</value>
67
+ <value>IAB</value>
68
+ <value>IRTF</value>
69
+ <value>independent</value>
70
+ </choice>
71
+ </attribute>
72
+ </optional>
73
+ <optional>
74
+ <attribute name="docName"/>
75
+ </optional>
76
+ <optional>
77
+ <attribute name="xml:lang" a:defaultValue="en"/>
78
+ </optional>
79
+ <ref name="front"/>
80
+ <ref name="middle"/>
81
+ <optional>
82
+ <ref name="back"/>
83
+ </optional>
84
+ </element>
85
+ </define>
86
+ <define name="front">
87
+ <element name="front">
88
+ <ref name="title"/>
89
+ <oneOrMore>
90
+ <ref name="author"/>
91
+ </oneOrMore>
92
+ <ref name="date"/>
93
+ <zeroOrMore>
94
+ <ref name="area"/>
95
+ </zeroOrMore>
96
+ <zeroOrMore>
97
+ <ref name="workgroup"/>
98
+ </zeroOrMore>
99
+ <zeroOrMore>
100
+ <ref name="keyword"/>
101
+ </zeroOrMore>
102
+ <optional>
103
+ <ref name="abstract"/>
104
+ </optional>
105
+ <zeroOrMore>
106
+ <ref name="note"/>
107
+ </zeroOrMore>
108
+ </element>
109
+ </define>
110
+ <define name="title">
111
+ <element name="title">
112
+ <optional>
113
+ <attribute name="abbrev"/>
114
+ </optional>
115
+ <text/>
116
+ </element>
117
+ </define>
118
+ <define name="author">
119
+ <element name="author">
120
+ <optional>
121
+ <attribute name="initials"/>
122
+ </optional>
123
+ <optional>
124
+ <attribute name="surname"/>
125
+ </optional>
126
+ <optional>
127
+ <attribute name="fullname"/>
128
+ </optional>
129
+ <optional>
130
+ <attribute name="role">
131
+ <value>editor</value>
132
+ </attribute>
133
+ </optional>
134
+ <optional>
135
+ <ref name="organization"/>
136
+ </optional>
137
+ <optional>
138
+ <ref name="address"/>
139
+ </optional>
140
+ </element>
141
+ </define>
142
+ <define name="organization">
143
+ <element name="organization">
144
+ <optional>
145
+ <attribute name="abbrev"/>
146
+ </optional>
147
+ <text/>
148
+ </element>
149
+ </define>
150
+ <define name="address">
151
+ <element name="address">
152
+ <optional>
153
+ <ref name="postal"/>
154
+ </optional>
155
+ <optional>
156
+ <ref name="phone"/>
157
+ </optional>
158
+ <optional>
159
+ <ref name="facsimile"/>
160
+ </optional>
161
+ <optional>
162
+ <ref name="email"/>
163
+ </optional>
164
+ <optional>
165
+ <ref name="uri"/>
166
+ </optional>
167
+ </element>
168
+ </define>
169
+ <define name="postal">
170
+ <element name="postal">
171
+ <oneOrMore>
172
+ <ref name="street"/>
173
+ </oneOrMore>
174
+ <zeroOrMore>
175
+ <choice>
176
+ <ref name="city"/>
177
+ <ref name="region"/>
178
+ <ref name="code"/>
179
+ <ref name="country"/>
180
+ </choice>
181
+ </zeroOrMore>
182
+ </element>
183
+ </define>
184
+ <define name="street">
185
+ <element name="street">
186
+ <text/>
187
+ </element>
188
+ </define>
189
+ <define name="city">
190
+ <element name="city">
191
+ <text/>
192
+ </element>
193
+ </define>
194
+ <define name="region">
195
+ <element name="region">
196
+ <text/>
197
+ </element>
198
+ </define>
199
+ <define name="code">
200
+ <element name="code">
201
+ <text/>
202
+ </element>
203
+ </define>
204
+ <define name="country">
205
+ <element name="country">
206
+ <text/>
207
+ </element>
208
+ </define>
209
+ <define name="phone">
210
+ <element name="phone">
211
+ <text/>
212
+ </element>
213
+ </define>
214
+ <define name="facsimile">
215
+ <element name="facsimile">
216
+ <text/>
217
+ </element>
218
+ </define>
219
+ <define name="email">
220
+ <element name="email">
221
+ <text/>
222
+ </element>
223
+ </define>
224
+ <define name="uri">
225
+ <element name="uri">
226
+ <text/>
227
+ </element>
228
+ </define>
229
+ <define name="date">
230
+ <element name="date">
231
+ <optional>
232
+ <attribute name="day"/>
233
+ </optional>
234
+ <optional>
235
+ <attribute name="month"/>
236
+ </optional>
237
+ <optional>
238
+ <attribute name="year"/>
239
+ </optional>
240
+ <empty/>
241
+ </element>
242
+ </define>
243
+ <define name="area">
244
+ <element name="area">
245
+ <text/>
246
+ </element>
247
+ </define>
248
+ <define name="workgroup">
249
+ <element name="workgroup">
250
+ <text/>
251
+ </element>
252
+ </define>
253
+ <define name="keyword">
254
+ <element name="keyword">
255
+ <text/>
256
+ </element>
257
+ </define>
258
+ <define name="abstract">
259
+ <element name="abstract">
260
+ <oneOrMore>
261
+ <ref name="t"/>
262
+ </oneOrMore>
263
+ </element>
264
+ </define>
265
+ <define name="note">
266
+ <element name="note">
267
+ <attribute name="title"/>
268
+ <oneOrMore>
269
+ <ref name="t"/>
270
+ </oneOrMore>
271
+ </element>
272
+ </define>
273
+ <define name="middle">
274
+ <element name="middle">
275
+ <oneOrMore>
276
+ <ref name="section"/>
277
+ </oneOrMore>
278
+ </element>
279
+ </define>
280
+ <define name="section">
281
+ <element name="section">
282
+ <optional>
283
+ <attribute name="anchor">
284
+ <data type="ID"/>
285
+ </attribute>
286
+ </optional>
287
+ <attribute name="title"/>
288
+ <optional>
289
+ <attribute name="toc" a:defaultValue="default">
290
+ <choice>
291
+ <value>include</value>
292
+ <value>exclude</value>
293
+ <value>default</value>
294
+ </choice>
295
+ </attribute>
296
+ </optional>
297
+ <zeroOrMore>
298
+ <choice>
299
+ <ref name="t"/>
300
+ <ref name="figure"/>
301
+ <ref name="texttable"/>
302
+ <ref name="iref"/>
303
+ </choice>
304
+ </zeroOrMore>
305
+ <zeroOrMore>
306
+ <ref name="section"/>
307
+ </zeroOrMore>
308
+ </element>
309
+ </define>
310
+ <define name="t">
311
+ <element name="t">
312
+ <optional>
313
+ <attribute name="anchor">
314
+ <data type="ID"/>
315
+ </attribute>
316
+ </optional>
317
+ <optional>
318
+ <attribute name="hangText"/>
319
+ </optional>
320
+ <zeroOrMore>
321
+ <choice>
322
+ <text/>
323
+ <ref name="list"/>
324
+ <ref name="figure"/>
325
+ <ref name="xref"/>
326
+ <ref name="eref"/>
327
+ <ref name="iref"/>
328
+ <ref name="cref"/>
329
+ <ref name="spanx"/>
330
+ <ref name="vspace"/>
331
+ </choice>
332
+ </zeroOrMore>
333
+ </element>
334
+ </define>
335
+ <define name="list">
336
+ <element name="list">
337
+ <optional>
338
+ <attribute name="style"/>
339
+ </optional>
340
+ <optional>
341
+ <attribute name="hangIndent"/>
342
+ </optional>
343
+ <optional>
344
+ <attribute name="counter"/>
345
+ </optional>
346
+ <oneOrMore>
347
+ <ref name="t"/>
348
+ </oneOrMore>
349
+ </element>
350
+ </define>
351
+ <define name="xref">
352
+ <element name="xref">
353
+ <attribute name="target">
354
+ <data type="IDREF"/>
355
+ </attribute>
356
+ <optional>
357
+ <attribute name="pageno" a:defaultValue="false">
358
+ <choice>
359
+ <value>true</value>
360
+ <value>false</value>
361
+ </choice>
362
+ </attribute>
363
+ </optional>
364
+ <optional>
365
+ <attribute name="format" a:defaultValue="default">
366
+ <choice>
367
+ <value>counter</value>
368
+ <value>title</value>
369
+ <value>none</value>
370
+ <value>default</value>
371
+ </choice>
372
+ </attribute>
373
+ </optional>
374
+ <text/>
375
+ </element>
376
+ </define>
377
+ <define name="eref">
378
+ <element name="eref">
379
+ <attribute name="target"/>
380
+ <text/>
381
+ </element>
382
+ </define>
383
+ <define name="iref">
384
+ <element name="iref">
385
+ <attribute name="item"/>
386
+ <optional>
387
+ <attribute name="subitem" a:defaultValue=""/>
388
+ </optional>
389
+ <optional>
390
+ <attribute name="primary" a:defaultValue="false">
391
+ <choice>
392
+ <value>true</value>
393
+ <value>false</value>
394
+ </choice>
395
+ </attribute>
396
+ </optional>
397
+ <empty/>
398
+ </element>
399
+ </define>
400
+ <define name="cref">
401
+ <element name="cref">
402
+ <optional>
403
+ <attribute name="anchor">
404
+ <data type="ID"/>
405
+ </attribute>
406
+ </optional>
407
+ <optional>
408
+ <attribute name="source"/>
409
+ </optional>
410
+ <text/>
411
+ </element>
412
+ </define>
413
+ <define name="spanx">
414
+ <element name="spanx">
415
+ <optional>
416
+ <attribute name="xml:space" a:defaultValue="preserve">
417
+ <choice>
418
+ <value>default</value>
419
+ <value>preserve</value>
420
+ </choice>
421
+ </attribute>
422
+ </optional>
423
+ <optional>
424
+ <attribute name="style" a:defaultValue="emph"/>
425
+ </optional>
426
+ <text/>
427
+ </element>
428
+ </define>
429
+ <define name="vspace">
430
+ <element name="vspace">
431
+ <optional>
432
+ <attribute name="blankLines" a:defaultValue="0"/>
433
+ </optional>
434
+ <empty/>
435
+ </element>
436
+ </define>
437
+ <define name="figure">
438
+ <element name="figure">
439
+ <optional>
440
+ <attribute name="anchor">
441
+ <data type="ID"/>
442
+ </attribute>
443
+ </optional>
444
+ <optional>
445
+ <attribute name="title" a:defaultValue=""/>
446
+ </optional>
447
+ <optional>
448
+ <attribute name="suppress-title" a:defaultValue="false">
449
+ <choice>
450
+ <value>true</value>
451
+ <value>false</value>
452
+ </choice>
453
+ </attribute>
454
+ </optional>
455
+ <optional>
456
+ <attribute name="src"/>
457
+ </optional>
458
+ <optional>
459
+ <attribute name="align" a:defaultValue="left">
460
+ <choice>
461
+ <value>left</value>
462
+ <value>center</value>
463
+ <value>right</value>
464
+ </choice>
465
+ </attribute>
466
+ </optional>
467
+ <optional>
468
+ <attribute name="alt" a:defaultValue=""/>
469
+ </optional>
470
+ <optional>
471
+ <attribute name="width" a:defaultValue=""/>
472
+ </optional>
473
+ <optional>
474
+ <attribute name="height" a:defaultValue=""/>
475
+ </optional>
476
+ <zeroOrMore>
477
+ <ref name="iref"/>
478
+ </zeroOrMore>
479
+ <optional>
480
+ <ref name="preamble"/>
481
+ </optional>
482
+ <ref name="artwork"/>
483
+ <optional>
484
+ <ref name="postamble"/>
485
+ </optional>
486
+ </element>
487
+ </define>
488
+ <define name="preamble">
489
+ <element name="preamble">
490
+ <zeroOrMore>
491
+ <choice>
492
+ <text/>
493
+ <ref name="xref"/>
494
+ <ref name="eref"/>
495
+ <ref name="iref"/>
496
+ <ref name="cref"/>
497
+ <ref name="spanx"/>
498
+ </choice>
499
+ </zeroOrMore>
500
+ </element>
501
+ </define>
502
+ <define name="artwork">
503
+ <element name="artwork">
504
+ <optional>
505
+ <attribute name="xml:space" a:defaultValue="preserve">
506
+ <choice>
507
+ <value>default</value>
508
+ <value>preserve</value>
509
+ </choice>
510
+ </attribute>
511
+ </optional>
512
+ <optional>
513
+ <attribute name="name" a:defaultValue=""/>
514
+ </optional>
515
+ <optional>
516
+ <attribute name="type" a:defaultValue=""/>
517
+ </optional>
518
+ <optional>
519
+ <attribute name="src"/>
520
+ </optional>
521
+ <optional>
522
+ <attribute name="align" a:defaultValue="left">
523
+ <choice>
524
+ <value>left</value>
525
+ <value>center</value>
526
+ <value>right</value>
527
+ </choice>
528
+ </attribute>
529
+ </optional>
530
+ <optional>
531
+ <attribute name="alt" a:defaultValue=""/>
532
+ </optional>
533
+ <optional>
534
+ <attribute name="width" a:defaultValue=""/>
535
+ </optional>
536
+ <optional>
537
+ <attribute name="height" a:defaultValue=""/>
538
+ </optional>
539
+ <zeroOrMore>
540
+ <text/>
541
+ </zeroOrMore>
542
+ </element>
543
+ </define>
544
+ <define name="postamble">
545
+ <element name="postamble">
546
+ <zeroOrMore>
547
+ <choice>
548
+ <text/>
549
+ <ref name="xref"/>
550
+ <ref name="eref"/>
551
+ <ref name="iref"/>
552
+ <ref name="cref"/>
553
+ <ref name="spanx"/>
554
+ </choice>
555
+ </zeroOrMore>
556
+ </element>
557
+ </define>
558
+ <define name="texttable">
559
+ <element name="texttable">
560
+ <optional>
561
+ <attribute name="anchor">
562
+ <data type="ID"/>
563
+ </attribute>
564
+ </optional>
565
+ <optional>
566
+ <attribute name="title" a:defaultValue=""/>
567
+ </optional>
568
+ <optional>
569
+ <attribute name="suppress-title" a:defaultValue="false">
570
+ <choice>
571
+ <value>true</value>
572
+ <value>false</value>
573
+ </choice>
574
+ </attribute>
575
+ </optional>
576
+ <optional>
577
+ <attribute name="align" a:defaultValue="center">
578
+ <choice>
579
+ <value>left</value>
580
+ <value>center</value>
581
+ <value>right</value>
582
+ </choice>
583
+ </attribute>
584
+ </optional>
585
+ <optional>
586
+ <attribute name="style" a:defaultValue="full">
587
+ <choice>
588
+ <value>all</value>
589
+ <value>none</value>
590
+ <value>headers</value>
591
+ <value>full</value>
592
+ </choice>
593
+ </attribute>
594
+ </optional>
595
+ <optional>
596
+ <ref name="preamble"/>
597
+ </optional>
598
+ <oneOrMore>
599
+ <ref name="ttcol"/>
600
+ </oneOrMore>
601
+ <zeroOrMore>
602
+ <ref name="c"/>
603
+ </zeroOrMore>
604
+ <optional>
605
+ <ref name="postamble"/>
606
+ </optional>
607
+ </element>
608
+ </define>
609
+ <define name="ttcol">
610
+ <element name="ttcol">
611
+ <optional>
612
+ <attribute name="width"/>
613
+ </optional>
614
+ <optional>
615
+ <attribute name="align" a:defaultValue="left">
616
+ <choice>
617
+ <value>left</value>
618
+ <value>center</value>
619
+ <value>right</value>
620
+ </choice>
621
+ </attribute>
622
+ </optional>
623
+ <text/>
624
+ </element>
625
+ </define>
626
+ <define name="c">
627
+ <element name="c">
628
+ <zeroOrMore>
629
+ <choice>
630
+ <text/>
631
+ <ref name="xref"/>
632
+ <ref name="eref"/>
633
+ <ref name="iref"/>
634
+ <ref name="cref"/>
635
+ <ref name="spanx"/>
636
+ </choice>
637
+ </zeroOrMore>
638
+ </element>
639
+ </define>
640
+ <define name="back">
641
+ <element name="back">
642
+ <zeroOrMore>
643
+ <ref name="references"/>
644
+ </zeroOrMore>
645
+ <zeroOrMore>
646
+ <ref name="section"/>
647
+ </zeroOrMore>
648
+ </element>
649
+ </define>
650
+ <define name="references">
651
+ <element name="references">
652
+ <optional>
653
+ <attribute name="title" a:defaultValue="References"/>
654
+ </optional>
655
+ <oneOrMore>
656
+ <ref name="reference"/>
657
+ </oneOrMore>
658
+ </element>
659
+ </define>
660
+ <define name="reference">
661
+ <element name="reference">
662
+ <attribute name="anchor">
663
+ <data type="ID"/>
664
+ </attribute>
665
+ <optional>
666
+ <attribute name="target"/>
667
+ </optional>
668
+ <ref name="front"/>
669
+ <zeroOrMore>
670
+ <ref name="seriesInfo"/>
671
+ </zeroOrMore>
672
+ <zeroOrMore>
673
+ <ref name="format"/>
674
+ </zeroOrMore>
675
+ <zeroOrMore>
676
+ <ref name="annotation"/>
677
+ </zeroOrMore>
678
+ </element>
679
+ </define>
680
+ <define name="seriesInfo">
681
+ <element name="seriesInfo">
682
+ <attribute name="name"/>
683
+ <attribute name="value"/>
684
+ <empty/>
685
+ </element>
686
+ </define>
687
+ <define name="format">
688
+ <element name="format">
689
+ <optional>
690
+ <attribute name="target"/>
691
+ </optional>
692
+ <attribute name="type"/>
693
+ <optional>
694
+ <attribute name="octets"/>
695
+ </optional>
696
+ <empty/>
697
+ </element>
698
+ </define>
699
+ <define name="annotation">
700
+ <element name="annotation">
701
+ <zeroOrMore>
702
+ <choice>
703
+ <text/>
704
+ <ref name="xref"/>
705
+ <ref name="eref"/>
706
+ <ref name="iref"/>
707
+ <ref name="cref"/>
708
+ <ref name="spanx"/>
709
+ </choice>
710
+ </zeroOrMore>
711
+ </element>
712
+ </define>
713
+ <start>
714
+ <ref name="rfc"/>
715
+ </start>
716
+ </grammar>