metanorma-ietf 2.2.1 → 2.2.6

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
@@ -0,0 +1,5 @@
1
+ term_def_boilerplate:
2
+ no_terms_boilerplate:
3
+ internal_terms_boilerplate:
4
+ external_terms_boilerplate:
5
+ internal_external_terms_boilerplate:
@@ -0,0 +1,14 @@
1
+ module IsoDoc
2
+ module Ietf
3
+ class I18n < IsoDoc::I18n
4
+ def load_yaml1(lang, script)
5
+ y = if lang == "en"
6
+ YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
7
+ else
8
+ YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
9
+ end
10
+ super.merge(y)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ require "isodoc"
2
+ require_relative "i18n"
3
+
4
+ module IsoDoc
5
+ module Ietf
6
+ module Init
7
+ def i18n_init(lang, script, i18nyaml = nil)
8
+ @i18n = I18n.new(lang, script, i18nyaml || @i18nyaml)
9
+ end
10
+
11
+ def fileloc(loc)
12
+ File.join(File.dirname(__FILE__), loc)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -156,8 +156,8 @@ module IsoDoc::Ietf
156
156
  end
157
157
 
158
158
  def index_parse(node, out)
159
- out.iref nil, **attr_code(item: node["primary"],
160
- subitem: node["secondary"])
159
+ out.iref nil, **attr_code(item: node.at(ns("./primary")).text,
160
+ subitem: node&.at(ns("./secondary"))&.text)
161
161
  end
162
162
 
163
163
  def bookmark_parse(node, out)
@@ -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,7 +9,9 @@ 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"
14
+ require_relative "./init"
13
15
 
14
16
  module IsoDoc::Ietf
15
17
  class RfcConvert < ::IsoDoc::Convert
@@ -59,12 +61,14 @@ module IsoDoc::Ietf
59
61
  passthrough_cleanup(docxml)
60
62
  end
61
63
 
62
- def postprocess(result, filename, dir)
64
+ def postprocess(result, filename, _dir)
63
65
  result = from_xhtml(cleanup(to_xhtml(textcleanup(result)))).
64
66
  sub(/<!DOCTYPE[^>]+>\n/, "").
65
67
  sub(/(<rfc[^<]+? )lang="[^"]+"/, "\\1")
66
68
  File.open(filename, "w:UTF-8") { |f| f.write(result) }
69
+ schema_validate(filename)
67
70
  @files_to_delete.each { |f| FileUtils.rm_rf f }
71
+ content_validate(to_xhtml(result), filename)
68
72
  end
69
73
 
70
74
  def init_file(filename, debug)
@@ -78,5 +82,7 @@ module IsoDoc::Ietf
78
82
  @format = :rfc
79
83
  @suffix = "rfc.xml"
80
84
  end
85
+
86
+ include ::IsoDoc::Ietf::Init
81
87
  end
82
88
  end
@@ -141,6 +141,7 @@ module IsoDoc::Ietf
141
141
  end
142
142
 
143
143
  def clause_parse(node, out)
144
+ return if node.at(ns(".//references"))
144
145
  out.section **attr_code( anchor: node["id"], numbered: node["numbered"],
145
146
  removeInRFC: node["removeInRFC"], toc: node["toc"]) do |div|
146
147
  clause_parse_title(node, div, node.at(ns("./title")), out)
@@ -153,23 +154,16 @@ module IsoDoc::Ietf
153
154
  def clause(isoxml, out)
154
155
  isoxml.xpath("//xmlns:preface/child::*[not(name() = 'abstract' or name() = 'foreword')] "\
155
156
  "| //xmlns:sections/child::*").each do |c|
156
- clause1(c, out)
157
- end
158
- end
159
-
160
- def clause1(c, out)
161
- out.section **attr_code( anchor: c["id"], numbered: c["numbered"],
162
- removeInRFC: c["removeInRFC"], toc: c["toc"]) do |div|
163
- clause_parse_title(c, div, c.at(ns("./title")), out)
164
- c.elements.reject { |c1| c1.name == "title" }.each do |c1|
165
- parse(c1, div)
166
- 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)
167
161
  end
168
162
  end
169
163
 
170
164
  def annex(isoxml, out)
171
165
  isoxml.xpath(ns("//annex")).each do |c|
172
- clause1(c, out)
166
+ clause_parse(c, out)
173
167
  end
174
168
  end
175
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>