metanorma-ietf 2.2.0 → 2.2.5

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.
@@ -135,12 +135,12 @@ module IsoDoc::Ietf
135
135
  end
136
136
 
137
137
  def postal(addr, out)
138
- if line = addr.at(ns("./formattedAddress"))
139
- line.text.split(/\n/).each do |l|
140
- out.postalLine l, **attr_code(ascii: l.transliterate)
141
- end
142
- else
143
- out.postal do |p|
138
+ out.postal do |p|
139
+ if line = addr.at(ns("./formattedAddress"))
140
+ line.text.split(/\n/).each do |l|
141
+ p.postalLine l, **attr_code(ascii: l.transliterate)
142
+ end
143
+ else
144
144
  postal_detailed(addr, p)
145
145
  end
146
146
  end
@@ -3,16 +3,27 @@ module IsoDoc::Ietf
3
3
  # TODO displayreference will be implemented as combination of autofetch and user-provided citations
4
4
 
5
5
  def bibliography(isoxml, out)
6
- isoxml.xpath(ns("//references")).each do |f|
7
- out.references **attr_code(anchor: f["id"]) do |div|
8
- title = f.at(ns("./title")) and div.name do |name|
9
- title.children.each { |n| parse(n, name) }
10
- end
11
- f.elements.reject do |e|
12
- %w(reference title bibitem note).include? e.name
13
- end.each { |e| parse(e, div) }
14
- biblio_list(f, div, true)
6
+ isoxml.xpath(ns("//bibliography/references | "\
7
+ "//bibliography/clause[.//references] | "\
8
+ "//annex/clause[.//references] | "\
9
+ "//annex/references | "\
10
+ "//sections/clause[.//references]")).each do |f|
11
+ bibliography1(f, out)
12
+ end
13
+ end
14
+
15
+ def bibliography1(f, out)
16
+ out.references **attr_code(anchor: f["id"]) do |div|
17
+ title = f.at(ns("./title")) and div.name do |name|
18
+ title.children.each { |n| parse(n, name) }
15
19
  end
20
+ f.elements.select do |e|
21
+ %w(references clause).include? e.name
22
+ end.each { |e| bibliography1(e, out) }
23
+ f.elements.reject do |e|
24
+ %w(references title bibitem note).include? e.name
25
+ end.each { |e| parse(e, div) }
26
+ biblio_list(f, div, true)
16
27
  end
17
28
  end
18
29
 
@@ -9,6 +9,7 @@ require_relative "./cleanup"
9
9
  require_relative "./footnotes"
10
10
  require_relative "./references"
11
11
  require_relative "./section"
12
+ require_relative "./validation"
12
13
  require_relative "./xref"
13
14
 
14
15
  module IsoDoc::Ietf
@@ -59,12 +60,14 @@ module IsoDoc::Ietf
59
60
  passthrough_cleanup(docxml)
60
61
  end
61
62
 
62
- def postprocess(result, filename, dir)
63
+ def postprocess(result, filename, _dir)
63
64
  result = from_xhtml(cleanup(to_xhtml(textcleanup(result)))).
64
65
  sub(/<!DOCTYPE[^>]+>\n/, "").
65
66
  sub(/(<rfc[^<]+? )lang="[^"]+"/, "\\1")
66
67
  File.open(filename, "w:UTF-8") { |f| f.write(result) }
68
+ schema_validate(filename)
67
69
  @files_to_delete.each { |f| FileUtils.rm_rf f }
70
+ content_validate(to_xhtml(result), filename)
68
71
  end
69
72
 
70
73
  def init_file(filename, debug)
@@ -63,6 +63,7 @@ module IsoDoc::Ietf
63
63
  category: series2category(
64
64
  docxml&.at(ns("//bibdata/series[@type = 'intended']/title"))&.text),
65
65
  ipr: docxml&.at(ns("//bibdata/ext/ipr"))&.text,
66
+ consensus: docxml&.at(ns("//bibdata/ext/consensus"))&.text,
66
67
  obsoletes: obs,
67
68
  updates: upd,
68
69
  indexInclude: docxml&.at(ns("//bibdata/ext/indexInclude"))&.text,
@@ -140,6 +141,7 @@ module IsoDoc::Ietf
140
141
  end
141
142
 
142
143
  def clause_parse(node, out)
144
+ return if node.at(ns(".//references"))
143
145
  out.section **attr_code( anchor: node["id"], numbered: node["numbered"],
144
146
  removeInRFC: node["removeInRFC"], toc: node["toc"]) do |div|
145
147
  clause_parse_title(node, div, node.at(ns("./title")), out)
@@ -152,23 +154,16 @@ module IsoDoc::Ietf
152
154
  def clause(isoxml, out)
153
155
  isoxml.xpath("//xmlns:preface/child::*[not(name() = 'abstract' or name() = 'foreword')] "\
154
156
  "| //xmlns:sections/child::*").each do |c|
155
- clause1(c, out)
156
- end
157
- end
158
-
159
- def clause1(c, out)
160
- out.section **attr_code( anchor: c["id"], numbered: c["numbered"],
161
- removeInRFC: c["removeInRFC"], toc: c["toc"]) do |div|
162
- clause_parse_title(c, div, c.at(ns("./title")), out)
163
- c.elements.reject { |c1| c1.name == "title" }.each do |c1|
164
- parse(c1, div)
165
- end
157
+ #cdup = c.dup
158
+ #cdup.xpath(ns(".//references")).each { |r| r.remove }
159
+ #cdup.at("./*[local-name() != 'title'][normalize-space(text()) != '']") or next
160
+ clause_parse(c, out)
166
161
  end
167
162
  end
168
163
 
169
164
  def annex(isoxml, out)
170
165
  isoxml.xpath(ns("//annex")).each do |c|
171
- clause1(c, out)
166
+ clause_parse(c, out)
172
167
  end
173
168
  end
174
169
  end
