xml2rfc 3.26.0__py3-none-any.whl

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 (71) hide show
  1. xml2rfc/__init__.py +68 -0
  2. xml2rfc/boilerplate_id_guidelines.py +28 -0
  3. xml2rfc/boilerplate_rfc_7841.py +575 -0
  4. xml2rfc/boilerplate_tlp.py +258 -0
  5. xml2rfc/data/SVG-1.2-RFC.rnc +1666 -0
  6. xml2rfc/data/SVG-1.2-RFC.rng +7460 -0
  7. xml2rfc/data/Scripts.txt +2693 -0
  8. xml2rfc/data/metadata.js +218 -0
  9. xml2rfc/data/metadata.min.js +1 -0
  10. xml2rfc/data/reference.rnc +955 -0
  11. xml2rfc/data/reference.rng +2158 -0
  12. xml2rfc/data/referencegroup.rnc +16 -0
  13. xml2rfc/data/referencegroup.rng +2180 -0
  14. xml2rfc/data/rfc7991.rnc +955 -0
  15. xml2rfc/data/rfc7991.rng +2143 -0
  16. xml2rfc/data/v2.rnc +309 -0
  17. xml2rfc/data/v2.rng +720 -0
  18. xml2rfc/data/v3.rnc +1144 -0
  19. xml2rfc/data/v3.rng +2538 -0
  20. xml2rfc/data/v3compat.dtd +630 -0
  21. xml2rfc/data/v3compat.rnc +985 -0
  22. xml2rfc/data/xml2rfc-v3-emacs-nxml.rnc +1083 -0
  23. xml2rfc/data/xml2rfc.css +1171 -0
  24. xml2rfc/data/xml2rfc.js +7 -0
  25. xml2rfc/debug.py +221 -0
  26. xml2rfc/log.py +54 -0
  27. xml2rfc/parser.py +815 -0
  28. xml2rfc/run.py +801 -0
  29. xml2rfc/scripts.py +52 -0
  30. xml2rfc/strings.py +26 -0
  31. xml2rfc/templates/address_card.html +21 -0
  32. xml2rfc/templates/base.html +415 -0
  33. xml2rfc/templates/doc.xml +367 -0
  34. xml2rfc/templates/doc.yaml +2138 -0
  35. xml2rfc/templates/rfc2629-other.ent +61 -0
  36. xml2rfc/templates/rfc2629-xhtml.ent +170 -0
  37. xml2rfc/templates/rfc2629.dtd +328 -0
  38. xml2rfc/uniscripts/__init__.py +97 -0
  39. xml2rfc/uniscripts/unidata.py +306 -0
  40. xml2rfc/uniscripts/update/make_unidata.py +94 -0
  41. xml2rfc/util/__init__.py +7 -0
  42. xml2rfc/util/date.py +94 -0
  43. xml2rfc/util/fonts.py +53 -0
  44. xml2rfc/util/name.py +229 -0
  45. xml2rfc/util/num.py +119 -0
  46. xml2rfc/util/postal.py +285 -0
  47. xml2rfc/util/unicode.py +441 -0
  48. xml2rfc/utils.py +672 -0
  49. xml2rfc/walkpdf.py +113 -0
  50. xml2rfc/writers/__init__.py +25 -0
  51. xml2rfc/writers/base.py +2248 -0
  52. xml2rfc/writers/bib.py +43 -0
  53. xml2rfc/writers/doc.py +354 -0
  54. xml2rfc/writers/expand.py +51 -0
  55. xml2rfc/writers/expanded_xml.py +39 -0
  56. xml2rfc/writers/html.py +3110 -0
  57. xml2rfc/writers/legacy_html.py +860 -0
  58. xml2rfc/writers/nroff.py +345 -0
  59. xml2rfc/writers/paginated_txt.py +432 -0
  60. xml2rfc/writers/pdf.py +230 -0
  61. xml2rfc/writers/preptool.py +2428 -0
  62. xml2rfc/writers/raw_txt.py +1453 -0
  63. xml2rfc/writers/text.py +5000 -0
  64. xml2rfc/writers/unprep.py +187 -0
  65. xml2rfc/writers/v2v3.py +1150 -0
  66. xml2rfc-3.26.0.dist-info/LICENSE +29 -0
  67. xml2rfc-3.26.0.dist-info/METADATA +178 -0
  68. xml2rfc-3.26.0.dist-info/RECORD +71 -0
  69. xml2rfc-3.26.0.dist-info/WHEEL +5 -0
  70. xml2rfc-3.26.0.dist-info/entry_points.txt +2 -0
  71. xml2rfc-3.26.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,955 @@
