rfcxml 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +18 -0
  3. data/.github/workflows/release.yml +25 -0
  4. data/.gitignore +11 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +11 -0
  7. data/.rubocop_todo.yml +20 -0
  8. data/CODE_OF_CONDUCT.md +84 -0
  9. data/Gemfile +12 -0
  10. data/README.adoc +75 -0
  11. data/Rakefile +12 -0
  12. data/bin/console +11 -0
  13. data/bin/setup +8 -0
  14. data/lib/rfcxml/v3/abstract.rb +32 -0
  15. data/lib/rfcxml/v3/address.rb +31 -0
  16. data/lib/rfcxml/v3/annotation.rb +57 -0
  17. data/lib/rfcxml/v3/area.rb +17 -0
  18. data/lib/rfcxml/v3/artset.rb +23 -0
  19. data/lib/rfcxml/v3/artwork.rb +37 -0
  20. data/lib/rfcxml/v3/aside.rb +50 -0
  21. data/lib/rfcxml/v3/author.rb +38 -0
  22. data/lib/rfcxml/v3/back.rb +25 -0
  23. data/lib/rfcxml/v3/bcp14.rb +17 -0
  24. data/lib/rfcxml/v3/blockquote.rb +92 -0
  25. data/lib/rfcxml/v3/boilerplate.rb +19 -0
  26. data/lib/rfcxml/v3/br.rb +13 -0
  27. data/lib/rfcxml/v3/c.rb +33 -0
  28. data/lib/rfcxml/v3/city.rb +19 -0
  29. data/lib/rfcxml/v3/cityarea.rb +19 -0
  30. data/lib/rfcxml/v3/code.rb +19 -0
  31. data/lib/rfcxml/v3/contact.rb +36 -0
  32. data/lib/rfcxml/v3/country.rb +19 -0
  33. data/lib/rfcxml/v3/cref.rb +51 -0
  34. data/lib/rfcxml/v3/date.rb +23 -0
  35. data/lib/rfcxml/v3/dd.rb +92 -0
  36. data/lib/rfcxml/v3/displayreference.rb +19 -0
  37. data/lib/rfcxml/v3/dl.rb +35 -0
  38. data/lib/rfcxml/v3/dt.rb +58 -0
  39. data/lib/rfcxml/v3/em.rb +14 -0
  40. data/lib/rfcxml/v3/email.rb +19 -0
  41. data/lib/rfcxml/v3/eref.rb +21 -0
  42. data/lib/rfcxml/v3/extaddr.rb +19 -0
  43. data/lib/rfcxml/v3/facsimile.rb +17 -0
  44. data/lib/rfcxml/v3/figure.rb +57 -0
  45. data/lib/rfcxml/v3/format.rb +21 -0
  46. data/lib/rfcxml/v3/front.rb +49 -0
  47. data/lib/rfcxml/v3/iref.rb +23 -0
  48. data/lib/rfcxml/v3/keyword.rb +17 -0
  49. data/lib/rfcxml/v3/li.rb +97 -0
  50. data/lib/rfcxml/v3/link.rb +19 -0
  51. data/lib/rfcxml/v3/list.rb +27 -0
  52. data/lib/rfcxml/v3/middle.rb +19 -0
  53. data/lib/rfcxml/v3/name.rb +56 -0
  54. data/lib/rfcxml/v3/note.rb +37 -0
  55. data/lib/rfcxml/v3/ol.rb +33 -0
  56. data/lib/rfcxml/v3/organization.rb +25 -0
  57. data/lib/rfcxml/v3/phone.rb +17 -0
  58. data/lib/rfcxml/v3/pobox.rb +19 -0
  59. data/lib/rfcxml/v3/postal.rb +46 -0
  60. data/lib/rfcxml/v3/postal_line.rb +19 -0
  61. data/lib/rfcxml/v3/postamble.rb +33 -0
  62. data/lib/rfcxml/v3/preamble.rb +57 -0
  63. data/lib/rfcxml/v3/refcontent.rb +28 -0
  64. data/lib/rfcxml/v3/reference.rb +43 -0
  65. data/lib/rfcxml/v3/referencegroup.rb +25 -0
  66. data/lib/rfcxml/v3/references.rb +33 -0
  67. data/lib/rfcxml/v3/region.rb +19 -0
  68. data/lib/rfcxml/v3/relref.rb +29 -0
  69. data/lib/rfcxml/v3/rfc.rb +70 -0
  70. data/lib/rfcxml/v3/section.rb +78 -0
  71. data/lib/rfcxml/v3/series_info.rb +27 -0
  72. data/lib/rfcxml/v3/sortingcode.rb +19 -0
  73. data/lib/rfcxml/v3/sourcecode.rb +31 -0
  74. data/lib/rfcxml/v3/spanx.rb +19 -0
  75. data/lib/rfcxml/v3/street.rb +19 -0
  76. data/lib/rfcxml/v3/strong.rb +43 -0
  77. data/lib/rfcxml/v3/sub.rb +49 -0
  78. data/lib/rfcxml/v3/sup.rb +28 -0
  79. data/lib/rfcxml/v3/table.rb +37 -0
  80. data/lib/rfcxml/v3/tbody.rb +21 -0
  81. data/lib/rfcxml/v3/td.rb +89 -0
  82. data/lib/rfcxml/v3/text.rb +82 -0
  83. data/lib/rfcxml/v3/texttable.rb +41 -0
  84. data/lib/rfcxml/v3/tfoot.rb +21 -0
  85. data/lib/rfcxml/v3/th.rb +14 -0
  86. data/lib/rfcxml/v3/thead.rb +21 -0
  87. data/lib/rfcxml/v3/title.rb +25 -0
  88. data/lib/rfcxml/v3/toc.rb +19 -0
  89. data/lib/rfcxml/v3/tr.rb +24 -0
  90. data/lib/rfcxml/v3/tt.rb +53 -0
  91. data/lib/rfcxml/v3/ttcol.rb +34 -0
  92. data/lib/rfcxml/v3/u.rb +25 -0
  93. data/lib/rfcxml/v3/ul.rb +31 -0
  94. data/lib/rfcxml/v3/uri.rb +17 -0
  95. data/lib/rfcxml/v3/vspace.rb +17 -0
  96. data/lib/rfcxml/v3/workgroup.rb +17 -0
  97. data/lib/rfcxml/v3/xref.rb +41 -0
  98. data/lib/rfcxml/v3/xref_text.rb +30 -0
  99. data/lib/rfcxml/v3.rb +8 -0
  100. data/lib/rfcxml/version.rb +5 -0
  101. data/lib/rfcxml.rb +17 -0
  102. data/reference-docs/v3-modified.rnc +1145 -0
  103. data/reference-docs/v3.rnc +1145 -0
  104. data/reference-docs/v3.xsd +1410 -0
  105. data/reference-docs/xml.xsd +19 -0
  106. data/rfcxml.gemspec +47 -0
  107. data/sig/xml2rfc.rbs +4 -0
  108. metadata +264 -0
