rfcxml 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
+