1
+ namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0"
2
+
3
+ # xml2rfc <reference> grammar
4
+
5
+ reference =
6
+ element reference {
7
+ attribute xml:base { text }?,
8
+ attribute xml:lang { text }?,
9
+ attribute anchor { xsd:ID },
10
+ attribute derivedAnchor { text }?,
11
+ attribute target { text }?,
12
+ [ a:defaultValue = "true" ]
13
+ attribute quoteTitle { "true" | "false" }?,
14
+ attribute quote-title { "true" | "false" }?,
15
+ stream?,
16
+ front,
17
+ (annotation | format | refcontent | seriesInfo)*
18
+ }
19
+
20
+ front =
21
+ element front {
22
+ attribute xml:base { text }?,
23
+ attribute xml:lang { text }?,
24
+ title,
25
+ seriesInfo*,
26
+ author+,
27
+ date?,
28
+ area*,
29
+ workgroup*,
30
+ keyword*,
31
+ abstract?,
32
+ note*,
33
+ boilerplate?
34
+ }
35
+
36
+ title =
37
+ element title {
38
+ attribute xml:base { text }?,
39
+ attribute xml:lang { text }?,
40
+ attribute abbrev { text }?,
41
+ attribute ascii { text }?,
42
+ text
43
+ }
44
+
45
+ author =
46
+ element author {
47
+ attribute xml:base { text }?,
48
+ attribute xml:lang { text }?,
49
+ attribute anchor { xsd:ID }?,
50
+ attribute initials { text }?,
51
+ attribute asciiInitials { text }?,
52
+ attribute surname { text }?,
53
+ attribute asciiSurname { text }?,
54
+ attribute fullname { text }?,
55
+ attribute role { "editor" }?,
56
+ attribute asciiFullname { text }?,
57
+ organization?,
58
+ address?
59
+ }
60
+
61
+ organization =
62
+ element organization {
63
+ attribute xml:base { text }?,
64
+ attribute xml:lang { text }?,
65
+ attribute abbrev { text }?,
66
+ attribute ascii { text }?,
67
+ attribute asciiAbbrev { text }?,
68
+ text
69
+ }
70
+
71
+ address =
72
+ element address {
73
+ attribute xml:base { text }?,
74
+ attribute xml:lang { text }?,
75
+ postal?,
76
+ phone?,
77
+ facsimile?,
78
+ email?,
79
+ uri?
80
+ }
81
+
82
+ postal =
83
+ element postal {
84
+ attribute xml:base { text }?,
85
+ attribute xml:lang { text }?,
86
+ ((city | code | country | region | street)*
87
+ | postalLine+
88
+ | (city?
89
+ & cityarea?
90
+ & code?
91
+ & country
92
+ & extaddr*
93
+ & pobox?
94
+ & region?
95
+ & sortingcode?
96
+ & street*))
97
+ }
98
+
99
+ extaddr =
100
+ element extaddr {
101
+ attribute xml:base { text }?,
102
+ attribute xml:lang { text }?,
103
+ attribute ascii { text }?,
104
+ text
105
+ }
106
+
107
+ pobox =
108
+ element pobox {
109
+ attribute xml:base { text }?,
110
+ attribute xml:lang { text }?,
111
+ attribute ascii { text }?,
112
+ text
113
+ }
114
+
115
+ street =
116
+ element street {
117
+ attribute xml:base { text }?,
118
+ attribute xml:lang { text }?,
119
+ attribute ascii { text }?,
120
+ text
121
+ }
122
+
123
+ cityarea =
124
+ element cityarea {
125
+ attribute xml:base { text }?,
126
+ attribute xml:lang { text }?,
127
+ attribute ascii { text }?,
128
+ text
129
+ }
130
+
131
+ city =
132
+ element city {
133
+ attribute xml:base { text }?,
134
+ attribute xml:lang { text }?,
135
+ attribute ascii { text }?,
136
+ text
137
+ }
138
+
139
+ region =
140
+ element region {
141
+ attribute xml:base { text }?,
142
+ attribute xml:lang { text }?,
143
+ attribute ascii { text }?,
144
+ text
145
+ }
146
+
147
+ code =
148
+ element code {
149
+ attribute xml:base { text }?,
150
+ attribute xml:lang { text }?,
151
+ attribute ascii { text }?,
152
+ text
153
+ }
154
+
155
+ sortingcode =
156
+ element sortingcode {
157
+ attribute xml:base { text }?,
158
+ attribute xml:lang { text }?,
159
+ attribute ascii { text }?,
160
+ text
161
+ }
162
+
163
+ country =
164
+ element country {
165
+ attribute xml:base { text }?,
166
+ attribute xml:lang { text }?,
167
+ attribute ascii { text }?,
168
+ text
169
+ }
170
+
171
+ postalLine =
172
+ element postalLine {
173
+ attribute xml:base { text }?,
174
+ attribute xml:lang { text }?,
175
+ attribute ascii { text }?,
176
+ text
177
+ }
178
+
179
+ phone =
180
+ element phone {
181
+ attribute xml:base { text }?,
182
+ attribute xml:lang { text }?,
183
+ text
184
+ }
185
+
186
+ facsimile =
187
+ element facsimile {
188
+ attribute xml:base { text }?,
189
+ attribute xml:lang { text }?,
190
+ text
191
+ }
192
+
193
+ email =
194
+ element email {
195
+ attribute xml:base { text }?,
196
+ attribute xml:lang { text }?,
197
+ attribute ascii { text }?,
198
+ text
199
+ }
200
+
201
+ uri =
202
+ element uri {
203
+ attribute xml:base { text }?,
204
+ attribute xml:lang { text }?,
205
+ text
206
+ }
207
+
208
+ date =
209
+ element date {
210
+ attribute xml:base { text }?,
211
+ attribute xml:lang { text }?,
212
+ attribute day { text }?,
213
+ attribute month { text }?,
214
+ attribute year { text }?,
215
+ empty
216
+ }
217
+
218
+ area =
219
+ element area {
220
+ attribute xml:base { text }?,
221
+ attribute xml:lang { text }?,
222
+ text
223
+ }
224
+
225
+ workgroup =
226
+ element workgroup {
227
+ attribute xml:base { text }?,
228
+ attribute xml:lang { text }?,
229
+ text
230
+ }
231
+
232
+ keyword =
233
+ element keyword {
234
+ attribute xml:base { text }?,
235
+ attribute xml:lang { text }?,
236
+ text
237
+ }
238
+
239
+ abstract =
240
+ element abstract {
241
+ attribute xml:base { text }?,
242
+ attribute xml:lang { text }?,
243
+ attribute anchor { xsd:ID }?,
244
+ attribute pn { xsd:ID }?,
245
+ (dl | ol | t | ul)+
246
+ }
247
+
248
+ note =
249
+ element note {
250
+ attribute xml:base { text }?,
251
+ attribute xml:lang { text }?,
252
+ attribute title { text }?,
253
+ attribute pn { xsd:ID }?,
254
+ [ a:defaultValue = "false" ]
255
+ attribute removeInRFC { "true" | "false" }?,
256
+ name?,
257
+ (dl | ol | t | ul)+
258
+ }
259
+
260
+ boilerplate =
261
+ element boilerplate {
262
+ attribute xml:base { text }?,
263
+ attribute xml:lang { text }?,
264
+ section+
265
+ }
266
+
267
+ section =
268
+ element section {
269
+ attribute xml:base { text }?,
270
+ attribute xml:lang { text }?,
271
+ attribute anchor { xsd:ID }?,
272
+ attribute pn { xsd:ID }?,
273
+ attribute title { text }?,
274
+ [ a:defaultValue = "true" ]
275
+ attribute numbered { "true" | "false" }?,
276
+ [ a:defaultValue = "default" ]
277
+ attribute toc { "include" | "exclude" | "default" }?,
278
+ [ a:defaultValue = "false" ]
279
+ attribute removeInRFC { "true" | "false" }?,
280
+ name?,
281
+ (artwork
282
+ | aside
283
+ | author
284
+ | blockquote
285
+ | dl
286
+ | figure
287
+ | iref
288
+ | ol
289
+ | sourcecode
290
+ | t
291
+ | table
292
+ | texttable
293
+ | ul)*,
294
+ section*
295
+ }
296
+
297
+ name =
298
+ element name {
299
+ attribute xml:base { text }?,
300
+ attribute xml:lang { text }?,
301
+ attribute slugifiedName { xsd:ID }?,
302
+ (text
303
+ | bcp14
304
+ | cref
305
+ | em
306
+ | eref
307
+ | iref
308
+ | relref
309
+ | strong
310
+ | sub
311
+ | sup
312
+ | tt
313
+ | xref)*
314
+ }
315
+
316
+ t =
317
+ element t {
318
+ attribute xml:base { text }?,
319
+ attribute xml:lang { text }?,
320
+ attribute anchor { xsd:ID }?,
321
+ attribute pn { xsd:ID }?,
322
+ attribute hangText { text }?,
323
+ [ a:defaultValue = "false" ]
324
+ attribute keepWithNext { "false" | "true" }?,
325
+ [ a:defaultValue = "false" ]
326
+ attribute keepWithPrevious { "false" | "true" }?,
327
+ (text
328
+ | bcp14
329
+ | cref
330
+ | em
331
+ | eref
332
+ | iref
333
+ | \list
334
+ | relref
335
+ | spanx
336
+ | strong
337
+ | sub
338
+ | sup
339
+ | tt
340
+ | u
341
+ | vspace
342
+ | xref)*
343
+ }
344
+
345
+ aside =
346
+ element aside {
347
+ attribute xml:base { text }?,
348
+ attribute xml:lang { text }?,
349
+ attribute anchor { xsd:ID }?,
350
+ attribute pn { xsd:ID }?,
351
+ (artwork | dl | figure | iref | ol | t | table | ul)*
352
+ }
353
+
354
+ blockquote =
355
+ element blockquote {
356
+ attribute xml:base { text }?,
357
+ attribute xml:lang { text }?,
358
+ attribute anchor { xsd:ID }?,
359
+ attribute pn { xsd:ID }?,
360
+ attribute cite { text }?,
361
+ attribute quotedFrom { text }?,
362
+ ((artwork | dl | figure | ol | sourcecode | t | ul)+
363
+ | (text
364
+ | bcp14
365
+ | cref
366
+ | em
367
+ | eref
368
+ | iref
369
+ | relref
370
+ | strong
371
+ | sub
372
+ | sup
373
+ | tt
374
+ | u
375
+ | xref)+)
376
+ }
377
+
378
+ \list =
379
+ element list {
380
+ attribute xml:base { text }?,
381
+ attribute xml:lang { text }?,
382
+ [ a:defaultValue = "empty" ] attribute style { text }?,
383
+ attribute hangIndent { text }?,
384
+ attribute counter { text }?,
385
+ attribute pn { xsd:ID }?,
386
+ t+
387
+ }
388
+
389
+ ol =
390
+ element ol {
391
+ attribute xml:base { text }?,
392
+ attribute xml:lang { text }?,
393
+ attribute anchor { xsd:ID }?,
394
+ [ a:defaultValue = "1" ] attribute type { text }?,
395
+ [ a:defaultValue = "1" ] attribute start { text }?,
396
+ attribute group { text }?,
397
+ [ a:defaultValue = "normal" ]
398
+ attribute spacing { "normal" | "compact" }?,
399
+ attribute pn { xsd:ID }?,
400
+ li+
401
+ }
402
+
403
+ ul =
404
+ element ul {
405
+ attribute xml:base { text }?,
406
+ attribute xml:lang { text }?,
407
+ attribute anchor { xsd:ID }?,
408
+ [ a:defaultValue = "normal" ]
409
+ attribute spacing { "normal" | "compact" }?,
410
+ ([ a:defaultValue = "false" ]
411
+ attribute empty { "false" | "true"},
412
+ [ a:defaultValue = "false" ]
413
+ attribute bare { "false" | "true"}?,
414
+ attribute pn { xsd:ID }?)?,
415
+ li+
416
+ }
417
+
418
+ li =
419
+ element li {
420
+ attribute xml:base { text }?,
421
+ attribute xml:lang { text }?,
422
+ attribute anchor { xsd:ID }?,
423
+ attribute derivedCounter { text }?,
424
+ attribute pn { xsd:ID }?,
425
+ ((artwork | blockquote | dl | figure | ol | sourcecode | t | ul)+
426
+ | (text
427
+ | bcp14
428
+ | cref
429
+ | em
430
+ | eref
431
+ | iref
432
+ | relref
433
+ | strong
434
+ | sub
435
+ | sup
436
+ | tt
437
+ | u
438
+ | xref)+)
439
+ }
440
+
441
+ dl =
442
+ element dl {
443
+ attribute xml:base { text }?,
444
+ attribute xml:lang { text }?,
445
+ attribute anchor { xsd:ID }?,
446
+ [ a:defaultValue = "normal" ]
447
+ attribute spacing { "normal" | "compact" }?,
448
+ [ a:defaultValue = "false" ]
449
+ attribute newline { "false" | "true" }?,
450
+ attribute indent { text }?,
451
+ attribute pn { xsd:ID }?,
452
+ (dt, dd)+
453
+ }
454
+
455
+ dt =
456
+ element dt {
457
+ attribute xml:base { text }?,
458
+ attribute xml:lang { text }?,
459
+ attribute anchor { xsd:ID }?,
460
+ attribute pn { xsd:ID }?,
461
+ (text
462
+ | bcp14
463
+ | cref
464
+ | em
465
+ | eref
466
+ | iref
467
+ | relref
468
+ | strong
469
+ | sub
470
+ | sup
471
+ | tt
472
+ | xref)*
473
+ }
474
+
475
+ dd =
476
+ element dd {
477
+ attribute xml:base { text }?,
478
+ attribute xml:lang { text }?,
479
+ attribute anchor { xsd:ID }?,
480
+ attribute pn { xsd:ID }?,
481
+ ((artwork | dl | figure | ol | sourcecode | t | ul)+
482
+ | (text
483
+ | bcp14
484
+ | cref
485
+ | em
486
+ | eref
487
+ | iref
488
+ | relref
489
+ | strong
490
+ | sub
491
+ | sup
492
+ | tt
493
+ | u
494
+ | xref)+)
495
+ }
496
+
497
+ xref =
498
+ element xref {
499
+ attribute xml:base { text }?,
500
+ attribute xml:lang { text }?,
501
+ attribute target { xsd:IDREF },
502
+ [ a:defaultValue = "false" ]
503
+ attribute pageno { "true" | "false" }?,
504
+ [ a:defaultValue = "default" ]
505
+ attribute format { "default" | "title" | "counter" | "none" }?,
506
+ attribute derivedContent { text }?,
507
+ [ a:defaultValue = "of" ]
508
+ attribute sectionFormat { "of" | "comma" | "parens" | "bare" }?,
509
+ attribute section { text }?,
510
+ attribute relative { text }?,
511
+ attribute derivedLink { text }?,
512
+ text
513
+ }
514
+
515
+ relref =
516
+ element relref {
517
+ attribute xml:base { text }?,
518
+ attribute xml:lang { text }?,
519
+ attribute target { xsd:IDREF },
520
+ [ a:defaultValue = "of" ]
521
+ attribute displayFormat { "of" | "comma" | "parens" | "bare" }?,
522
+ attribute derivedContent { text }?,
523
+ attribute section { text },
524
+ attribute relative { text }?,
525
+ attribute derivedLink { text }?,
526
+ text
527
+ }
528
+
529
+ eref =
530
+ element eref {
531
+ attribute xml:base { text }?,
532
+ attribute xml:lang { text }?,
533
+ attribute target { text },
534
+ text
535
+ }
536
+
537
+ iref =
538
+ element iref {
539
+ attribute xml:base { text }?,
540
+ attribute xml:lang { text }?,
541
+ attribute item { text },
542
+ [ a:defaultValue = "" ] attribute subitem { text }?,
543
+ [ a:defaultValue = "false" ]
544
+ attribute primary { "true" | "false" }?,
545
+ attribute pn { xsd:ID }?,
546
+ empty
547
+ }
548
+
549
+ cref =
550
+ element cref {
551
+ attribute xml:base { text }?,
552
+ attribute xml:lang { text }?,
553
+ attribute anchor { xsd:ID }?,
554
+ attribute source { text }?,
555
+ [ a:defaultValue = "true" ]
556
+ attribute display { "true" | "false" }?,
557
+ (text | em | eref | relref | strong | sub | sup | tt | xref)*
558
+ }
559
+
560
+ tt =
561
+ element tt {
562
+ attribute xml:base { text }?,
563
+ attribute xml:lang { text }?,
564
+ (text
565
+ | bcp14
566
+ | cref
567
+ | em
568
+ | eref
569
+ | iref
570
+ | relref
571
+ | strong
572
+ | sub
573
+ | sup
574
+ | xref)*
575
+ }
576
+
577
+ strong =
578
+ element strong {
579
+ attribute xml:base { text }?,
580
+ attribute xml:lang { text }?,
581
+ (text
582
+ | bcp14
583
+ | cref
584
+ | em
585
+ | eref
586
+ | iref
587
+ | relref
588
+ | sub
589
+ | sup
590
+ | tt
591
+ | xref)*
592
+ }
593
+
594
+ em =
595
+ element em {
596
+ attribute xml:base { text }?,
597
+ attribute xml:lang { text }?,
598
+ (text
599
+ | bcp14
600
+ | cref
601
+ | eref
602
+ | iref
603
+ | relref
604
+ | strong
605
+ | sub
606
+ | sup
607
+ | tt
608
+ | xref)*
609
+ }
610
+
611
+ sub =
612
+ element sub {
613
+ attribute xml:base { text }?,
614
+ attribute xml:lang { text }?,
615
+ (text
616
+ | bcp14
617
+ | cref
618
+ | em
619
+ | eref
620
+ | iref
621
+ | relref
622
+ | strong
623
+ | tt
624
+ | xref)*
625
+ }
626
+
627
+ sup =
628
+ element sup {
629
+ attribute xml:base { text }?,
630
+ attribute xml:lang { text }?,
631
+ (text
632
+ | bcp14
633
+ | cref
634
+ | em
635
+ | eref
636
+ | iref
637
+ | relref
638
+ | strong
639
+ | tt
640
+ | xref)*
641
+ }
642
+
643
+ spanx =
644
+ element spanx {
645
+ attribute xml:base { text }?,
646
+ attribute xml:lang { text }?,
647
+ [ a:defaultValue = "preserve" ]
648
+ attribute xml:space { "default" | "preserve" }?,
649
+ [ a:defaultValue = "emph" ] attribute style { text }?,
650
+ text
651
+ }
652
+
653
+ vspace =
654
+ element vspace {
655
+ attribute xml:base { text }?,
656
+ attribute xml:lang { text }?,
657
+ [ a:defaultValue = "0" ] attribute blankLines { text }?,
658
+ empty
659
+ }
660
+
661
+ figure =
662
+ element figure {
663
+ attribute xml:base { text }?,
664
+ attribute xml:lang { text }?,
665
+ attribute anchor { xsd:ID }?,
666
+ attribute pn { xsd:ID }?,
667
+ [ a:defaultValue = "" ] attribute title { text }?,
668
+ [ a:defaultValue = "false" ]
669
+ attribute suppress-title { "true" | "false" }?,
670
+ attribute src { text }?,
671
+ attribute originalSrc { text }?,
672
+ [ a:defaultValue = "left" ]
673
+ attribute align { "left" | "center" | "right" }?,
674
+ [ a:defaultValue = "" ] attribute alt { text }?,
675
+ [ a:defaultValue = "" ] attribute width { text }?,
676
+ [ a:defaultValue = "" ] attribute height { text }?,
677
+ name?,
678
+ iref*,
679
+ preamble?,
680
+ (artwork | sourcecode)+,
681
+ postamble?
682
+ }
683
+
684
+ table =
685
+ element table {
686
+ attribute xml:base { text }?,
687
+ attribute xml:lang { text }?,
688
+ [ a:defaultValue = "center" ]
689
+ attribute align { "left" | "center" | "right" }?,
690
+ attribute anchor { xsd:ID }?,
691
+ attribute pn { xsd:ID }?,
692
+ name?,
693
+ iref*,
694
+ thead?,
695
+ tbody+,
696
+ tfoot?
697
+ }
698
+
699
+ preamble =
700
+ element preamble {
701
+ attribute xml:base { text }?,
702
+ attribute xml:lang { text }?,
703
+ (text
704
+ | bcp14
705
+ | cref
706
+ | em
707
+ | eref
708
+ | iref
709
+ | relref
710
+ | spanx
711
+ | strong
712
+ | sub
713
+ | sup
714
+ | tt
715
+ | u
716
+ | xref)*
717
+ }
718
+
719
+ artwork =
720
+ element artwork {
721
+ attribute xml:base { text }?,
722
+ attribute xml:lang { text }?,
723
+ attribute anchor { xsd:ID }?,
724
+ attribute pn { xsd:ID }?,
725
+ attribute xml:space { text }?,
726
+ [ a:defaultValue = "" ] attribute name { text }?,
727
+ [ a:defaultValue = "" ] attribute type { text }?,
728
+ attribute src { text }?,
729
+ [ a:defaultValue = "left" ]
730
+ attribute align { "left" | "center" | "right" }?,
731
+ [ a:defaultValue = "" ] attribute alt { text }?,
732
+ [ a:defaultValue = "" ] attribute width { text }?,
733
+ [ a:defaultValue = "" ] attribute height { text }?,
734
+ attribute originalSrc { text }?,
735
+ (text* | svg)
736
+ }
737
+ include "SVG-1.2-RFC.rnc"
738
+
739
+ sourcecode =
740
+ element sourcecode {
741
+ attribute xml:base { text }?,
742
+ attribute xml:lang { text }?,
743
+ attribute anchor { xsd:ID }?,
744
+ attribute pn { xsd:ID }?,
745
+ [ a:defaultValue = "" ] attribute name { text }?,
746
+ [ a:defaultValue = "" ] attribute type { text }?,
747
+ [ a:defaultValue = "false" ]
748
+ attribute markers { "true" | "false" }?,
749
+ attribute src { text }?,
750
+ attribute originalSrc { text }?,
751
+ text
752
+ }
753
+
754
+ thead =
755
+ element thead {
756
+ attribute xml:base { text }?,
757
+ attribute xml:lang { text }?,
758
+ attribute anchor { xsd:ID }?,
759
+ tr+
760
+ }
761
+
762
+ tbody =
763
+ element tbody {
764
+ attribute xml:base { text }?,
765
+ attribute xml:lang { text }?,
766
+ attribute anchor { xsd:ID }?,
767
+ tr+
768
+ }
769
+
770
+ tfoot =
771
+ element tfoot {
772
+ attribute xml:base { text }?,
773
+ attribute xml:lang { text }?,
774
+ attribute anchor { xsd:ID }?,
775
+ tr+
776
+ }
777
+
778
+ tr =
779
+ element tr {
780
+ attribute xml:base { text }?,
781
+ attribute xml:lang { text }?,
782
+ attribute anchor { xsd:ID }?,
783
+ (td | th)+
784
+ }
785
+
786
+ td =
787
+ element td {
788
+ attribute xml:base { text }?,
789
+ attribute xml:lang { text }?,
790
+ attribute anchor { xsd:ID }?,
791
+ [ a:defaultValue = "1" ] attribute colspan { text }?,
792
+ [ a:defaultValue = "1" ] attribute rowspan { text }?,
793
+ [ a:defaultValue = "left" ]
794
+ attribute align { "left" | "center" | "right" }?,
795
+ ((artwork | dl | figure | ol | sourcecode | t | ul)+
796
+ | (text
797
+ | bcp14
798
+ | cref
799
+ | em
800
+ | eref
801
+ | iref
802
+ | relref
803
+ | strong
804
+ | sub
805
+ | sup
806
+ | tt
807
+ | u
808
+ | xref)*)
809
+ }
810
+
811
+ th =
812
+ element th {
813
+ attribute xml:base { text }?,
814
+ attribute xml:lang { text }?,
815
+ attribute anchor { xsd:ID }?,
816
+ [ a:defaultValue = "1" ] attribute colspan { text }?,
817
+ [ a:defaultValue = "1" ] attribute rowspan { text }?,
818
+ [ a:defaultValue = "left" ]
819
+ attribute align { "left" | "center" | "right" }?,
820
+ ((artwork | dl | figure | ol | sourcecode | t | ul)+
821
+ | (text
822
+ | bcp14
823
+ | cref
824
+ | em
825
+ | eref
826
+ | iref
827
+ | relref
828
+ | strong
829
+ | sub
830
+ | sup
831
+ | tt
832
+ | u
833
+ | xref)*)
834
+ }
835
+
836
+ postamble =
837
+ element postamble {
838
+ attribute xml:base { text }?,
839
+ attribute xml:lang { text }?,
840
+ (text | cref | eref | iref | spanx | xref)*
841
+ }
842
+
843
+ texttable =
844
+ element texttable {
845
+ attribute xml:base { text }?,
846
+ attribute xml:lang { text }?,
847
+ attribute anchor { xsd:ID }?,
848
+ [ a:defaultValue = "" ] attribute title { text }?,
849
+ [ a:defaultValue = "false" ]
850
+ attribute suppress-title { "true" | "false" }?,
851
+ [ a:defaultValue = "center" ]
852
+ attribute align { "left" | "center" | "right" }?,
853
+ [ a:defaultValue = "full" ]
854
+ attribute style { "all" | "none" | "headers" | "full" }?,
855
+ name?,
856
+ preamble?,
857
+ ttcol+,
858
+ c*,
859
+ postamble?
860
+ }
861
+
862
+ ttcol =
863
+ element ttcol {
864
+ attribute xml:base { text }?,
865
+ attribute xml:lang { text }?,
866
+ attribute width { text }?,
867
+ [ a:defaultValue = "left" ]
868
+ attribute align { "left" | "center" | "right" }?,
869
+ (cref | eref | iref | xref | text)*
870
+ }
871
+
872
+ c =
873
+ element c {
874
+ attribute xml:base { text }?,
875
+ attribute xml:lang { text }?,
876
+ (text | cref | eref | iref | spanx | xref)*
877
+ }
878
+
879
+ bcp14 =
880
+ element bcp14 {
881
+ attribute xml:base { text }?,
882
+ attribute xml:lang { text }?,
883
+ text
884
+ }
885
+
886
+ stream =
887
+ element stream {
888
+ ( "IETF" | "IAB" | "IRTF" | "independent" | "editorial" )?
889
+ }
890
+
891
+
892
+ seriesInfo =
893
+ element seriesInfo {
894
+ attribute xml:base { text }?,
895
+ attribute xml:lang { text }?,
896
+ attribute name { text },
897
+ attribute value { text },
898
+ attribute asciiName { text }?,
899
+ attribute asciiValue { text }?,
900
+ attribute status { text }?,
901
+ attribute stream {
902
+ "IETF" | "IAB" | "IRTF" | "independent" | "editorial"
903
+ }?,
904
+ empty
905
+ }
906
+
907
+ format =
908
+ element format {
909
+ attribute xml:base { text }?,
910
+ attribute xml:lang { text }?,
911
+ attribute target { text }?,
912
+ attribute type { text },
913
+ attribute octets { text }?,
914
+ empty
915
+ }
916
+
917
+ annotation =
918
+ element annotation {
919
+ attribute xml:base { text }?,
920
+ attribute xml:lang { text }?,
921
+ (text
922
+ | bcp14
923
+ | cref
924
+ | em
925
+ | eref
926
+ | iref
927
+ | relref
928
+ | spanx
929
+ | strong
930
+ | sub
931
+ | sup
932
+ | tt
933
+ | u
934
+ | xref)*
935
+ }
936
+
937
+ refcontent =
938
+ element refcontent {
939
+ attribute xml:base { text }?,
940
+ attribute xml:lang { text }?,
941
+ (text | bcp14 | em | strong | sub | sup | tt)*
942
+ }
943
+
944
+ u =
945
+ element u {
946
+ attribute anchor { xsd:ID }?,
947
+ attribute ascii { text }?,
948
+ [ a:defaultValue = "lit-name-num" ]
949
+ attribute format { text }?,
950
+ attribute pn { xsd:ID }?,
951
+ text
952
+ }
953
+
954
+ start |= reference
955
+