@@ -0,0 +1,1145 @@
1
+ namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
2
+
3
+ # xml2rfc Version 3 grammar
4
+
5
+ rfc =
6
+ element rfc {
7
+ attribute xml:base { text }?,
8
+ attribute xml:lang { text }?,
9
+ attribute number { text }?,
10
+ [ a:defaultValue = "" ] attribute obsoletes { text }?,
11
+ [ a:defaultValue = "" ] attribute updates { text }?,
12
+ attribute category {
13
+ "std" | "bcp" | "exp" | "info" | "historic"
14
+ }?,
15
+ attribute mode { text }?,
16
+ [ a:defaultValue = "false" ]
17
+ attribute consensus { "no" | "yes" | "false" | "true" }?,
18
+ attribute seriesNo { text }?,
19
+ attribute ipr { text }?,
20
+ attribute iprExtract { xsd:IDREF }?,
21
+ [ a:defaultValue = "IETF" ]
22
+ attribute submissionType {
23
+ "IETF" | "IAB" | "IRTF" | "independent" | "editorial"
24
+ }?,
25
+ attribute docName { text }?,
26
+ [ a:defaultValue = "false" ]
27
+ attribute sortRefs { "true" | "false" }?,
28
+ [ a:defaultValue = "true" ]
29
+ attribute symRefs { "true" | "false" }?,
30
+ [ a:defaultValue = "true" ]
31
+ attribute tocInclude { "true" | "false" }?,
32
+ [ a:defaultValue = "3" ] attribute tocDepth { text }?,
33
+ attribute prepTime { text }?,
34
+ [ a:defaultValue = "true" ]
35
+ attribute indexInclude { "true" | "false" }?,
36
+ attribute version { text }?,
37
+ [ a:defaultValue = "Common,Latin" ] attribute scripts { text }?,
38
+ attribute expiresDate { text }?,
39
+ link*,
40
+ front,
41
+ middle,
42
+ back?
43
+ }
44
+
45
+ link =
46
+ element link {
47
+ attribute xml:base { text }?,
48
+ attribute xml:lang { text }?,
49
+ attribute href { text },
50
+ attribute rel { text }?
51
+ }
52
+
53
+ front =
54
+ element front {
55
+ attribute xml:base { text }?,
56
+ attribute xml:lang { text }?,
57
+ title,
58
+ seriesInfo*,
59
+ author+,
60
+ date?,
61
+ area*,
62
+ workgroup*,
63
+ keyword*,
64
+ abstract?,
65
+ note*,
66
+ boilerplate?,
67
+ toc?
68
+ }
69
+
70
+ title =
71
+ element title {
72
+ attribute xml:base { text }?,
73
+ attribute xml:lang { text }?,
74
+ attribute abbrev { text }?,
75
+ attribute ascii { text }?,
76
+ (text | br)*
77
+ }
78
+
79
+ author =
80
+ element author {
81
+ attribute xml:base { text }?,
82
+ attribute xml:lang { text }?,
83
+ attribute anchor { xsd:ID }?,
84
+ attribute initials { text }?,
85
+ attribute asciiInitials { text }?,
86
+ attribute surname { text }?,
87
+ attribute asciiSurname { text }?,
88
+ attribute fullname { text }?,
89
+ attribute role { "editor" }?,
90
+ attribute asciiFullname { text }?,
91
+ organization?,
92
+ address?
93
+ }
94
+
95
+ contact =
96
+ element contact {
97
+ attribute xml:base { text }?,
98
+ attribute xml:lang { text }?,
99
+ attribute anchor { xsd:ID }?,
100
+ attribute initials { text }?,
101
+ attribute asciiInitials { text }?,
102
+ attribute surname { text }?,
103
+ attribute asciiSurname { text }?,
104
+ attribute fullname { text }?,
105
+ attribute asciiFullname { text }?,
106
+ organization?,
107
+ address?
108
+ }
109
+
110
+ organization =
111
+ element organization {
112
+ attribute xml:base { text }?,
113
+ attribute xml:lang { text }?,
114
+ attribute abbrev { text }?,
115
+ attribute ascii { text }?,
116
+ attribute asciiAbbrev { text }?,
117
+ [ a:defaultValue = "true" ]
118
+ attribute showOnFrontPage { "true" | "false" }?,
119
+ text
120
+ }
121
+
122
+ address =
123
+ element address {
124
+ attribute xml:base { text }?,
125
+ attribute xml:lang { text }?,
126
+ postal?,
127
+ phone?,
128
+ facsimile?,
129
+ email*,
130
+ uri?
131
+ }
132
+
133
+ postal =
134
+ element postal {
135
+ attribute xml:base { text }?,
136
+ attribute xml:lang { text }?,
137
+ (( city | cityarea | code | country | extaddr | pobox | region
138
+ | sortingcode | street)*
139
+ | postalLine+)
140
+ }
141
+
142
+ extaddr =
143
+ element extaddr {
144
+ attribute xml:base { text }?,
145
+ attribute xml:lang { text }?,
146
+ attribute ascii { text }?,
147
+ text
148
+ }
149
+
150
+ pobox =
151
+ element pobox {
152
+ attribute xml:base { text }?,
153
+ attribute xml:lang { text }?,
154
+ attribute ascii { text }?,
155
+ text
156
+ }
157
+
158
+ street =
159
+ element street {
160
+ attribute xml:base { text }?,
161
+ attribute xml:lang { text }?,
162
+ attribute ascii { text }?,
163
+ text
164
+ }
165
+
166
+ cityarea =
167
+ element cityarea {
168
+ attribute xml:base { text }?,
169
+ attribute xml:lang { text }?,
170
+ attribute ascii { text }?,
171
+ text
172
+ }
173
+
174
+ city =
175
+ element city {
176
+ attribute xml:base { text }?,
177
+ attribute xml:lang { text }?,
178
+ attribute ascii { text }?,
179
+ text
180
+ }
181
+
182
+ region =
183
+ element region {
184
+ attribute xml:base { text }?,
185
+ attribute xml:lang { text }?,
186
+ attribute ascii { text }?,
187
+ text
188
+ }
189
+
190
+ code =
191
+ element code {
192
+ attribute xml:base { text }?,
193
+ attribute xml:lang { text }?,
194
+ attribute ascii { text }?,
195
+ text
196
+ }
197
+
198
+ sortingcode =
199
+ element sortingcode {
200
+ attribute xml:base { text }?,
201
+ attribute xml:lang { text }?,
202
+ attribute ascii { text }?,
203
+ text
204
+ }
205
+
206
+ country =
207
+ element country {
208
+ attribute xml:base { text }?,
209
+ attribute xml:lang { text }?,
210
+ attribute ascii { text }?,
211
+ text
212
+ }
213
+
214
+ postalLine =
215
+ element postalLine {
216
+ attribute xml:base { text }?,
217
+ attribute xml:lang { text }?,
218
+ attribute ascii { text }?,
219
+ text
220
+ }
221
+
222
+ phone =
223
+ element phone {
224
+ attribute xml:base { text }?,
225
+ attribute xml:lang { text }?,
226
+ text
227
+ }
228
+
229
+ facsimile =
230
+ element facsimile {
231
+ attribute xml:base { text }?,
232
+ attribute xml:lang { text }?,
233
+ text
234
+ }
235
+
236
+ email =
237
+ element email {
238
+ attribute xml:base { text }?,
239
+ attribute xml:lang { text }?,
240
+ attribute ascii { text }?,
241
+ text
242
+ }
243
+
244
+ uri =
245
+ element uri {
246
+ attribute xml:base { text }?,
247
+ attribute xml:lang { text }?,
248
+ text
249
+ }
250
+
251
+ date =
252
+ element date {
253
+ attribute xml:base { text }?,
254
+ attribute xml:lang { text }?,
255
+ attribute day { text }?,
256
+ attribute month { text }?,
257
+ attribute year { text }?,
258
+ text
259
+ }
260
+
261
+ area =
262
+ element area {
263
+ attribute xml:base { text }?,
264
+ attribute xml:lang { text }?,
265
+ text
266
+ }
267
+
268
+ workgroup =
269
+ element workgroup {
270
+ attribute xml:base { text }?,
271
+ attribute xml:lang { text }?,
272
+ text
273
+ }
274
+
275
+ keyword =
276
+ element keyword {
277
+ attribute xml:base { text }?,
278
+ attribute xml:lang { text }?,
279
+ text
280
+ }
281
+
282
+ abstract =
283
+ element abstract {
284
+ attribute xml:base { text }?,
285
+ attribute xml:lang { text }?,
286
+ attribute anchor { xsd:ID }?,
287
+ attribute pn { xsd:ID }?,
288
+ (dl | ol | t | ul)+
289
+ }
290
+
291
+ note =
292
+ element note {
293
+ attribute xml:base { text }?,
294
+ attribute xml:lang { text }?,
295
+ attribute title { text }?,
296
+ attribute pn { xsd:ID }?,
297
+ [ a:defaultValue = "false" ]
298
+ attribute removeInRFC { "true" | "false" }?,
299
+ name?,
300
+ (dl | ol | t | ul)+
301
+ }
302
+
303
+ boilerplate =
304
+ element boilerplate {
305
+ attribute xml:base { text }?,
306
+ attribute xml:lang { text }?,
307
+ section+
308
+ }
309
+
310
+ toc =
311
+ element toc {
312
+ attribute xml:base { text }?,
313
+ attribute xml:lang { text }?,
314
+ section*
315
+ }
316
+
317
+ middle =
318
+ element middle {
319
+ attribute xml:base { text }?,
320
+ attribute xml:lang { text }?,
321
+ section+
322
+ }
323
+
324
+ section =
325
+ element section {
326
+ attribute xml:base { text }?,
327
+ attribute xml:lang { text }?,
328
+ attribute anchor { xsd:ID }?,
329
+ attribute pn { xsd:ID }?,
330
+ attribute title { text }?,
331
+ [ a:defaultValue = "true" ]
332
+ attribute numbered { "true" | "false" }?,
333
+ [ a:defaultValue = "default" ]
334
+ attribute toc { "include" | "exclude" | "default" }?,
335
+ [ a:defaultValue = "false" ]
336
+ attribute removeInRFC { "true" | "false" }?,
337
+ name?,
338
+ (artset
339
+ | artwork
340
+ | aside
341
+ | author
342
+ | blockquote
343
+ | contact
344
+ | dl
345
+ | figure
346
+ | iref
347
+ | ol
348
+ | sourcecode
349
+ | t
350
+ | table
351
+ | texttable
352
+ | ul)*,
353
+ section*
354
+ }
355
+
356
+ name =
357
+ element name {
358
+ attribute xml:base { text }?,
359
+ attribute xml:lang { text }?,
360
+ attribute slugifiedName { xsd:ID }?,
361
+ (text
362
+ | bcp14
363
+ | br
364
+ | cref
365
+ | em
366
+ | eref
367
+ | iref
368
+ | relref
369
+ | strong
370
+ | sub
371
+ | sup
372
+ | tt
373
+ | xref)*
374
+ }
375
+
376
+ br =
377
+ element br {
378
+ attribute xml:base { text }?,
379
+ attribute xml:lang { text }?,
380
+ empty
381
+ }
382
+
383
+ t =
384
+ element t {
385
+ attribute xml:base { text }?,
386
+ attribute xml:lang { text }?,
387
+ attribute anchor { xsd:ID }?,
388
+ attribute pn { xsd:ID }?,
389
+ attribute hangText { text }?,
390
+ [ a:defaultValue = "0" ]
391
+ attribute indent { text }?,
392
+ [ a:defaultValue = "false" ]
393
+ attribute keepWithNext { "true" | "false" }?,
394
+ [ a:defaultValue = "false" ]
395
+ attribute keepWithPrevious { "true" | "false" }?,
396
+ (text
397
+ | bcp14
398
+ | br
399
+ | contact
400
+ | cref
401
+ | em
402
+ | eref
403
+ | iref
404
+ | \list
405
+ | relref
406
+ | spanx
407
+ | strong
408
+ | sub
409
+ | sup
410
+ | tt
411
+ | u
412
+ | vspace
413
+ | xref)*
414
+ }
415
+
416
+ aside =
417
+ element aside {
418
+ attribute xml:base { text }?,
419
+ attribute xml:lang { text }?,
420
+ attribute anchor { xsd:ID }?,
421
+ attribute pn { xsd:ID }?,
422
+ (artset
423
+ | artwork
424
+ | blockquote
425
+ | dl
426
+ | figure
427
+ | iref
428
+ | ol
429
+ | t
430
+ | table
431
+ | ul)*
432
+
433
+ }
434
+
435
+ blockquote =
436
+ element blockquote {
437
+ attribute xml:base { text }?,
438
+ attribute xml:lang { text }?,
439
+ attribute anchor { xsd:ID }?,
440
+ attribute pn { xsd:ID }?,
441
+ attribute cite { text }?,
442
+ attribute quotedFrom { text }?,
443
+ ((artset | artwork | dl | figure | ol | sourcecode | t | ul)+
444
+ | (text
445
+ | bcp14
446
+ | br
447
+ | cref
448
+ | em
449
+ | eref
450
+ | iref
451
+ | relref
452
+ | strong
453
+ | sub
454
+ | sup
455
+ | tt
456
+ | u
457
+ | xref)+)
458
+ }
459
+
460
+ \list =
461
+ element list {
462
+ attribute xml:base { text }?,
463
+ attribute xml:lang { text }?,
464
+ [ a:defaultValue = "empty" ] attribute style { text }?,
465
+ attribute hangIndent { text }?,
466
+ attribute counter { text }?,
467
+ attribute pn { xsd:ID }?,
468
+ t+
469
+ }
470
+
471
+ ol =
472
+ element ol {
473
+ attribute xml:base { text }?,
474
+ attribute xml:lang { text }?,
475
+ attribute anchor { xsd:ID }?,
476
+ [ a:defaultValue = "1" ] attribute type { text }?,
477
+ [ a:defaultValue = "1" ] attribute start { text }?,
478
+ attribute group { text }?,
479
+ [ a:defaultValue = "normal" ]
480
+ attribute spacing { "normal" | "compact" }?,
481
+ [ a:defaultValue = "adaptive" ]
482
+ attribute indent { text | "adaptive" }?,
483
+ attribute pn { xsd:ID }?,
484
+ li+
485
+ }
486
+
487
+ ul =
488
+ element ul {
489
+ attribute xml:base { text }?,
490
+ attribute xml:lang { text }?,
491
+ attribute anchor { xsd:ID }?,
492
+ [ a:defaultValue = "normal" ]
493
+ attribute spacing { "normal" | "compact" }?,
494
+ ([ a:defaultValue = "false" ]
495
+ attribute empty { "true" | "false" },
496
+ [ a:defaultValue = "false" ]
497
+ attribute bare { "true" | "false" }?)?,
498
+ [ a:defaultValue = "3" ]
499
+ attribute indent { text }?,
500
+ attribute pn { xsd:ID }?,
501
+ li+
502
+ }
503
+
504
+ li =
505
+ element li {
506
+ attribute xml:base { text }?,
507
+ attribute xml:lang { text }?,
508
+ attribute anchor { xsd:ID }?,
509
+ attribute derivedCounter { text }?,
510
+ attribute pn { xsd:ID }?,
511
+ (( artset
512
+ | artwork
513
+ | blockquote
514
+ | dl
515
+ | figure
516
+ | ol
517
+ | sourcecode
518
+ | t
519
+ | table
520
+ | ul)+
521
+ | (text
522
+ | bcp14
523
+ | br
524
+ | cref
525
+ | em
526
+ | eref
527
+ | iref
528
+ | relref
529
+ | strong
530
+ | sub
531
+ | sup
532
+ | tt
533
+ | u
534
+ | xref)+)
535
+ }
536
+
537
+ dl =
538
+ element dl {
539
+ attribute xml:base { text }?,
540
+ attribute xml:lang { text }?,
541
+ attribute anchor { xsd:ID }?,
542
+ [ a:defaultValue = "normal" ]
543
+ attribute spacing { "normal" | "compact" }?,
544
+ [ a:defaultValue = "false" ]
545
+ attribute newline { "true" | "false" }?,
546
+ [ a:defaultValue = "3" ]
547
+ attribute indent { text }?,
548
+ attribute pn { xsd:ID }?,
549
+ (dt, dd)+
550
+ }
551
+
552
+ dt =
553
+ element dt {
554
+ attribute xml:base { text }?,
555
+ attribute xml:lang { text }?,
556
+ attribute anchor { xsd:ID }?,
557
+ attribute pn { xsd:ID }?,
558
+ (text
559
+ | bcp14
560
+ | br
561
+ | cref
562
+ | em
563
+ | eref
564
+ | iref
565
+ | relref
566
+ | strong
567
+ | sub
568
+ | sup
569
+ | tt
570
+ | xref)*
571
+ }
572
+
573
+ dd =
574
+ element dd {
575
+ attribute xml:base { text }?,
576
+ attribute xml:lang { text }?,
577
+ attribute anchor { xsd:ID }?,
578
+ attribute pn { xsd:ID }?,
579
+ (( artset
580
+ | artwork
581
+ | aside
582
+ | dl
583
+ | figure
584
+ | ol
585
+ | sourcecode
586
+ | t
587
+ | table
588
+ | ul)+
589
+ | (text
590
+ | bcp14
591
+ | br
592
+ | cref
593
+ | em
594
+ | eref
595
+ | iref
596
+ | relref
597
+ | strong
598
+ | sub
599
+ | sup
600
+ | tt
601
+ | u
602
+ | xref)+)
603
+ }
604
+
605
+ xref =
606
+ element xref {
607
+ attribute xml:base { text }?,
608
+ attribute xml:lang { text }?,
609
+ attribute target { xsd:IDREF },
610
+ [ a:defaultValue = "false" ]
611
+ attribute pageno { "true" | "false" }?,
612
+ [ a:defaultValue = "default" ]
613
+ attribute format { "default" | "title" | "counter" | "none" }?,
614
+ attribute derivedContent { text }?,
615
+ [ a:defaultValue = "of" ]
616
+ attribute sectionFormat { "of" | "comma" | "parens" | "bare" }?,
617
+ attribute section { text }?,
618
+ attribute relative { text }?,
619
+ attribute derivedLink { text }?,
620
+ (text | em | strong | sub | sup | tt)*
621
+ }
622
+
623
+ relref =
624
+ element relref {
625
+ attribute xml:base { text }?,
626
+ attribute xml:lang { text }?,
627
+ attribute target { xsd:IDREF },
628
+ [ a:defaultValue = "of" ]
629
+ attribute displayFormat { "of" | "comma" | "parens" | "bare" }?,
630
+ attribute derivedContent { text }?,
631
+ attribute section { text },
632
+ attribute relative { text }?,
633
+ attribute derivedLink { text }?,
634
+ text
635
+ }
636
+
637
+ eref =
638
+ element eref {
639
+ attribute xml:base { text }?,
640
+ attribute xml:lang { text }?,
641
+ [ a:defaultValue = "none" ]
642
+ attribute brackets { "none" | "angle" }?,
643
+ attribute target { text },
644
+ text
645
+ }
646
+
647
+ iref =
648
+ element iref {
649
+ attribute xml:base { text }?,
650
+ attribute xml:lang { text }?,
651
+ attribute item { text },
652
+ [ a:defaultValue = "" ] attribute subitem { text }?,
653
+ [ a:defaultValue = "false" ]
654
+ attribute primary { "true" | "false" }?,
655
+ attribute pn { xsd:ID }?,
656
+ empty
657
+ }
658
+
659
+ cref =
660
+ element cref {
661
+ attribute xml:base { text }?,
662
+ attribute xml:lang { text }?,
663
+ attribute anchor { xsd:ID }?,
664
+ attribute source { text }?,
665
+ [ a:defaultValue = "true" ]
666
+ attribute display { "true" | "false" }?,
667
+ (text
668
+ | br
669
+ | em
670
+ | eref
671
+ | relref
672
+ | strong
673
+ | sub
674
+ | sup
675
+ | tt
676
+ | xref)*
677
+ }
678
+
679
+ tt =
680
+ element tt {
681
+ attribute xml:base { text }?,
682
+ attribute xml:lang { text }?,
683
+ (text
684
+ | bcp14
685
+ | br
686
+ | cref
687
+ | em
688
+ | eref
689
+ | iref
690
+ | relref
691
+ | strong
692
+ | sub
693
+ | sup
694
+ | xref)*
695
+ }
696
+
697
+ strong =
698
+ element strong {
699
+ attribute xml:base { text }?,
700
+ attribute xml:lang { text }?,
701
+ (text
702
+ | bcp14
703
+ | br
704
+ | cref
705
+ | em
706
+ | eref
707
+ | iref
708
+ | relref
709
+ | sub
710
+ | sup
711
+ | tt
712
+ | xref)*
713
+ }
714
+
715
+ em =
716
+ element em {
717
+ attribute xml:base { text }?,
718
+ attribute xml:lang { text }?,
719
+ (text
720
+ | bcp14
721
+ | br
722
+ | cref
723
+ | eref
724
+ | iref
725
+ | relref
726
+ | strong
727
+ | sub
728
+ | sup
729
+ | tt
730
+ | xref)*
731
+ }
732
+
733
+ sub =
734
+ element sub {
735
+ attribute xml:base { text }?,
736
+ attribute xml:lang { text }?,
737
+ (text
738
+ | bcp14
739
+ | cref
740
+ | em
741
+ | eref
742
+ | iref
743
+ | relref
744
+ | strong
745
+ | sub
746
+ | sup
747
+ | tt
748
+ | xref)*
749
+ }
750
+
751
+ sup =
752
+ element sup {
753
+ attribute xml:base { text }?,
754
+ attribute xml:lang { text }?,
755
+ (text
756
+ | bcp14
757
+ | cref
758
+ | em
759
+ | eref
760
+ | iref
761
+ | relref
762
+ | strong
763
+ | sub
764
+ | sup
765
+ | tt
766
+ | xref)*
767
+ }
768
+
769
+ spanx =
770
+ element spanx {
771
+ attribute xml:base { text }?,
772
+ attribute xml:lang { text }?,
773
+ [ a:defaultValue = "preserve" ]
774
+ attribute xml:space { "default" | "preserve" }?,
775
+ [ a:defaultValue = "emph" ] attribute style { text }?,
776
+ text
777
+ }
778
+
779
+ vspace =
780
+ element vspace {
781
+ attribute xml:base { text }?,
782
+ attribute xml:lang { text }?,
783
+ [ a:defaultValue = "0" ] attribute blankLines { text }?,
784
+ empty
785
+ }
786
+
787
+ figure =
788
+ element figure {
789
+ attribute xml:base { text }?,
790
+ attribute xml:lang { text }?,
791
+ attribute anchor { xsd:ID }?,
792
+ attribute pn { xsd:ID }?,
793
+ [ a:defaultValue = "" ] attribute title { text }?,
794
+ [ a:defaultValue = "false" ]
795
+ attribute suppress-title { "true" | "false" }?,
796
+ attribute src { text }?,
797
+ attribute originalSrc { text }?,
798
+ [ a:defaultValue = "left" ]
799
+ attribute align { "left" | "center" | "right" }?,
800
+ [ a:defaultValue = "" ] attribute alt { text }?,
801
+ [ a:defaultValue = "" ] attribute width { text }?,
802
+ [ a:defaultValue = "" ] attribute height { text }?,
803
+ name?,
804
+ iref*,
805
+ preamble?,
806
+ (artset | artwork | sourcecode)+,
807
+ postamble?
808
+ }
809
+
810
+ table =
811
+ element table {
812
+ attribute xml:base { text }?,
813
+ attribute xml:lang { text }?,
814
+ [ a:defaultValue = "center" ]
815
+ attribute align { "left" | "center" | "right" }?,
816
+ attribute anchor { xsd:ID }?,
817
+ attribute pn { xsd:ID }?,
818
+ name?,
819
+ iref*,
820
+ thead?,
821
+ tbody+,
822
+ tfoot?
823
+ }
824
+
825
+ preamble =
826
+ element preamble {
827
+ attribute xml:base { text }?,
828
+ attribute xml:lang { text }?,
829
+ (text
830
+ | bcp14
831
+ | cref
832
+ | em
833
+ | eref
834
+ | iref
835
+ | relref
836
+ | spanx
837
+ | strong
838
+ | sub
839
+ | sup
840
+ | tt
841
+ | u
842
+ | xref)*
843
+ }
844
+
845
+ artset =
846
+ element artset {
847
+ attribute xml:base { text }?,
848
+ attribute xml:lang { text }?,
849
+ attribute anchor { xsd:ID }?,
850
+ attribute pn { xsd:ID }?,
851
+ artwork+
852
+ }
853
+
854
+
855
+ artwork =
856
+ element artwork {
857
+ attribute xml:base { text }?,
858
+ attribute xml:lang { text }?,
859
+ attribute anchor { xsd:ID }?,
860
+ attribute pn { xsd:ID }?,
861
+ attribute xml:space { text }?,
862
+ [ a:defaultValue = "" ] attribute name { text }?,
863
+ [ a:defaultValue = "" ] attribute type { text }?,
864
+ attribute src { text }?,
865
+ [ a:defaultValue = "left" ]
866
+ attribute align { "left" | "center" | "right" }?,
867
+ [ a:defaultValue = "" ] attribute alt { text }?,
868
+ [ a:defaultValue = "" ] attribute width { text }?,
869
+ [ a:defaultValue = "" ] attribute height { text }?,
870
+ attribute originalSrc { text }?,
871
+ (text* | svg)
872
+ }
873
+ include "SVG-1.2-RFC.rnc"
874
+
875
+ sourcecode =
876
+ element sourcecode {
877
+ attribute xml:base { text }?,
878
+ attribute xml:lang { text }?,
879
+ attribute anchor { xsd:ID }?,
880
+ attribute pn { xsd:ID }?,
881
+ [ a:defaultValue = "" ] attribute name { text }?,
882
+ [ a:defaultValue = "" ] attribute type { text }?,
883
+ [ a:defaultValue = "false" ]
884
+ attribute markers { "true" | "false" }?,
885
+ attribute src { text }?,
886
+ attribute originalSrc { text }?,
887
+ text
888
+ }
889
+
890
+ thead =
891
+ element thead {
892
+ attribute xml:base { text }?,
893
+ attribute xml:lang { text }?,
894
+ attribute anchor { xsd:ID }?,
895
+ tr+
896
+ }
897
+
898
+ tbody =
899
+ element tbody {
900
+ attribute xml:base { text }?,
901
+ attribute xml:lang { text }?,
902
+ attribute anchor { xsd:ID }?,
903
+ tr+
904
+ }
905
+
906
+ tfoot =
907
+ element tfoot {
908
+ attribute xml:base { text }?,
909
+ attribute xml:lang { text }?,
910
+ attribute anchor { xsd:ID }?,
911
+ tr+
912
+ }
913
+
914
+ tr =
915
+ element tr {
916
+ attribute xml:base { text }?,
917
+ attribute xml:lang { text }?,
918
+ attribute anchor { xsd:ID }?,
919
+ (td | th)+
920
+ }
921
+
922
+ td =
923
+ element td {
924
+ attribute xml:base { text }?,
925
+ attribute xml:lang { text }?,
926
+ attribute anchor { xsd:ID }?,
927
+ [ a:defaultValue = "1" ] attribute colspan { text }?,
928
+ [ a:defaultValue = "1" ] attribute rowspan { text }?,
929
+ [ a:defaultValue = "left" ]
930
+ attribute align { "left" | "center" | "right" }?,
931
+ ((artset | artwork | dl | figure | ol | sourcecode | t | ul)+
932
+ | (text
933
+ | bcp14
934
+ | br
935
+ | cref
936
+ | em
937
+ | eref
938
+ | iref
939
+ | relref
940
+ | strong
941
+ | sub
942
+ | sup
943
+ | tt
944
+ | u
945
+ | xref)*)
946
+ }
947
+
948
+ th =
949
+ element th {
950
+ attribute xml:base { text }?,
951
+ attribute xml:lang { text }?,
952
+ attribute anchor { xsd:ID }?,
953
+ [ a:defaultValue = "1" ] attribute colspan { text }?,
954
+ [ a:defaultValue = "1" ] attribute rowspan { text }?,
955
+ [ a:defaultValue = "left" ]
956
+ attribute align { "left" | "center" | "right" }?,
957
+ ((artset | artwork | dl | figure | ol | sourcecode | t | ul)+
958
+ | (text
959
+ | bcp14
960
+ | br
961
+ | cref
962
+ | em
963
+ | eref
964
+ | iref
965
+ | relref
966
+ | strong
967
+ | sub
968
+ | sup
969
+ | tt
970
+ | u
971
+ | xref)*)
972
+ }
973
+
974
+ postamble =
975
+ element postamble {
976
+ attribute xml:base { text }?,
977
+ attribute xml:lang { text }?,
978
+ (text | cref | eref | iref | spanx | xref)*
979
+ }
980
+
981
+ texttable =
982
+ element texttable {
983
+ attribute xml:base { text }?,
984
+ attribute xml:lang { text }?,
985
+ attribute anchor { xsd:ID }?,
986
+ [ a:defaultValue = "" ] attribute title { text }?,
987
+ [ a:defaultValue = "false" ]
988
+ attribute suppress-title { "true" | "false" }?,
989
+ [ a:defaultValue = "center" ]
990
+ attribute align { "left" | "center" | "right" }?,
991
+ [ a:defaultValue = "full" ]
992
+ attribute style { "all" | "none" | "headers" | "full" }?,
993
+ name?,
994
+ preamble?,
995
+ ttcol+,
996
+ c*,
997
+ postamble?
998
+ }
999
+
1000
+ ttcol =
1001
+ element ttcol {
1002
+ attribute xml:base { text }?,
1003
+ attribute xml:lang { text }?,
1004
+ attribute width { text }?,
1005
+ [ a:defaultValue = "left" ]
1006
+ attribute align { "left" | "center" | "right" }?,
1007
+ (cref | eref | iref | xref | text)*
1008
+ }
1009
+
1010
+ c =
1011
+ element c {
1012
+ attribute xml:base { text }?,
1013
+ attribute xml:lang { text }?,
1014
+ (text | cref | eref | iref | spanx | xref)*
1015
+ }
1016
+
1017
+ bcp14 =
1018
+ element bcp14 {
1019
+ attribute xml:base { text }?,
1020
+ attribute xml:lang { text }?,
1021
+ text
1022
+ }
1023
+
1024
+ back =
1025
+ element back {
1026
+ attribute xml:base { text }?,
1027
+ attribute xml:lang { text }?,
1028
+ displayreference*,
1029
+ references*,
1030
+ section*
1031
+ }
1032
+
1033
+ displayreference =
1034
+ element displayreference {
1035
+ attribute xml:base { text }?,
1036
+ attribute xml:lang { text }?,
1037
+ attribute target { xsd:IDREF },
1038
+ attribute to { text }
1039
+ }
1040
+
1041
+ references =
1042
+ element references {
1043
+ attribute xml:base { text }?,
1044
+ attribute xml:lang { text }?,
1045
+ attribute pn { xsd:ID }?,
1046
+ attribute anchor { xsd:ID }?,
1047
+ attribute title { text }?,
1048
+ name?,
1049
+ (references+ | (reference | referencegroup)*)
1050
+ }
1051
+
1052
+ reference =
1053
+ element reference {
1054
+ attribute xml:base { text }?,
1055
+ attribute xml:lang { text }?,
1056
+ attribute anchor { xsd:ID },
1057
+ attribute derivedAnchor { text }?,
1058
+ attribute target { text }?,
1059
+ [ a:defaultValue = "true" ]
1060
+ attribute quoteTitle { "true" | "false" }?,
1061
+ attribute quote-title { "true" | "false" }?,
1062
+ stream?,
1063
+ front,
1064
+ (annotation | format | refcontent | seriesInfo)*
1065
+ }
1066
+
1067
+ stream =
1068
+ element stream {
1069
+ ( "IETF" | "IAB" | "IRTF" | "independent" | "editorial" )?
1070
+ }
1071
+
1072
+ referencegroup =
1073
+ element referencegroup {
1074
+ attribute xml:base { text }?,
1075
+ attribute xml:lang { text }?,
1076
+ attribute anchor { xsd:ID },
1077
+ attribute derivedAnchor { text }?,
1078
+ attribute target { text }?,
1079
+ reference+
1080
+ }
1081
+
1082
+ seriesInfo =
1083
+ element seriesInfo {
1084
+ attribute xml:base { text }?,
1085
+ attribute xml:lang { text }?,
1086
+ attribute name { text },
1087
+ attribute value { text },
1088
+ attribute asciiName { text }?,
1089
+ attribute asciiValue { text }?,
1090
+ attribute status { text }?,
1091
+ attribute stream {
1092
+ "IETF" | "IAB" | "IRTF" | "independent" | "editorial"
1093
+ }?,
1094
+ empty
1095
+ }
1096
+
1097
+ format =
1098
+ element format {
1099
+ attribute xml:base { text }?,
1100
+ attribute xml:lang { text }?,
1101
+ attribute target { text }?,
1102
+ attribute type { text },
1103
+ attribute octets { text }?,
1104
+ empty
1105
+ }
1106
+
1107
+ annotation =
1108
+ element annotation {
1109
+ attribute xml:base { text }?,
1110
+ attribute xml:lang { text }?,
1111
+ (text
1112
+ | bcp14
1113
+ | cref
1114
+ | em
1115
+ | eref
1116
+ | iref
1117
+ | relref
1118
+ | spanx
1119
+ | strong
1120
+ | sub
1121
+ | sup
1122
+ | tt
1123
+ | u
1124
+ | xref)*
1125
+ }
1126
+
1127
+ refcontent =
1128
+ element refcontent {
1129
+ attribute xml:base { text }?,
1130
+ attribute xml:lang { text }?,
1131
+ (text | bcp14 | em | strong | sub | sup | tt)*
1132
+ }
1133
+
1134
+ u =
1135
+ element u {
1136
+ attribute anchor { xsd:ID }?,
1137
+ attribute ascii { text }?,
1138
+ [ a:defaultValue = "lit-name-num" ]
1139
+ attribute format { text }?,
1140
+ attribute pn { xsd:ID }?,
1141
+ text
1142
+ }
1143
+
1144
+ start |= rfc
1145
+