@@ -0,0 +1,2530 @@
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
+ <!-- xml2rfc Version 3 grammar -->
4
+ <define name="rfc">
5
+ <element name="rfc">
6
+ <optional>
7
+ <attribute name="xml:base"/>
8
+ </optional>
9
+ <optional>
10
+ <attribute name="xml:lang"/>
11
+ </optional>
12
+ <optional>
13
+ <attribute name="number"/>
14
+ </optional>
15
+ <optional>
16
+ <attribute name="obsoletes" a:defaultValue=""/>
17
+ </optional>
18
+ <optional>
19
+ <attribute name="updates" a:defaultValue=""/>
20
+ </optional>
21
+ <optional>
22
+ <attribute name="category">
23
+ <choice>
24
+ <value>std</value>
25
+ <value>bcp</value>
26
+ <value>exp</value>
27
+ <value>info</value>
28
+ <value>historic</value>
29
+ </choice>
30
+ </attribute>
31
+ </optional>
32
+ <optional>
33
+ <attribute name="mode"/>
34
+ </optional>
35
+ <optional>
36
+ <attribute name="consensus" a:defaultValue="false">
37
+ <choice>
38
+ <value>no</value>
39
+ <value>yes</value>
40
+ <value>false</value>
41
+ <value>true</value>
42
+ </choice>
43
+ </attribute>
44
+ </optional>
45
+ <optional>
46
+ <attribute name="seriesNo"/>
47
+ </optional>
48
+ <optional>
49
+ <attribute name="ipr"/>
50
+ </optional>
51
+ <optional>
52
+ <attribute name="iprExtract">
53
+ <data type="IDREF"/>
54
+ </attribute>
55
+ </optional>
56
+ <optional>
57
+ <attribute name="submissionType" a:defaultValue="IETF">
58
+ <choice>
59
+ <value>IETF</value>
60
+ <value>IAB</value>
61
+ <value>IRTF</value>
62
+ <value>independent</value>
63
+ </choice>
64
+ </attribute>
65
+ </optional>
66
+ <optional>
67
+ <attribute name="docName"/>
68
+ </optional>
69
+ <optional>
70
+ <attribute name="sortRefs" a:defaultValue="false">
71
+ <choice>
72
+ <value>true</value>
73
+ <value>false</value>
74
+ </choice>
75
+ </attribute>
76
+ </optional>
77
+ <optional>
78
+ <attribute name="symRefs" a:defaultValue="true">
79
+ <choice>
80
+ <value>true</value>
81
+ <value>false</value>
82
+ </choice>
83
+ </attribute>
84
+ </optional>
85
+ <optional>
86
+ <attribute name="tocInclude" a:defaultValue="true">
87
+ <choice>
88
+ <value>true</value>
89
+ <value>false</value>
90
+ </choice>
91
+ </attribute>
92
+ </optional>
93
+ <optional>
94
+ <attribute name="tocDepth" a:defaultValue="3"/>
95
+ </optional>
96
+ <optional>
97
+ <attribute name="prepTime"/>
98
+ </optional>
99
+ <optional>
100
+ <attribute name="indexInclude" a:defaultValue="true">
101
+ <choice>
102
+ <value>true</value>
103
+ <value>false</value>
104
+ </choice>
105
+ </attribute>
106
+ </optional>
107
+ <optional>
108
+ <attribute name="version"/>
109
+ </optional>
110
+ <optional>
111
+ <attribute name="scripts" a:defaultValue="Common,Latin"/>
112
+ </optional>
113
+ <optional>
114
+ <attribute name="expiresDate"/>
115
+ </optional>
116
+ <zeroOrMore>
117
+ <ref name="link"/>
118
+ </zeroOrMore>
119
+ <ref name="front"/>
120
+ <ref name="middle"/>
121
+ <optional>
122
+ <ref name="back"/>
123
+ </optional>
124
+ </element>
125
+ </define>
126
+ <define name="link">
127
+ <element name="link">
128
+ <optional>
129
+ <attribute name="xml:base"/>
130
+ </optional>
131
+ <optional>
132
+ <attribute name="xml:lang"/>
133
+ </optional>
134
+ <attribute name="href"/>
135
+ <optional>
136
+ <attribute name="rel"/>
137
+ </optional>
138
+ </element>
139
+ </define>
140
+ <define name="front">
141
+ <element name="front">
142
+ <optional>
143
+ <attribute name="xml:base"/>
144
+ </optional>
145
+ <optional>
146
+ <attribute name="xml:lang"/>
147
+ </optional>
148
+ <ref name="title"/>
149
+ <zeroOrMore>
150
+ <ref name="seriesInfo"/>
151
+ </zeroOrMore>
152
+ <oneOrMore>
153
+ <ref name="author"/>
154
+ </oneOrMore>
155
+ <optional>
156
+ <ref name="date"/>
157
+ </optional>
158
+ <zeroOrMore>
159
+ <ref name="area"/>
160
+ </zeroOrMore>
161
+ <zeroOrMore>
162
+ <ref name="workgroup"/>
163
+ </zeroOrMore>
164
+ <zeroOrMore>
165
+ <ref name="keyword"/>
166
+ </zeroOrMore>
167
+ <optional>
168
+ <ref name="abstract"/>
169
+ </optional>
170
+ <zeroOrMore>
171
+ <ref name="note"/>
172
+ </zeroOrMore>
173
+ <optional>
174
+ <ref name="boilerplate"/>
175
+ </optional>
176
+ <optional>
177
+ <ref name="toc"/>
178
+ </optional>
179
+ </element>
180
+ </define>
181
+ <define name="title">
182
+ <element name="title">
183
+ <optional>
184
+ <attribute name="xml:base"/>
185
+ </optional>
186
+ <optional>
187
+ <attribute name="xml:lang"/>
188
+ </optional>
189
+ <optional>
190
+ <attribute name="abbrev"/>
191
+ </optional>
192
+ <optional>
193
+ <attribute name="ascii"/>
194
+ </optional>
195
+ <zeroOrMore>
196
+ <choice>
197
+ <text/>
198
+ <ref name="br"/>
199
+ </choice>
200
+ </zeroOrMore>
201
+ </element>
202
+ </define>
203
+ <define name="author">
204
+ <element name="author">
205
+ <optional>
206
+ <attribute name="xml:base"/>
207
+ </optional>
208
+ <optional>
209
+ <attribute name="xml:lang"/>
210
+ </optional>
211
+ <optional>
212
+ <attribute name="anchor">
213
+ <data type="ID"/>
214
+ </attribute>
215
+ </optional>
216
+ <optional>
217
+ <attribute name="initials"/>
218
+ </optional>
219
+ <optional>
220
+ <attribute name="asciiInitials"/>
221
+ </optional>
222
+ <optional>
223
+ <attribute name="surname"/>
224
+ </optional>
225
+ <optional>
226
+ <attribute name="asciiSurname"/>
227
+ </optional>
228
+ <optional>
229
+ <attribute name="fullname"/>
230
+ </optional>
231
+ <optional>
232
+ <attribute name="role">
233
+ <value>editor</value>
234
+ </attribute>
235
+ </optional>
236
+ <optional>
237
+ <attribute name="asciiFullname"/>
238
+ </optional>
239
+ <optional>
240
+ <ref name="organization"/>
241
+ </optional>
242
+ <optional>
243
+ <ref name="address"/>
244
+ </optional>
245
+ </element>
246
+ </define>
247
+ <define name="contact">
248
+ <element name="contact">
249
+ <optional>
250
+ <attribute name="xml:base"/>
251
+ </optional>
252
+ <optional>
253
+ <attribute name="xml:lang"/>
254
+ </optional>
255
+ <optional>
256
+ <attribute name="anchor">
257
+ <data type="ID"/>
258
+ </attribute>
259
+ </optional>
260
+ <optional>
261
+ <attribute name="initials"/>
262
+ </optional>
263
+ <optional>
264
+ <attribute name="asciiInitials"/>
265
+ </optional>
266
+ <optional>
267
+ <attribute name="surname"/>
268
+ </optional>
269
+ <optional>
270
+ <attribute name="asciiSurname"/>
271
+ </optional>
272
+ <optional>
273
+ <attribute name="fullname"/>
274
+ </optional>
275
+ <optional>
276
+ <attribute name="asciiFullname"/>
277
+ </optional>
278
+ <optional>
279
+ <ref name="organization"/>
280
+ </optional>
281
+ <optional>
282
+ <ref name="address"/>
283
+ </optional>
284
+ </element>
285
+ </define>
286
+ <define name="organization">
287
+ <element name="organization">
288
+ <optional>
289
+ <attribute name="xml:base"/>
290
+ </optional>
291
+ <optional>
292
+ <attribute name="xml:lang"/>
293
+ </optional>
294
+ <optional>
295
+ <attribute name="abbrev"/>
296
+ </optional>
297
+ <optional>
298
+ <attribute name="ascii"/>
299
+ </optional>
300
+ <optional>
301
+ <attribute name="asciiAbbrev"/>
302
+ </optional>
303
+ <optional>
304
+ <attribute name="showOnFrontPage" a:defaultValue="true">
305
+ <choice>
306
+ <value>true</value>
307
+ <value>false</value>
308
+ </choice>
309
+ </attribute>
310
+ </optional>
311
+ <text/>
312
+ </element>
313
+ </define>
314
+ <define name="address">
315
+ <element name="address">
316
+ <optional>
317
+ <attribute name="xml:base"/>
318
+ </optional>
319
+ <optional>
320
+ <attribute name="xml:lang"/>
321
+ </optional>
322
+ <optional>
323
+ <ref name="postal"/>
324
+ </optional>
325
+ <optional>
326
+ <ref name="phone"/>
327
+ </optional>
328
+ <optional>
329
+ <ref name="facsimile"/>
330
+ </optional>
331
+ <zeroOrMore>
332
+ <ref name="email"/>
333
+ </zeroOrMore>
334
+ <optional>
335
+ <ref name="uri"/>
336
+ </optional>
337
+ </element>
338
+ </define>
339
+ <define name="postal">
340
+ <element name="postal">
341
+ <optional>
342
+ <attribute name="xml:base"/>
343
+ </optional>
344
+ <optional>
345
+ <attribute name="xml:lang"/>
346
+ </optional>
347
+ <choice>
348
+ <zeroOrMore>
349
+ <choice>
350
+ <ref name="city"/>
351
+ <ref name="cityarea"/>
352
+ <ref name="code"/>
353
+ <ref name="country"/>
354
+ <ref name="extaddr"/>
355
+ <ref name="pobox"/>
356
+ <ref name="region"/>
357
+ <ref name="sortingcode"/>
358
+ <ref name="street"/>
359
+ </choice>
360
+ </zeroOrMore>
361
+ <oneOrMore>
362
+ <ref name="postalLine"/>
363
+ </oneOrMore>
364
+ </choice>
365
+ </element>
366
+ </define>
367
+ <define name="extaddr">
368
+ <element name="extaddr">
369
+ <optional>
370
+ <attribute name="xml:base"/>
371
+ </optional>
372
+ <optional>
373
+ <attribute name="xml:lang"/>
374
+ </optional>
375
+ <optional>
376
+ <attribute name="ascii"/>
377
+ </optional>
378
+ <text/>
379
+ </element>
380
+ </define>
381
+ <define name="pobox">
382
+ <element name="pobox">
383
+ <optional>
384
+ <attribute name="xml:base"/>
385
+ </optional>
386
+ <optional>
387
+ <attribute name="xml:lang"/>
388
+ </optional>
389
+ <optional>
390
+ <attribute name="ascii"/>
391
+ </optional>
392
+ <text/>
393
+ </element>
394
+ </define>
395
+ <define name="street">
396
+ <element name="street">
397
+ <optional>
398
+ <attribute name="xml:base"/>
399
+ </optional>
400
+ <optional>
401
+ <attribute name="xml:lang"/>
402
+ </optional>
403
+ <optional>
404
+ <attribute name="ascii"/>
405
+ </optional>
406
+ <text/>
407
+ </element>
408
+ </define>
409
+ <define name="cityarea">
410
+ <element name="cityarea">
411
+ <optional>
412
+ <attribute name="xml:base"/>
413
+ </optional>
414
+ <optional>
415
+ <attribute name="xml:lang"/>
416
+ </optional>
417
+ <optional>
418
+ <attribute name="ascii"/>
419
+ </optional>
420
+ <text/>
421
+ </element>
422
+ </define>
423
+ <define name="city">
424
+ <element name="city">
425
+ <optional>
426
+ <attribute name="xml:base"/>
427
+ </optional>
428
+ <optional>
429
+ <attribute name="xml:lang"/>
430
+ </optional>
431
+ <optional>
432
+ <attribute name="ascii"/>
433
+ </optional>
434
+ <text/>
435
+ </element>
436
+ </define>
437
+ <define name="region">
438
+ <element name="region">
439
+ <optional>
440
+ <attribute name="xml:base"/>
441
+ </optional>
442
+ <optional>
443
+ <attribute name="xml:lang"/>
444
+ </optional>
445
+ <optional>
446
+ <attribute name="ascii"/>
447
+ </optional>
448
+ <text/>
449
+ </element>
450
+ </define>
451
+ <define name="code">
452
+ <element name="code">
453
+ <optional>
454
+ <attribute name="xml:base"/>
455
+ </optional>
456
+ <optional>
457
+ <attribute name="xml:lang"/>
458
+ </optional>
459
+ <optional>
460
+ <attribute name="ascii"/>
461
+ </optional>
462
+ <text/>
463
+ </element>
464
+ </define>
465
+ <define name="sortingcode">
466
+ <element name="sortingcode">
467
+ <optional>
468
+ <attribute name="xml:base"/>
469
+ </optional>
470
+ <optional>
471
+ <attribute name="xml:lang"/>
472
+ </optional>
473
+ <optional>
474
+ <attribute name="ascii"/>
475
+ </optional>
476
+ <text/>
477
+ </element>
478
+ </define>
479
+ <define name="country">
480
+ <element name="country">
481
+ <optional>
482
+ <attribute name="xml:base"/>
483
+ </optional>
484
+ <optional>
485
+ <attribute name="xml:lang"/>
486
+ </optional>
487
+ <optional>
488
+ <attribute name="ascii"/>
489
+ </optional>
490
+ <text/>
491
+ </element>
492
+ </define>
493
+ <define name="postalLine">
494
+ <element name="postalLine">
495
+ <optional>
496
+ <attribute name="xml:base"/>
497
+ </optional>
498
+ <optional>
499
+ <attribute name="xml:lang"/>
500
+ </optional>
501
+ <optional>
502
+ <attribute name="ascii"/>
503
+ </optional>
504
+ <text/>
505
+ </element>
506
+ </define>
507
+ <define name="phone">
508
+ <element name="phone">
509
+ <optional>
510
+ <attribute name="xml:base"/>
511
+ </optional>
512
+ <optional>
513
+ <attribute name="xml:lang"/>
514
+ </optional>
515
+ <text/>
516
+ </element>
517
+ </define>
518
+ <define name="facsimile">
519
+ <element name="facsimile">
520
+ <optional>
521
+ <attribute name="xml:base"/>
522
+ </optional>
523
+ <optional>
524
+ <attribute name="xml:lang"/>
525
+ </optional>
526
+ <text/>
527
+ </element>
528
+ </define>
529
+ <define name="email">
530
+ <element name="email">
531
+ <optional>
532
+ <attribute name="xml:base"/>
533
+ </optional>
534
+ <optional>
535
+ <attribute name="xml:lang"/>
536
+ </optional>
537
+ <optional>
538
+ <attribute name="ascii"/>
539
+ </optional>
540
+ <text/>
541
+ </element>
542
+ </define>
543
+ <define name="uri">
544
+ <element name="uri">
545
+ <optional>
546
+ <attribute name="xml:base"/>
547
+ </optional>
548
+ <optional>
549
+ <attribute name="xml:lang"/>
550
+ </optional>
551
+ <text/>
552
+ </element>
553
+ </define>
554
+ <define name="date">
555
+ <element name="date">
556
+ <optional>
557
+ <attribute name="xml:base"/>
558
+ </optional>
559
+ <optional>
560
+ <attribute name="xml:lang"/>
561
+ </optional>
562
+ <optional>
563
+ <attribute name="day"/>
564
+ </optional>
565
+ <optional>
566
+ <attribute name="month"/>
567
+ </optional>
568
+ <optional>
569
+ <attribute name="year"/>
570
+ </optional>
571
+ <text/>
572
+ </element>
573
+ </define>
574
+ <define name="area">
575
+ <element name="area">
576
+ <optional>
577
+ <attribute name="xml:base"/>
578
+ </optional>
579
+ <optional>
580
+ <attribute name="xml:lang"/>
581
+ </optional>
582
+ <text/>
583
+ </element>
584
+ </define>
585
+ <define name="workgroup">
586
+ <element name="workgroup">
587
+ <optional>
588
+ <attribute name="xml:base"/>
589
+ </optional>
590
+ <optional>
591
+ <attribute name="xml:lang"/>
592
+ </optional>
593
+ <text/>
594
+ </element>
595
+ </define>
596
+ <define name="keyword">
597
+ <element name="keyword">
598
+ <optional>
599
+ <attribute name="xml:base"/>
600
+ </optional>
601
+ <optional>
602
+ <attribute name="xml:lang"/>
603
+ </optional>
604
+ <text/>
605
+ </element>
606
+ </define>
607
+ <define name="abstract">
608
+ <element name="abstract">
609
+ <optional>
610
+ <attribute name="xml:base"/>
611
+ </optional>
612
+ <optional>
613
+ <attribute name="xml:lang"/>
614
+ </optional>
615
+ <optional>
616
+ <attribute name="anchor">
617
+ <data type="ID"/>
618
+ </attribute>
619
+ </optional>
620
+ <optional>
621
+ <attribute name="pn">
622
+ <data type="ID"/>
623
+ </attribute>
624
+ </optional>
625
+ <oneOrMore>
626
+ <choice>
627
+ <ref name="dl"/>
628
+ <ref name="ol"/>
629
+ <ref name="t"/>
630
+ <ref name="ul"/>
631
+ </choice>
632
+ </oneOrMore>
633
+ </element>
634
+ </define>
635
+ <define name="note">
636
+ <element name="note">
637
+ <optional>
638
+ <attribute name="xml:base"/>
639
+ </optional>
640
+ <optional>
641
+ <attribute name="xml:lang"/>
642
+ </optional>
643
+ <optional>
644
+ <attribute name="title"/>
645
+ </optional>
646
+ <optional>
647
+ <attribute name="pn">
648
+ <data type="ID"/>
649
+ </attribute>
650
+ </optional>
651
+ <optional>
652
+ <attribute name="removeInRFC" a:defaultValue="false">
653
+ <choice>
654
+ <value>true</value>
655
+ <value>false</value>
656
+ </choice>
657
+ </attribute>
658
+ </optional>
659
+ <optional>
660
+ <ref name="name"/>
661
+ </optional>
662
+ <oneOrMore>
663
+ <choice>
664
+ <ref name="dl"/>
665
+ <ref name="ol"/>
666
+ <ref name="t"/>
667
+ <ref name="ul"/>
668
+ </choice>
669
+ </oneOrMore>
670
+ </element>
671
+ </define>
672
+ <define name="boilerplate">
673
+ <element name="boilerplate">
674
+ <optional>
675
+ <attribute name="xml:base"/>
676
+ </optional>
677
+ <optional>
678
+ <attribute name="xml:lang"/>
679
+ </optional>
680
+ <oneOrMore>
681
+ <ref name="section"/>
682
+ </oneOrMore>
683
+ </element>
684
+ </define>
685
+ <define name="toc">
686
+ <element name="toc">
687
+ <optional>
688
+ <attribute name="xml:base"/>
689
+ </optional>
690
+ <optional>
691
+ <attribute name="xml:lang"/>
692
+ </optional>
693
+ <zeroOrMore>
694
+ <ref name="section"/>
695
+ </zeroOrMore>
696
+ </element>
697
+ </define>
698
+ <define name="middle">
699
+ <element name="middle">
700
+ <optional>
701
+ <attribute name="xml:base"/>
702
+ </optional>
703
+ <optional>
704
+ <attribute name="xml:lang"/>
705
+ </optional>
706
+ <oneOrMore>
707
+ <ref name="section"/>
708
+ </oneOrMore>
709
+ </element>
710
+ </define>
711
+ <define name="section">
712
+ <element name="section">
713
+ <optional>
714
+ <attribute name="xml:base"/>
715
+ </optional>
716
+ <optional>
717
+ <attribute name="xml:lang"/>
718
+ </optional>
719
+ <optional>
720
+ <attribute name="anchor">
721
+ <data type="ID"/>
722
+ </attribute>
723
+ </optional>
724
+ <optional>
725
+ <attribute name="pn">
726
+ <data type="ID"/>
727
+ </attribute>
728
+ </optional>
729
+ <optional>
730
+ <attribute name="title"/>
731
+ </optional>
732
+ <optional>
733
+ <attribute name="numbered" a:defaultValue="true">
734
+ <choice>
735
+ <value>true</value>
736
+ <value>false</value>
737
+ </choice>
738
+ </attribute>
739
+ </optional>
740
+ <optional>
741
+ <attribute name="toc" a:defaultValue="default">
742
+ <choice>
743
+ <value>include</value>
744
+ <value>exclude</value>
745
+ <value>default</value>
746
+ </choice>
747
+ </attribute>
748
+ </optional>
749
+ <optional>
750
+ <attribute name="removeInRFC" a:defaultValue="false">
751
+ <choice>
752
+ <value>true</value>
753
+ <value>false</value>
754
+ </choice>
755
+ </attribute>
756
+ </optional>
757
+ <optional>
758
+ <ref name="name"/>
759
+ </optional>
760
+ <zeroOrMore>
761
+ <choice>
762
+ <ref name="artset"/>
763
+ <ref name="artwork"/>
764
+ <ref name="aside"/>
765
+ <ref name="author"/>
766
+ <ref name="blockquote"/>
767
+ <ref name="contact"/>
768
+ <ref name="dl"/>
769
+ <ref name="figure"/>
770
+ <ref name="iref"/>
771
+ <ref name="ol"/>
772
+ <ref name="sourcecode"/>
773
+ <ref name="t"/>
774
+ <ref name="table"/>
775
+ <ref name="texttable"/>
776
+ <ref name="ul"/>
777
+ </choice>
778
+ </zeroOrMore>
779
+ <zeroOrMore>
780
+ <ref name="section"/>
781
+ </zeroOrMore>
782
+ </element>
783
+ </define>
784
+ <define name="name">
785
+ <element name="name">
786
+ <optional>
787
+ <attribute name="xml:base"/>
788
+ </optional>
789
+ <optional>
790
+ <attribute name="xml:lang"/>
791
+ </optional>
792
+ <optional>
793
+ <attribute name="slugifiedName">
794
+ <data type="ID"/>
795
+ </attribute>
796
+ </optional>
797
+ <zeroOrMore>
798
+ <choice>
799
+ <text/>
800
+ <ref name="bcp14"/>
801
+ <ref name="br"/>
802
+ <ref name="cref"/>
803
+ <ref name="em"/>
804
+ <ref name="eref"/>
805
+ <ref name="iref"/>
806
+ <ref name="relref"/>
807
+ <ref name="strong"/>
808
+ <ref name="sub"/>
809
+ <ref name="sup"/>
810
+ <ref name="tt"/>
811
+ <ref name="xref"/>
812
+ </choice>
813
+ </zeroOrMore>
814
+ </element>
815
+ </define>
816
+ <define name="br">
817
+ <element name="br">
818
+ <optional>
819
+ <attribute name="xml:base"/>
820
+ </optional>
821
+ <optional>
822
+ <attribute name="xml:lang"/>
823
+ </optional>
824
+ <empty/>
825
+ </element>
826
+ </define>
827
+ <define name="t">
828
+ <element name="t">
829
+ <optional>
830
+ <attribute name="xml:base"/>
831
+ </optional>
832
+ <optional>
833
+ <attribute name="xml:lang"/>
834
+ </optional>
835
+ <optional>
836
+ <attribute name="anchor">
837
+ <data type="ID"/>
838
+ </attribute>
839
+ </optional>
840
+ <optional>
841
+ <attribute name="pn">
842
+ <data type="ID"/>
843
+ </attribute>
844
+ </optional>
845
+ <optional>
846
+ <attribute name="hangText"/>
847
+ </optional>
848
+ <optional>
849
+ <attribute name="indent" a:defaultValue="0"/>
850
+ </optional>
851
+ <optional>
852
+ <attribute name="keepWithNext" a:defaultValue="false">
853
+ <choice>
854
+ <value>true</value>
855
+ <value>false</value>
856
+ </choice>
857
+ </attribute>
858
+ </optional>
859
+ <optional>
860
+ <attribute name="keepWithPrevious" a:defaultValue="false">
861
+ <choice>
862
+ <value>true</value>
863
+ <value>false</value>
864
+ </choice>
865
+ </attribute>
866
+ </optional>
867
+ <zeroOrMore>
868
+ <choice>
869
+ <text/>
870
+ <ref name="bcp14"/>
871
+ <ref name="br"/>
872
+ <ref name="contact"/>
873
+ <ref name="cref"/>
874
+ <ref name="em"/>
875
+ <ref name="eref"/>
876
+ <ref name="iref"/>
877
+ <ref name="list"/>
878
+ <ref name="relref"/>
879
+ <ref name="spanx"/>
880
+ <ref name="strong"/>
881
+ <ref name="sub"/>
882
+ <ref name="sup"/>
883
+ <ref name="tt"/>
884
+ <ref name="u"/>
885
+ <ref name="vspace"/>
886
+ <ref name="xref"/>
887
+ </choice>
888
+ </zeroOrMore>
889
+ </element>
890
+ </define>
891
+ <define name="aside">
892
+ <element name="aside">
893
+ <optional>
894
+ <attribute name="xml:base"/>
895
+ </optional>
896
+ <optional>
897
+ <attribute name="xml:lang"/>
898
+ </optional>
899
+ <optional>
900
+ <attribute name="anchor">
901
+ <data type="ID"/>
902
+ </attribute>
903
+ </optional>
904
+ <optional>
905
+ <attribute name="pn">
906
+ <data type="ID"/>
907
+ </attribute>
908
+ </optional>
909
+ <zeroOrMore>
910
+ <choice>
911
+ <ref name="artset"/>
912
+ <ref name="artwork"/>
913
+ <ref name="blockquote"/>
914
+ <ref name="dl"/>
915
+ <ref name="figure"/>
916
+ <ref name="iref"/>
917
+ <ref name="ol"/>
918
+ <ref name="t"/>
919
+ <ref name="table"/>
920
+ <ref name="ul"/>
921
+ </choice>
922
+ </zeroOrMore>
923
+ </element>
924
+ </define>
925
+ <define name="blockquote">
926
+ <element name="blockquote">
927
+ <optional>
928
+ <attribute name="xml:base"/>
929
+ </optional>
930
+ <optional>
931
+ <attribute name="xml:lang"/>
932
+ </optional>
933
+ <optional>
934
+ <attribute name="anchor">
935
+ <data type="ID"/>
936
+ </attribute>
937
+ </optional>
938
+ <optional>
939
+ <attribute name="pn">
940
+ <data type="ID"/>
941
+ </attribute>
942
+ </optional>
943
+ <optional>
944
+ <attribute name="cite"/>
945
+ </optional>
946
+ <optional>
947
+ <attribute name="quotedFrom"/>
948
+ </optional>
949
+ <choice>
950
+ <oneOrMore>
951
+ <choice>
952
+ <ref name="artset"/>
953
+ <ref name="artwork"/>
954
+ <ref name="dl"/>
955
+ <ref name="figure"/>
956
+ <ref name="ol"/>
957
+ <ref name="sourcecode"/>
958
+ <ref name="t"/>
959
+ <ref name="ul"/>
960
+ </choice>
961
+ </oneOrMore>
962
+ <oneOrMore>
963
+ <choice>
964
+ <text/>
965
+ <ref name="bcp14"/>
966
+ <ref name="br"/>
967
+ <ref name="cref"/>
968
+ <ref name="em"/>
969
+ <ref name="eref"/>
970
+ <ref name="iref"/>
971
+ <ref name="relref"/>
972
+ <ref name="strong"/>
973
+ <ref name="sub"/>
974
+ <ref name="sup"/>
975
+ <ref name="tt"/>
976
+ <ref name="u"/>
977
+ <ref name="xref"/>
978
+ </choice>
979
+ </oneOrMore>
980
+ </choice>
981
+ </element>
982
+ </define>
983
+ <define name="list">
984
+ <element name="list">
985
+ <optional>
986
+ <attribute name="xml:base"/>
987
+ </optional>
988
+ <optional>
989
+ <attribute name="xml:lang"/>
990
+ </optional>
991
+ <optional>
992
+ <attribute name="style" a:defaultValue="empty"/>
993
+ </optional>
994
+ <optional>
995
+ <attribute name="hangIndent"/>
996
+ </optional>
997
+ <optional>
998
+ <attribute name="counter"/>
999
+ </optional>
1000
+ <optional>
1001
+ <attribute name="pn">
1002
+ <data type="ID"/>
1003
+ </attribute>
1004
+ </optional>
1005
+ <oneOrMore>
1006
+ <ref name="t"/>
1007
+ </oneOrMore>
1008
+ </element>
1009
+ </define>
1010
+ <define name="ol">
1011
+ <element name="ol">
1012
+ <optional>
1013
+ <attribute name="xml:base"/>
1014
+ </optional>
1015
+ <optional>
1016
+ <attribute name="xml:lang"/>
1017
+ </optional>
1018
+ <optional>
1019
+ <attribute name="anchor">
1020
+ <data type="ID"/>
1021
+ </attribute>
1022
+ </optional>
1023
+ <optional>
1024
+ <attribute name="type" a:defaultValue="1"/>
1025
+ </optional>
1026
+ <optional>
1027
+ <attribute name="start" a:defaultValue="1"/>
1028
+ </optional>
1029
+ <optional>
1030
+ <attribute name="group"/>
1031
+ </optional>
1032
+ <optional>
1033
+ <attribute name="spacing" a:defaultValue="normal">
1034
+ <choice>
1035
+ <value>normal</value>
1036
+ <value>compact</value>
1037
+ </choice>
1038
+ </attribute>
1039
+ </optional>
1040
+ <optional>
1041
+ <attribute name="indent" a:defaultValue="adaptive">
1042
+ <choice>
1043
+ <text/>
1044
+ <value>adaptive</value>
1045
+ </choice>
1046
+ </attribute>
1047
+ </optional>
1048
+ <optional>
1049
+ <attribute name="pn">
1050
+ <data type="ID"/>
1051
+ </attribute>
1052
+ </optional>
1053
+ <oneOrMore>
1054
+ <ref name="li"/>
1055
+ </oneOrMore>
1056
+ </element>
1057
+ </define>
1058
+ <define name="ul">
1059
+ <element name="ul">
1060
+ <optional>
1061
+ <attribute name="xml:base"/>
1062
+ </optional>
1063
+ <optional>
1064
+ <attribute name="xml:lang"/>
1065
+ </optional>
1066
+ <optional>
1067
+ <attribute name="anchor">
1068
+ <data type="ID"/>
1069
+ </attribute>
1070
+ </optional>
1071
+ <optional>
1072
+ <attribute name="spacing" a:defaultValue="normal">
1073
+ <choice>
1074
+ <value>normal</value>
1075
+ <value>compact</value>
1076
+ </choice>
1077
+ </attribute>
1078
+ </optional>
1079
+ <optional>
1080
+ <attribute name="empty" a:defaultValue="false">
1081
+ <choice>
1082
+ <value>true</value>
1083
+ <value>false</value>
1084
+ </choice>
1085
+ </attribute>
1086
+ <optional>
1087
+ <attribute name="bare" a:defaultValue="false">
1088
+ <choice>
1089
+ <value>true</value>
1090
+ <value>false</value>
1091
+ </choice>
1092
+ </attribute>
1093
+ </optional>
1094
+ </optional>
1095
+ <optional>
1096
+ <attribute name="indent" a:defaultValue="3"/>
1097
+ </optional>
1098
+ <optional>
1099
+ <attribute name="pn">
1100
+ <data type="ID"/>
1101
+ </attribute>
1102
+ </optional>
1103
+ <oneOrMore>
1104
+ <ref name="li"/>
1105
+ </oneOrMore>
1106
+ </element>
1107
+ </define>
1108
+ <define name="li">
1109
+ <element name="li">
1110
+ <optional>
1111
+ <attribute name="xml:base"/>
1112
+ </optional>
1113
+ <optional>
1114
+ <attribute name="xml:lang"/>
1115
+ </optional>
1116
+ <optional>
1117
+ <attribute name="anchor">
1118
+ <data type="ID"/>
1119
+ </attribute>
1120
+ </optional>
1121
+ <optional>
1122
+ <attribute name="derivedCounter"/>
1123
+ </optional>
1124
+ <optional>
1125
+ <attribute name="pn">
1126
+ <data type="ID"/>
1127
+ </attribute>
1128
+ </optional>
1129
+ <choice>
1130
+ <oneOrMore>
1131
+ <choice>
1132
+ <ref name="artset"/>
1133
+ <ref name="artwork"/>
1134
+ <ref name="blockquote"/>
1135
+ <ref name="dl"/>
1136
+ <ref name="figure"/>
1137
+ <ref name="ol"/>
1138
+ <ref name="sourcecode"/>
1139
+ <ref name="t"/>
1140
+ <ref name="table"/>
1141
+ <ref name="ul"/>
1142
+ </choice>
1143
+ </oneOrMore>
1144
+ <oneOrMore>
1145
+ <choice>
1146
+ <text/>
1147
+ <ref name="bcp14"/>
1148
+ <ref name="br"/>
1149
+ <ref name="cref"/>
1150
+ <ref name="em"/>
1151
+ <ref name="eref"/>
1152
+ <ref name="iref"/>
1153
+ <ref name="relref"/>
1154
+ <ref name="strong"/>
1155
+ <ref name="sub"/>
1156
+ <ref name="sup"/>
1157
+ <ref name="tt"/>
1158
+ <ref name="u"/>
1159
+ <ref name="xref"/>
1160
+ </choice>
1161
+ </oneOrMore>
1162
+ </choice>
1163
+ </element>
1164
+ </define>
1165
+ <define name="dl">
1166
+ <element name="dl">
1167
+ <optional>
1168
+ <attribute name="xml:base"/>
1169
+ </optional>
1170
+ <optional>
1171
+ <attribute name="xml:lang"/>
1172
+ </optional>
1173
+ <optional>
1174
+ <attribute name="anchor">
1175
+ <data type="ID"/>
1176
+ </attribute>
1177
+ </optional>
1178
+ <optional>
1179
+ <attribute name="spacing" a:defaultValue="normal">
1180
+ <choice>
1181
+ <value>normal</value>
1182
+ <value>compact</value>
1183
+ </choice>
1184
+ </attribute>
1185
+ </optional>
1186
+ <optional>
1187
+ <attribute name="newline" a:defaultValue="false">
1188
+ <choice>
1189
+ <value>true</value>
1190
+ <value>false</value>
1191
+ </choice>
1192
+ </attribute>
1193
+ </optional>
1194
+ <optional>
1195
+ <attribute name="indent" a:defaultValue="3"/>
1196
+ </optional>
1197
+ <optional>
1198
+ <attribute name="pn">
1199
+ <data type="ID"/>
1200
+ </attribute>
1201
+ </optional>
1202
+ <oneOrMore>
1203
+ <ref name="dt"/>
1204
+ <ref name="dd"/>
1205
+ </oneOrMore>
1206
+ </element>
1207
+ </define>
1208
+ <define name="dt">
1209
+ <element name="dt">
1210
+ <optional>
1211
+ <attribute name="xml:base"/>
1212
+ </optional>
1213
+ <optional>
1214
+ <attribute name="xml:lang"/>
1215
+ </optional>
1216
+ <optional>
1217
+ <attribute name="anchor">
1218
+ <data type="ID"/>
1219
+ </attribute>
1220
+ </optional>
1221
+ <optional>
1222
+ <attribute name="pn">
1223
+ <data type="ID"/>
1224
+ </attribute>
1225
+ </optional>
1226
+ <zeroOrMore>
1227
+ <choice>
1228
+ <text/>
1229
+ <ref name="bcp14"/>
1230
+ <ref name="br"/>
1231
+ <ref name="cref"/>
1232
+ <ref name="em"/>
1233
+ <ref name="eref"/>
1234
+ <ref name="iref"/>
1235
+ <ref name="relref"/>
1236
+ <ref name="strong"/>
1237
+ <ref name="sub"/>
1238
+ <ref name="sup"/>
1239
+ <ref name="tt"/>
1240
+ <ref name="xref"/>
1241
+ </choice>
1242
+ </zeroOrMore>
1243
+ </element>
1244
+ </define>
1245
+ <define name="dd">
1246
+ <element name="dd">
1247
+ <optional>
1248
+ <attribute name="xml:base"/>
1249
+ </optional>
1250
+ <optional>
1251
+ <attribute name="xml:lang"/>
1252
+ </optional>
1253
+ <optional>
1254
+ <attribute name="anchor">
1255
+ <data type="ID"/>
1256
+ </attribute>
1257
+ </optional>
1258
+ <optional>
1259
+ <attribute name="pn">
1260
+ <data type="ID"/>
1261
+ </attribute>
1262
+ </optional>
1263
+ <choice>
1264
+ <oneOrMore>
1265
+ <choice>
1266
+ <ref name="artset"/>
1267
+ <ref name="artwork"/>
1268
+ <ref name="dl"/>
1269
+ <ref name="figure"/>
1270
+ <ref name="ol"/>
1271
+ <ref name="sourcecode"/>
1272
+ <ref name="t"/>
1273
+ <ref name="table"/>
1274
+ <ref name="ul"/>
1275
+ </choice>
1276
+ </oneOrMore>
1277
+ <oneOrMore>
1278
+ <choice>
1279
+ <text/>
1280
+ <ref name="bcp14"/>
1281
+ <ref name="br"/>
1282
+ <ref name="cref"/>
1283
+ <ref name="em"/>
1284
+ <ref name="eref"/>
1285
+ <ref name="iref"/>
1286
+ <ref name="relref"/>
1287
+ <ref name="strong"/>
1288
+ <ref name="sub"/>
1289
+ <ref name="sup"/>
1290
+ <ref name="tt"/>
1291
+ <ref name="u"/>
1292
+ <ref name="xref"/>
1293
+ </choice>
1294
+ </oneOrMore>
1295
+ </choice>
1296
+ </element>
1297
+ </define>
1298
+ <define name="xref">
1299
+ <element name="xref">
1300
+ <optional>
1301
+ <attribute name="xml:base"/>
1302
+ </optional>
1303
+ <optional>
1304
+ <attribute name="xml:lang"/>
1305
+ </optional>
1306
+ <attribute name="target">
1307
+ <data type="IDREF"/>
1308
+ </attribute>
1309
+ <optional>
1310
+ <attribute name="pageno" a:defaultValue="false">
1311
+ <choice>
1312
+ <value>true</value>
1313
+ <value>false</value>
1314
+ </choice>
1315
+ </attribute>
1316
+ </optional>
1317
+ <optional>
1318
+ <attribute name="format" a:defaultValue="default">
1319
+ <choice>
1320
+ <value>default</value>
1321
+ <value>title</value>
1322
+ <value>counter</value>
1323
+ <value>none</value>
1324
+ </choice>
1325
+ </attribute>
1326
+ </optional>
1327
+ <optional>
1328
+ <attribute name="derivedContent"/>
1329
+ </optional>
1330
+ <optional>
1331
+ <attribute name="sectionFormat" a:defaultValue="of">
1332
+ <choice>
1333
+ <value>of</value>
1334
+ <value>comma</value>
1335
+ <value>parens</value>
1336
+ <value>bare</value>
1337
+ </choice>
1338
+ </attribute>
1339
+ </optional>
1340
+ <optional>
1341
+ <attribute name="section"/>
1342
+ </optional>
1343
+ <optional>
1344
+ <attribute name="relative"/>
1345
+ </optional>
1346
+ <optional>
1347
+ <attribute name="derivedLink"/>
1348
+ </optional>
1349
+ <zeroOrMore>
1350
+ <choice>
1351
+ <text/>
1352
+ <ref name="em"/>
1353
+ <ref name="strong"/>
1354
+ <ref name="sub"/>
1355
+ <ref name="sup"/>
1356
+ <ref name="tt"/>
1357
+ </choice>
1358
+ </zeroOrMore>
1359
+ </element>
1360
+ </define>
1361
+ <define name="relref">
1362
+ <element name="relref">
1363
+ <optional>
1364
+ <attribute name="xml:base"/>
1365
+ </optional>
1366
+ <optional>
1367
+ <attribute name="xml:lang"/>
1368
+ </optional>
1369
+ <attribute name="target">
1370
+ <data type="IDREF"/>
1371
+ </attribute>
1372
+ <optional>
1373
+ <attribute name="displayFormat" a:defaultValue="of">
1374
+ <choice>
1375
+ <value>of</value>
1376
+ <value>comma</value>
1377
+ <value>parens</value>
1378
+ <value>bare</value>
1379
+ </choice>
1380
+ </attribute>
1381
+ </optional>
1382
+ <optional>
1383
+ <attribute name="derivedContent"/>
1384
+ </optional>
1385
+ <attribute name="section"/>
1386
+ <optional>
1387
+ <attribute name="relative"/>
1388
+ </optional>
1389
+ <optional>
1390
+ <attribute name="derivedLink"/>
1391
+ </optional>
1392
+ <text/>
1393
+ </element>
1394
+ </define>
1395
+ <define name="eref">
1396
+ <element name="eref">
1397
+ <optional>
1398
+ <attribute name="xml:base"/>
1399
+ </optional>
1400
+ <optional>
1401
+ <attribute name="xml:lang"/>
1402
+ </optional>
1403
+ <optional>
1404
+ <attribute name="brackets" a:defaultValue="none">
1405
+ <choice>
1406
+ <value>none</value>
1407
+ <value>angle</value>
1408
+ </choice>
1409
+ </attribute>
1410
+ </optional>
1411
+ <attribute name="target"/>
1412
+ <text/>
1413
+ </element>
1414
+ </define>
1415
+ <define name="iref">
1416
+ <element name="iref">
1417
+ <optional>
1418
+ <attribute name="xml:base"/>
1419
+ </optional>
1420
+ <optional>
1421
+ <attribute name="xml:lang"/>
1422
+ </optional>
1423
+ <attribute name="item"/>
1424
+ <optional>
1425
+ <attribute name="subitem" a:defaultValue=""/>
1426
+ </optional>
1427
+ <optional>
1428
+ <attribute name="primary" a:defaultValue="false">
1429
+ <choice>
1430
+ <value>true</value>
1431
+ <value>false</value>
1432
+ </choice>
1433
+ </attribute>
1434
+ </optional>
1435
+ <optional>
1436
+ <attribute name="pn">
1437
+ <data type="ID"/>
1438
+ </attribute>
1439
+ </optional>
1440
+ <empty/>
1441
+ </element>
1442
+ </define>
1443
+ <define name="cref">
1444
+ <element name="cref">
1445
+ <optional>
1446
+ <attribute name="xml:base"/>
1447
+ </optional>
1448
+ <optional>
1449
+ <attribute name="xml:lang"/>
1450
+ </optional>
1451
+ <optional>
1452
+ <attribute name="anchor">
1453
+ <data type="ID"/>
1454
+ </attribute>
1455
+ </optional>
1456
+ <optional>
1457
+ <attribute name="source"/>
1458
+ </optional>
1459
+ <optional>
1460
+ <attribute name="display" a:defaultValue="true">
1461
+ <choice>
1462
+ <value>true</value>
1463
+ <value>false</value>
1464
+ </choice>
1465
+ </attribute>
1466
+ </optional>
1467
+ <zeroOrMore>
1468
+ <choice>
1469
+ <text/>
1470
+ <ref name="br"/>
1471
+ <ref name="em"/>
1472
+ <ref name="eref"/>
1473
+ <ref name="relref"/>
1474
+ <ref name="strong"/>
1475
+ <ref name="sub"/>
1476
+ <ref name="sup"/>
1477
+ <ref name="tt"/>
1478
+ <ref name="xref"/>
1479
+ </choice>
1480
+ </zeroOrMore>
1481
+ </element>
1482
+ </define>
1483
+ <define name="tt">
1484
+ <element name="tt">
1485
+ <optional>
1486
+ <attribute name="xml:base"/>
1487
+ </optional>
1488
+ <optional>
1489
+ <attribute name="xml:lang"/>
1490
+ </optional>
1491
+ <zeroOrMore>
1492
+ <choice>
1493
+ <text/>
1494
+ <ref name="bcp14"/>
1495
+ <ref name="br"/>
1496
+ <ref name="cref"/>
1497
+ <ref name="em"/>
1498
+ <ref name="eref"/>
1499
+ <ref name="iref"/>
1500
+ <ref name="relref"/>
1501
+ <ref name="strong"/>
1502
+ <ref name="sub"/>
1503
+ <ref name="sup"/>
1504
+ <ref name="xref"/>
1505
+ </choice>
1506
+ </zeroOrMore>
1507
+ </element>
1508
+ </define>
1509
+ <define name="strong">
1510
+ <element name="strong">
1511
+ <optional>
1512
+ <attribute name="xml:base"/>
1513
+ </optional>
1514
+ <optional>
1515
+ <attribute name="xml:lang"/>
1516
+ </optional>
1517
+ <zeroOrMore>
1518
+ <choice>
1519
+ <text/>
1520
+ <ref name="bcp14"/>
1521
+ <ref name="br"/>
1522
+ <ref name="cref"/>
1523
+ <ref name="em"/>
1524
+ <ref name="eref"/>
1525
+ <ref name="iref"/>
1526
+ <ref name="relref"/>
1527
+ <ref name="sub"/>
1528
+ <ref name="sup"/>
1529
+ <ref name="tt"/>
1530
+ <ref name="xref"/>
1531
+ </choice>
1532
+ </zeroOrMore>
1533
+ </element>
1534
+ </define>
1535
+ <define name="em">
1536
+ <element name="em">
1537
+ <optional>
1538
+ <attribute name="xml:base"/>
1539
+ </optional>
1540
+ <optional>
1541
+ <attribute name="xml:lang"/>
1542
+ </optional>
1543
+ <zeroOrMore>
1544
+ <choice>
1545
+ <text/>
1546
+ <ref name="bcp14"/>
1547
+ <ref name="br"/>
1548
+ <ref name="cref"/>
1549
+ <ref name="eref"/>
1550
+ <ref name="iref"/>
1551
+ <ref name="relref"/>
1552
+ <ref name="strong"/>
1553
+ <ref name="sub"/>
1554
+ <ref name="sup"/>
1555
+ <ref name="tt"/>
1556
+ <ref name="xref"/>
1557
+ </choice>
1558
+ </zeroOrMore>
1559
+ </element>
1560
+ </define>
1561
+ <define name="sub">
1562
+ <element name="sub">
1563
+ <optional>
1564
+ <attribute name="xml:base"/>
1565
+ </optional>
1566
+ <optional>
1567
+ <attribute name="xml:lang"/>
1568
+ </optional>
1569
+ <zeroOrMore>
1570
+ <choice>
1571
+ <text/>
1572
+ <ref name="bcp14"/>
1573
+ <ref name="cref"/>
1574
+ <ref name="em"/>
1575
+ <ref name="eref"/>
1576
+ <ref name="iref"/>
1577
+ <ref name="relref"/>
1578
+ <ref name="strong"/>
1579
+ <ref name="tt"/>
1580
+ <ref name="xref"/>
1581
+ </choice>
1582
+ </zeroOrMore>
1583
+ </element>
1584
+ </define>
1585
+ <define name="sup">
1586
+ <element name="sup">
1587
+ <optional>
1588
+ <attribute name="xml:base"/>
1589
+ </optional>
1590
+ <optional>
1591
+ <attribute name="xml:lang"/>
1592
+ </optional>
1593
+ <zeroOrMore>
1594
+ <choice>
1595
+ <text/>
1596
+ <ref name="bcp14"/>
1597
+ <ref name="cref"/>
1598
+ <ref name="em"/>
1599
+ <ref name="eref"/>
1600
+ <ref name="iref"/>
1601
+ <ref name="relref"/>
1602
+ <ref name="strong"/>
1603
+ <ref name="tt"/>
1604
+ <ref name="xref"/>
1605
+ </choice>
1606
+ </zeroOrMore>
1607
+ </element>
1608
+ </define>
1609
+ <define name="spanx">
1610
+ <element name="spanx">
1611
+ <optional>
1612
+ <attribute name="xml:base"/>
1613
+ </optional>
1614
+ <optional>
1615
+ <attribute name="xml:lang"/>
1616
+ </optional>
1617
+ <optional>
1618
+ <attribute name="xml:space" a:defaultValue="preserve">
1619
+ <choice>
1620
+ <value>default</value>
1621
+ <value>preserve</value>
1622
+ </choice>
1623
+ </attribute>
1624
+ </optional>
1625
+ <optional>
1626
+ <attribute name="style" a:defaultValue="emph"/>
1627
+ </optional>
1628
+ <text/>
1629
+ </element>
1630
+ </define>
1631
+ <define name="vspace">
1632
+ <element name="vspace">
1633
+ <optional>
1634
+ <attribute name="xml:base"/>
1635
+ </optional>
1636
+ <optional>
1637
+ <attribute name="xml:lang"/>
1638
+ </optional>
1639
+ <optional>
1640
+ <attribute name="blankLines" a:defaultValue="0"/>
1641
+ </optional>
1642
+ <empty/>
1643
+ </element>
1644
+ </define>
1645
+ <define name="figure">
1646
+ <element name="figure">
1647
+ <optional>
1648
+ <attribute name="xml:base"/>
1649
+ </optional>
1650
+ <optional>
1651
+ <attribute name="xml:lang"/>
1652
+ </optional>
1653
+ <optional>
1654
+ <attribute name="anchor">
1655
+ <data type="ID"/>
1656
+ </attribute>
1657
+ </optional>
1658
+ <optional>
1659
+ <attribute name="pn">
1660
+ <data type="ID"/>
1661
+ </attribute>
1662
+ </optional>
1663
+ <optional>
1664
+ <attribute name="title" a:defaultValue=""/>
1665
+ </optional>
1666
+ <optional>
1667
+ <attribute name="suppress-title" a:defaultValue="false">
1668
+ <choice>
1669
+ <value>true</value>
1670
+ <value>false</value>
1671
+ </choice>
1672
+ </attribute>
1673
+ </optional>
1674
+ <optional>
1675
+ <attribute name="src"/>
1676
+ </optional>
1677
+ <optional>
1678
+ <attribute name="originalSrc"/>
1679
+ </optional>
1680
+ <optional>
1681
+ <attribute name="align" a:defaultValue="left">
1682
+ <choice>
1683
+ <value>left</value>
1684
+ <value>center</value>
1685
+ <value>right</value>
1686
+ </choice>
1687
+ </attribute>
1688
+ </optional>
1689
+ <optional>
1690
+ <attribute name="alt" a:defaultValue=""/>
1691
+ </optional>
1692
+ <optional>
1693
+ <attribute name="width" a:defaultValue=""/>
1694
+ </optional>
1695
+ <optional>
1696
+ <attribute name="height" a:defaultValue=""/>
1697
+ </optional>
1698
+ <optional>
1699
+ <ref name="name"/>
1700
+ </optional>
1701
+ <zeroOrMore>
1702
+ <ref name="iref"/>
1703
+ </zeroOrMore>
1704
+ <optional>
1705
+ <ref name="preamble"/>
1706
+ </optional>
1707
+ <oneOrMore>
1708
+ <choice>
1709
+ <ref name="artset"/>
1710
+ <ref name="artwork"/>
1711
+ <ref name="sourcecode"/>
1712
+ </choice>
1713
+ </oneOrMore>
1714
+ <optional>
1715
+ <ref name="postamble"/>
1716
+ </optional>
1717
+ </element>
1718
+ </define>
1719
+ <define name="table">
1720
+ <element name="table">
1721
+ <optional>
1722
+ <attribute name="xml:base"/>
1723
+ </optional>
1724
+ <optional>
1725
+ <attribute name="xml:lang"/>
1726
+ </optional>
1727
+ <optional>
1728
+ <attribute name="align" a:defaultValue="center">
1729
+ <choice>
1730
+ <value>left</value>
1731
+ <value>center</value>
1732
+ <value>right</value>
1733
+ </choice>
1734
+ </attribute>
1735
+ </optional>
1736
+ <optional>
1737
+ <attribute name="anchor">
1738
+ <data type="ID"/>
1739
+ </attribute>
1740
+ </optional>
1741
+ <optional>
1742
+ <attribute name="pn">
1743
+ <data type="ID"/>
1744
+ </attribute>
1745
+ </optional>
1746
+ <optional>
1747
+ <ref name="name"/>
1748
+ </optional>
1749
+ <zeroOrMore>
1750
+ <ref name="iref"/>
1751
+ </zeroOrMore>
1752
+ <optional>
1753
+ <ref name="thead"/>
1754
+ </optional>
1755
+ <oneOrMore>
1756
+ <ref name="tbody"/>
1757
+ </oneOrMore>
1758
+ <optional>
1759
+ <ref name="tfoot"/>
1760
+ </optional>
1761
+ </element>
1762
+ </define>
1763
+ <define name="preamble">
1764
+ <element name="preamble">
1765
+ <optional>
1766
+ <attribute name="xml:base"/>
1767
+ </optional>
1768
+ <optional>
1769
+ <attribute name="xml:lang"/>
1770
+ </optional>
1771
+ <zeroOrMore>
1772
+ <choice>
1773
+ <text/>
1774
+ <ref name="bcp14"/>
1775
+ <ref name="cref"/>
1776
+ <ref name="em"/>
1777
+ <ref name="eref"/>
1778
+ <ref name="iref"/>
1779
+ <ref name="relref"/>
1780
+ <ref name="spanx"/>
1781
+ <ref name="strong"/>
1782
+ <ref name="sub"/>
1783
+ <ref name="sup"/>
1784
+ <ref name="tt"/>
1785
+ <ref name="u"/>
1786
+ <ref name="xref"/>
1787
+ </choice>
1788
+ </zeroOrMore>
1789
+ </element>
1790
+ </define>
1791
+ <define name="artset">
1792
+ <element name="artset">
1793
+ <optional>
1794
+ <attribute name="xml:base"/>
1795
+ </optional>
1796
+ <optional>
1797
+ <attribute name="xml:lang"/>
1798
+ </optional>
1799
+ <optional>
1800
+ <attribute name="anchor">
1801
+ <data type="ID"/>
1802
+ </attribute>
1803
+ </optional>
1804
+ <optional>
1805
+ <attribute name="pn">
1806
+ <data type="ID"/>
1807
+ </attribute>
1808
+ </optional>
1809
+ <oneOrMore>
1810
+ <ref name="artwork"/>
1811
+ </oneOrMore>
1812
+ </element>
1813
+ </define>
1814
+ <define name="artwork">
1815
+ <element name="artwork">
1816
+ <optional>
1817
+ <attribute name="xml:base"/>
1818
+ </optional>
1819
+ <optional>
1820
+ <attribute name="xml:lang"/>
1821
+ </optional>
1822
+ <optional>
1823
+ <attribute name="anchor">
1824
+ <data type="ID"/>
1825
+ </attribute>
1826
+ </optional>
1827
+ <optional>
1828
+ <attribute name="pn">
1829
+ <data type="ID"/>
1830
+ </attribute>
1831
+ </optional>
1832
+ <optional>
1833
+ <attribute name="xml:space"/>
1834
+ </optional>
1835
+ <optional>
1836
+ <attribute name="name" a:defaultValue=""/>
1837
+ </optional>
1838
+ <optional>
1839
+ <attribute name="type" a:defaultValue=""/>
1840
+ </optional>
1841
+ <optional>
1842
+ <attribute name="src"/>
1843
+ </optional>
1844
+ <optional>
1845
+ <attribute name="align" a:defaultValue="left">
1846
+ <choice>
1847
+ <value>left</value>
1848
+ <value>center</value>
1849
+ <value>right</value>
1850
+ </choice>
1851
+ </attribute>
1852
+ </optional>
1853
+ <optional>
1854
+ <attribute name="alt" a:defaultValue=""/>
1855
+ </optional>
1856
+ <optional>
1857
+ <attribute name="width" a:defaultValue=""/>
1858
+ </optional>
1859
+ <optional>
1860
+ <attribute name="height" a:defaultValue=""/>
1861
+ </optional>
1862
+ <optional>
1863
+ <attribute name="originalSrc"/>
1864
+ </optional>
1865
+ <choice>
1866
+ <zeroOrMore>
1867
+ <text/>
1868
+ </zeroOrMore>
1869
+ <ref name="svg"/>
1870
+ </choice>
1871
+ </element>
1872
+ </define>
1873
+ <include href="SVG-1.2-RFC.rng"/>
1874
+ <define name="sourcecode">
1875
+ <element name="sourcecode">
1876
+ <optional>
1877
+ <attribute name="xml:base"/>
1878
+ </optional>
1879
+ <optional>
1880
+ <attribute name="xml:lang"/>
1881
+ </optional>
1882
+ <optional>
1883
+ <attribute name="anchor">
1884
+ <data type="ID"/>
1885
+ </attribute>
1886
+ </optional>
1887
+ <optional>
1888
+ <attribute name="pn">
1889
+ <data type="ID"/>
1890
+ </attribute>
1891
+ </optional>
1892
+ <optional>
1893
+ <attribute name="name" a:defaultValue=""/>
1894
+ </optional>
1895
+ <optional>
1896
+ <attribute name="type" a:defaultValue=""/>
1897
+ </optional>
1898
+ <optional>
1899
+ <attribute name="markers" a:defaultValue="false">
1900
+ <choice>
1901
+ <value>true</value>
1902
+ <value>false</value>
1903
+ </choice>
1904
+ </attribute>
1905
+ </optional>
1906
+ <optional>
1907
+ <attribute name="src"/>
1908
+ </optional>
1909
+ <optional>
1910
+ <attribute name="originalSrc"/>
1911
+ </optional>
1912
+ <text/>
1913
+ </element>
1914
+ </define>
1915
+ <define name="thead">
1916
+ <element name="thead">
1917
+ <optional>
1918
+ <attribute name="xml:base"/>
1919
+ </optional>
1920
+ <optional>
1921
+ <attribute name="xml:lang"/>
1922
+ </optional>
1923
+ <optional>
1924
+ <attribute name="anchor">
1925
+ <data type="ID"/>
1926
+ </attribute>
1927
+ </optional>
1928
+ <oneOrMore>
1929
+ <ref name="tr"/>
1930
+ </oneOrMore>
1931
+ </element>
1932
+ </define>
1933
+ <define name="tbody">
1934
+ <element name="tbody">
1935
+ <optional>
1936
+ <attribute name="xml:base"/>
1937
+ </optional>
1938
+ <optional>
1939
+ <attribute name="xml:lang"/>
1940
+ </optional>
1941
+ <optional>
1942
+ <attribute name="anchor">
1943
+ <data type="ID"/>
1944
+ </attribute>
1945
+ </optional>
1946
+ <oneOrMore>
1947
+ <ref name="tr"/>
1948
+ </oneOrMore>
1949
+ </element>
1950
+ </define>
1951
+ <define name="tfoot">
1952
+ <element name="tfoot">
1953
+ <optional>
1954
+ <attribute name="xml:base"/>
1955
+ </optional>
1956
+ <optional>
1957
+ <attribute name="xml:lang"/>
1958
+ </optional>
1959
+ <optional>
1960
+ <attribute name="anchor">
1961
+ <data type="ID"/>
1962
+ </attribute>
1963
+ </optional>
1964
+ <oneOrMore>
1965
+ <ref name="tr"/>
1966
+ </oneOrMore>
1967
+ </element>
1968
+ </define>
1969
+ <define name="tr">
1970
+ <element name="tr">
1971
+ <optional>
1972
+ <attribute name="xml:base"/>
1973
+ </optional>
1974
+ <optional>
1975
+ <attribute name="xml:lang"/>
1976
+ </optional>
1977
+ <optional>
1978
+ <attribute name="anchor">
1979
+ <data type="ID"/>
1980
+ </attribute>
1981
+ </optional>
1982
+ <oneOrMore>
1983
+ <choice>
1984
+ <ref name="td"/>
1985
+ <ref name="th"/>
1986
+ </choice>
1987
+ </oneOrMore>
1988
+ </element>
1989
+ </define>
1990
+ <define name="td">
1991
+ <element name="td">
1992
+ <optional>
1993
+ <attribute name="xml:base"/>
1994
+ </optional>
1995
+ <optional>
1996
+ <attribute name="xml:lang"/>
1997
+ </optional>
1998
+ <optional>
1999
+ <attribute name="anchor">
2000
+ <data type="ID"/>
2001
+ </attribute>
2002
+ </optional>
2003
+ <optional>
2004
+ <attribute name="colspan" a:defaultValue="1"/>
2005
+ </optional>
2006
+ <optional>
2007
+ <attribute name="rowspan" a:defaultValue="1"/>
2008
+ </optional>
2009
+ <optional>
2010
+ <attribute name="align" a:defaultValue="left">
2011
+ <choice>
2012
+ <value>left</value>
2013
+ <value>center</value>
2014
+ <value>right</value>
2015
+ </choice>
2016
+ </attribute>
2017
+ </optional>
2018
+ <choice>
2019
+ <oneOrMore>
2020
+ <choice>
2021
+ <ref name="artset"/>
2022
+ <ref name="artwork"/>
2023
+ <ref name="dl"/>
2024
+ <ref name="figure"/>
2025
+ <ref name="ol"/>
2026
+ <ref name="sourcecode"/>
2027
+ <ref name="t"/>
2028
+ <ref name="ul"/>
2029
+ </choice>
2030
+ </oneOrMore>
2031
+ <zeroOrMore>
2032
+ <choice>
2033
+ <text/>
2034
+ <ref name="bcp14"/>
2035
+ <ref name="br"/>
2036
+ <ref name="cref"/>
2037
+ <ref name="em"/>
2038
+ <ref name="eref"/>
2039
+ <ref name="iref"/>
2040
+ <ref name="relref"/>
2041
+ <ref name="strong"/>
2042
+ <ref name="sub"/>
2043
+ <ref name="sup"/>
2044
+ <ref name="tt"/>
2045
+ <ref name="u"/>
2046
+ <ref name="xref"/>
2047
+ </choice>
2048
+ </zeroOrMore>
2049
+ </choice>
2050
+ </element>
2051
+ </define>
2052
+ <define name="th">
2053
+ <element name="th">
2054
+ <optional>
2055
+ <attribute name="xml:base"/>
2056
+ </optional>
2057
+ <optional>
2058
+ <attribute name="xml:lang"/>
2059
+ </optional>
2060
+ <optional>
2061
+ <attribute name="anchor">
2062
+ <data type="ID"/>
2063
+ </attribute>
2064
+ </optional>
2065
+ <optional>
2066
+ <attribute name="colspan" a:defaultValue="1"/>
2067
+ </optional>
2068
+ <optional>
2069
+ <attribute name="rowspan" a:defaultValue="1"/>
2070
+ </optional>
2071
+ <optional>
2072
+ <attribute name="align" a:defaultValue="left">
2073
+ <choice>
2074
+ <value>left</value>
2075
+ <value>center</value>
2076
+ <value>right</value>
2077
+ </choice>
2078
+ </attribute>
2079
+ </optional>
2080
+ <choice>
2081
+ <oneOrMore>
2082
+ <choice>
2083
+ <ref name="artset"/>
2084
+ <ref name="artwork"/>
2085
+ <ref name="dl"/>
2086
+ <ref name="figure"/>
2087
+ <ref name="ol"/>
2088
+ <ref name="sourcecode"/>
2089
+ <ref name="t"/>
2090
+ <ref name="ul"/>
2091
+ </choice>
2092
+ </oneOrMore>
2093
+ <zeroOrMore>
2094
+ <choice>
2095
+ <text/>
2096
+ <ref name="bcp14"/>
2097
+ <ref name="br"/>
2098
+ <ref name="cref"/>
2099
+ <ref name="em"/>
2100
+ <ref name="eref"/>
2101
+ <ref name="iref"/>
2102
+ <ref name="relref"/>
2103
+ <ref name="strong"/>
2104
+ <ref name="sub"/>
2105
+ <ref name="sup"/>
2106
+ <ref name="tt"/>
2107
+ <ref name="u"/>
2108
+ <ref name="xref"/>
2109
+ </choice>
2110
+ </zeroOrMore>
2111
+ </choice>
2112
+ </element>
2113
+ </define>
2114
+ <define name="postamble">
2115
+ <element name="postamble">
2116
+ <optional>
2117
+ <attribute name="xml:base"/>
2118
+ </optional>
2119
+ <optional>
2120
+ <attribute name="xml:lang"/>
2121
+ </optional>
2122
+ <zeroOrMore>
2123
+ <choice>
2124
+ <text/>
2125
+ <ref name="cref"/>
2126
+ <ref name="eref"/>
2127
+ <ref name="iref"/>
2128
+ <ref name="spanx"/>
2129
+ <ref name="xref"/>
2130
+ </choice>
2131
+ </zeroOrMore>
2132
+ </element>
2133
+ </define>
2134
+ <define name="texttable">
2135
+ <element name="texttable">
2136
+ <optional>
2137
+ <attribute name="xml:base"/>
2138
+ </optional>
2139
+ <optional>
2140
+ <attribute name="xml:lang"/>
2141
+ </optional>
2142
+ <optional>
2143
+ <attribute name="anchor">
2144
+ <data type="ID"/>
2145
+ </attribute>
2146
+ </optional>
2147
+ <optional>
2148
+ <attribute name="title" a:defaultValue=""/>
2149
+ </optional>
2150
+ <optional>
2151
+ <attribute name="suppress-title" a:defaultValue="false">
2152
+ <choice>
2153
+ <value>true</value>
2154
+ <value>false</value>
2155
+ </choice>
2156
+ </attribute>
2157
+ </optional>
2158
+ <optional>
2159
+ <attribute name="align" a:defaultValue="center">
2160
+ <choice>
2161
+ <value>left</value>
2162
+ <value>center</value>
2163
+ <value>right</value>
2164
+ </choice>
2165
+ </attribute>
2166
+ </optional>
2167
+ <optional>
2168
+ <attribute name="style" a:defaultValue="full">
2169
+ <choice>
2170
+ <value>all</value>
2171
+ <value>none</value>
2172
+ <value>headers</value>
2173
+ <value>full</value>
2174
+ </choice>
2175
+ </attribute>
2176
+ </optional>
2177
+ <optional>
2178
+ <ref name="name"/>
2179
+ </optional>
2180
+ <optional>
2181
+ <ref name="preamble"/>
2182
+ </optional>
2183
+ <oneOrMore>
2184
+ <ref name="ttcol"/>
2185
+ </oneOrMore>
2186
+ <zeroOrMore>
2187
+ <ref name="c"/>
2188
+ </zeroOrMore>
2189
+ <optional>
2190
+ <ref name="postamble"/>
2191
+ </optional>
2192
+ </element>
2193
+ </define>
2194
+ <define name="ttcol">
2195
+ <element name="ttcol">
2196
+ <optional>
2197
+ <attribute name="xml:base"/>
2198
+ </optional>
2199
+ <optional>
2200
+ <attribute name="xml:lang"/>
2201
+ </optional>
2202
+ <optional>
2203
+ <attribute name="width"/>
2204
+ </optional>
2205
+ <optional>
2206
+ <attribute name="align" a:defaultValue="left">
2207
+ <choice>
2208
+ <value>left</value>
2209
+ <value>center</value>
2210
+ <value>right</value>
2211
+ </choice>
2212
+ </attribute>
2213
+ </optional>
2214
+ <zeroOrMore>
2215
+ <choice>
2216
+ <ref name="cref"/>
2217
+ <ref name="eref"/>
2218
+ <ref name="iref"/>
2219
+ <ref name="xref"/>
2220
+ <text/>
2221
+ </choice>
2222
+ </zeroOrMore>
2223
+ </element>
2224
+ </define>
2225
+ <define name="c">
2226
+ <element name="c">
2227
+ <optional>
2228
+ <attribute name="xml:base"/>
2229
+ </optional>
2230
+ <optional>
2231
+ <attribute name="xml:lang"/>
2232
+ </optional>
2233
+ <zeroOrMore>
2234
+ <choice>
2235
+ <text/>
2236
+ <ref name="cref"/>
2237
+ <ref name="eref"/>
2238
+ <ref name="iref"/>
2239
+ <ref name="spanx"/>
2240
+ <ref name="xref"/>
2241
+ </choice>
2242
+ </zeroOrMore>
2243
+ </element>
2244
+ </define>
2245
+ <define name="bcp14">
2246
+ <element name="bcp14">
2247
+ <optional>
2248
+ <attribute name="xml:base"/>
2249
+ </optional>
2250
+ <optional>
2251
+ <attribute name="xml:lang"/>
2252
+ </optional>
2253
+ <text/>
2254
+ </element>
2255
+ </define>
2256
+ <define name="back">
2257
+ <element name="back">
2258
+ <optional>
2259
+ <attribute name="xml:base"/>
2260
+ </optional>
2261
+ <optional>
2262
+ <attribute name="xml:lang"/>
2263
+ </optional>
2264
+ <zeroOrMore>
2265
+ <ref name="displayreference"/>
2266
+ </zeroOrMore>
2267
+ <zeroOrMore>
2268
+ <ref name="references"/>
2269
+ </zeroOrMore>
2270
+ <zeroOrMore>
2271
+ <ref name="section"/>
2272
+ </zeroOrMore>
2273
+ </element>
2274
+ </define>
2275
+ <define name="displayreference">
2276
+ <element name="displayreference">
2277
+ <optional>
2278
+ <attribute name="xml:base"/>
2279
+ </optional>
2280
+ <optional>
2281
+ <attribute name="xml:lang"/>
2282
+ </optional>
2283
+ <attribute name="target">
2284
+ <data type="IDREF"/>
2285
+ </attribute>
2286
+ <attribute name="to"/>
2287
+ </element>
2288
+ </define>
2289
+ <define name="references">
2290
+ <element name="references">
2291
+ <optional>
2292
+ <attribute name="xml:base"/>
2293
+ </optional>
2294
+ <optional>
2295
+ <attribute name="xml:lang"/>
2296
+ </optional>
2297
+ <optional>
2298
+ <attribute name="pn">
2299
+ <data type="ID"/>
2300
+ </attribute>
2301
+ </optional>
2302
+ <optional>
2303
+ <attribute name="anchor">
2304
+ <data type="ID"/>
2305
+ </attribute>
2306
+ </optional>
2307
+ <optional>
2308
+ <attribute name="title"/>
2309
+ </optional>
2310
+ <optional>
2311
+ <ref name="name"/>
2312
+ </optional>
2313
+ <choice>
2314
+ <oneOrMore>
2315
+ <ref name="references"/>
2316
+ </oneOrMore>
2317
+ <zeroOrMore>
2318
+ <choice>
2319
+ <ref name="reference"/>
2320
+ <ref name="referencegroup"/>
2321
+ </choice>
2322
+ </zeroOrMore>
2323
+ </choice>
2324
+ </element>
2325
+ </define>
2326
+ <define name="reference">
2327
+ <element name="reference">
2328
+ <optional>
2329
+ <attribute name="xml:base"/>
2330
+ </optional>
2331
+ <optional>
2332
+ <attribute name="xml:lang"/>
2333
+ </optional>
2334
+ <attribute name="anchor">
2335
+ <data type="ID"/>
2336
+ </attribute>
2337
+ <optional>
2338
+ <attribute name="derivedAnchor"/>
2339
+ </optional>
2340
+ <optional>
2341
+ <attribute name="target"/>
2342
+ </optional>
2343
+ <optional>
2344
+ <attribute name="quoteTitle" a:defaultValue="true">
2345
+ <choice>
2346
+ <value>true</value>
2347
+ <value>false</value>
2348
+ </choice>
2349
+ </attribute>
2350
+ </optional>
2351
+ <optional>
2352
+ <attribute name="quote-title">
2353
+ <choice>
2354
+ <value>true</value>
2355
+ <value>false</value>
2356
+ </choice>
2357
+ </attribute>
2358
+ </optional>
2359
+ <optional>
2360
+ <ref name="stream"/>
2361
+ </optional>
2362
+ <ref name="front"/>
2363
+ <zeroOrMore>
2364
+ <choice>
2365
+ <ref name="annotation"/>
2366
+ <ref name="format"/>
2367
+ <ref name="refcontent"/>
2368
+ <ref name="seriesInfo"/>
2369
+ </choice>
2370
+ </zeroOrMore>
2371
+ </element>
2372
+ </define>
2373
+ <define name="stream">
2374
+ <element name="stream">
2375
+ <optional>
2376
+ <choice>
2377
+ <value>IETF</value>
2378
+ <value>IAB</value>
2379
+ <value>IRTF</value>
2380
+ <value>independent</value>
2381
+ </choice>
2382
+ </optional>
2383
+ </element>
2384
+ </define>
2385
+ <define name="referencegroup">
2386
+ <element name="referencegroup">
2387
+ <optional>
2388
+ <attribute name="xml:base"/>
2389
+ </optional>
2390
+ <optional>
2391
+ <attribute name="xml:lang"/>
2392
+ </optional>
2393
+ <attribute name="anchor">
2394
+ <data type="ID"/>
2395
+ </attribute>
2396
+ <optional>
2397
+ <attribute name="derivedAnchor"/>
2398
+ </optional>
2399
+ <optional>
2400
+ <attribute name="target"/>
2401
+ </optional>
2402
+ <oneOrMore>
2403
+ <ref name="reference"/>
2404
+ </oneOrMore>
2405
+ </element>
2406
+ </define>
2407
+ <define name="seriesInfo">
2408
+ <element name="seriesInfo">
2409
+ <optional>
2410
+ <attribute name="xml:base"/>
2411
+ </optional>
2412
+ <optional>
2413
+ <attribute name="xml:lang"/>
2414
+ </optional>
2415
+ <attribute name="name"/>
2416
+ <attribute name="value"/>
2417
+ <optional>
2418
+ <attribute name="asciiName"/>
2419
+ </optional>
2420
+ <optional>
2421
+ <attribute name="asciiValue"/>
2422
+ </optional>
2423
+ <optional>
2424
+ <attribute name="status"/>
2425
+ </optional>
2426
+ <optional>
2427
+ <attribute name="stream">
2428
+ <choice>
2429
+ <value>IETF</value>
2430
+ <value>IAB</value>
2431
+ <value>IRTF</value>
2432
+ <value>independent</value>
2433
+ </choice>
2434
+ </attribute>
2435
+ </optional>
2436
+ <empty/>
2437
+ </element>
2438
+ </define>
2439
+ <define name="format">
2440
+ <element name="format">
2441
+ <optional>
2442
+ <attribute name="xml:base"/>
2443
+ </optional>
2444
+ <optional>
2445
+ <attribute name="xml:lang"/>
2446
+ </optional>
2447
+ <optional>
2448
+ <attribute name="target"/>
2449
+ </optional>
2450
+ <attribute name="type"/>
2451
+ <optional>
2452
+ <attribute name="octets"/>
2453
+ </optional>
2454
+ <empty/>
2455
+ </element>
2456
+ </define>
2457
+ <define name="annotation">
2458
+ <element name="annotation">
2459
+ <optional>
2460
+ <attribute name="xml:base"/>
2461
+ </optional>
2462
+ <optional>
2463
+ <attribute name="xml:lang"/>
2464
+ </optional>
2465
+ <zeroOrMore>
2466
+ <choice>
2467
+ <text/>
2468
+ <ref name="bcp14"/>
2469
+ <ref name="cref"/>
2470
+ <ref name="em"/>
2471
+ <ref name="eref"/>
2472
+ <ref name="iref"/>
2473
+ <ref name="relref"/>
2474
+ <ref name="spanx"/>
2475
+ <ref name="strong"/>
2476
+ <ref name="sub"/>
2477
+ <ref name="sup"/>
2478
+ <ref name="tt"/>
2479
+ <ref name="u"/>
2480
+ <ref name="xref"/>
2481
+ </choice>
2482
+ </zeroOrMore>
2483
+ </element>
2484
+ </define>
2485
+ <define name="refcontent">
2486
+ <element name="refcontent">
2487
+ <optional>
2488
+ <attribute name="xml:base"/>
2489
+ </optional>
2490
+ <optional>
2491
+ <attribute name="xml:lang"/>
2492
+ </optional>
2493
+ <zeroOrMore>
2494
+ <choice>
2495
+ <text/>
2496
+ <ref name="bcp14"/>
2497
+ <ref name="em"/>
2498
+ <ref name="strong"/>
2499
+ <ref name="sub"/>
2500
+ <ref name="sup"/>
2501
+ <ref name="tt"/>
2502
+ </choice>
2503
+ </zeroOrMore>
2504
+ </element>
2505
+ </define>
2506
+ <define name="u">
2507
+ <element name="u">
2508
+ <optional>
2509
+ <attribute name="anchor">
2510
+ <data type="ID"/>
2511
+ </attribute>
2512
+ </optional>
2513
+ <optional>
2514
+ <attribute name="ascii"/>
2515
+ </optional>
2516
+ <optional>
2517
+ <attribute name="format" a:defaultValue="lit-name-num"/>
2518
+ </optional>
2519
+ <optional>
2520
+ <attribute name="pn">
2521
+ <data type="ID"/>
2522
+ </attribute>
2523
+ </optional>
2524
+ <text/>
2525
+ </element>
2526
+ </define>
2527
+ <start combine="choice">
2528
+ <ref name="rfc"/>
2529
+ </start>
2530
+ </grammar>