metanorma-ietf 2.1.1 → 2.2.2

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.
@@ -73,8 +73,8 @@ module IsoDoc::Ietf
73
73
 
74
74
  def note_label(node)
75
75
  n = @xrefs.get[node["id"]]
76
- return l10n("#{@note_lbl}: ") if n.nil? || n[:label].nil? || n[:label].empty?
77
- l10n("#{@note_lbl} #{n[:label]}: ")
76
+ return l10n("#{@i18n.note}: ") if n.nil? || n[:label].nil? || n[:label].empty?
77
+ l10n("#{@i18n.note} #{n[:label]}: ")
78
78
  end
79
79
 
80
80
  def note_parse(node, out)
@@ -98,8 +98,8 @@ module IsoDoc::Ietf
98
98
  def example_label(node, div, name)
99
99
  n = @xrefs.get[node["id"]]
100
100
  div.t **attr_code(anchor: node["id"], keepWithNext: "true") do |p|
101
- lbl = (n.nil? || n[:label].nil? || n[:label].empty?) ? @example_lbl :
102
- l10n("#{@example_lbl} #{n[:label]}")
101
+ lbl = (n.nil? || n[:label].nil? || n[:label].empty?) ? @i18n.example :
102
+ l10n("#{@i18n.example} #{n[:label]}")
103
103
  p << lbl
104
104
  name and !lbl.nil? and p << ": "
105
105
  name and name.children.each { |n| parse(n, p) }
@@ -139,7 +139,7 @@ module IsoDoc::Ietf
139
139
 
140
140
  def formula_where(dl, out)
141
141
  return unless dl
142
- out.t { |p| p << @where_lbl }
142
+ out.t { |p| p << @i18n.where }
143
143
  parse(dl, out)
144
144
  end
145
145
 
@@ -157,7 +157,8 @@ module IsoDoc::Ietf
157
157
  s.children = s.children.to_xml.gsub(%r{<br/>\n}, "\n").
158
158
  gsub(%r{\s+(<t[ >])}, "\\1").gsub(%r{</t>\s+}, "</t>")
159
159
  sourcecode_remove_markup(s)
160
- s.children = "<![CDATA[#{s.children.to_xml.sub(/\A\n+/, "")}]]>"
160
+ text = HTMLEntities.new.decode(s.children.to_xml.sub(/\A\n+/, ""))
161
+ s.children = "<![CDATA[#{text}]]>"
161
162
  end
162
163
  end
163
164
 
@@ -168,7 +168,7 @@ module IsoDoc::Ietf
168
168
 
169
169
  def date(isoxml, front)
170
170
  date = @meta.get[:publisheddate] || @meta.get[:circulateddate] || return
171
- date.gsub!(/T.*$/, "")
171
+ date = date.gsub(/T.*$/, "")
172
172
  attr = date_attr(date) || return
173
173
  front.date **attr_code(attr)
174
174
  end
@@ -32,7 +32,7 @@ module IsoDoc::Ietf
32
32
  end
33
33
 
34
34
  def recommendation_parse(node, out)
35
- recommendation_name(node, out, @recommendation_lbl)
35
+ recommendation_name(node, out, @i18n.recommendation)
36
36
  recommendation_attributes(node, out)
37
37
  node.children.each do |n|
38
38
  parse(n, out) unless %w(label title).include? n.name
@@ -40,7 +40,7 @@ module IsoDoc::Ietf
40
40
  end
41
41
 
42
42
  def requirement_parse(node, out)
43
- recommendation_name(node, out, @requirement_lbl)
43
+ recommendation_name(node, out, @i18n.requirement)
44
44
  recommendation_attributes(node, out)
45
45
  node.children.each do |n|
46
46
  parse(n, out) unless %w(label title).include? n.name
@@ -48,7 +48,7 @@ module IsoDoc::Ietf
48
48
  end
49
49
 
50
50
  def permission_parse(node, out)
51
- recommendation_name(node, out, @permission_lbl)
51
+ recommendation_name(node, out, @i18n.permission)
52
52
  recommendation_attributes(node, out)
53
53
  node.children.each do |n|
54
54
  parse(n, out) unless %w(label title).include? n.name
@@ -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
@@ -27,12 +28,12 @@ module IsoDoc::Ietf
27
28
  set_pis(docxml, Nokogiri::XML(xml))
28
29
  end
29
30
 
30
- def metadata_init(lang, script, labels)
31
- @meta = Metadata.new(lang, script, labels)
31
+ def metadata_init(lang, script, i18n)
32
+ @meta = Metadata.new(lang, script, i18n)
32
33
  end
33
34
 
34
- def xref_init(lang, script, klass, labels, options)
35
- @xrefs = Xref.new(lang, script, klass, labels, options)
35
+ def xref_init(lang, script, klass, i18n, options)
36
+ @xrefs = Xref.new(lang, script, klass, i18n, options)
36
37
  end
37
38
 
38
39
  def extract_delims(text)
@@ -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,
@@ -132,7 +133,7 @@ module IsoDoc::Ietf
132
133
  end
133
134
  end
134
135
 
135
- def clause_parse_title(node, div, c1, out)
136
+ def clause_parse_title(node, div, c1, out, _heading_attrs = {})
136
137
  return unless c1
137
138
  div.name do |n|
138
139
  c1&.children&.each { |c2| parse(c2, n) }
@@ -13,7 +13,7 @@ module IsoDoc::Ietf
13
13
 
14
14
  def deprecated_term_parse(node, out)
15
15
  out.t do |p|
16
- p << l10n("#{@deprecated_lbl}: ")
16
+ p << l10n("#{@i18n.deprecated}: ")
17
17
  node.children.each { |c| parse(c, p) }
18
18
  end
19
19
  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>