metanorma-ietf 2.2.1 → 2.2.6

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