asciidoctor-rfc 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (130) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +5 -0
  3. data/.oss-guides.rubocop.yml +1077 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +19 -1063
  6. data/.travis.yml +3 -2
  7. data/Guardfile +22 -0
  8. data/README.adoc +1151 -0
  9. data/Rakefile +1 -1
  10. data/asciidoctor-rfc.gemspec +20 -3
  11. data/bin/asciidoctor-rfc2 +15 -0
  12. data/bin/asciidoctor-rfc3 +15 -0
  13. data/bin/rspec +0 -1
  14. data/lib/asciidoctor-rfc.rb +4 -0
  15. data/lib/asciidoctor/rfc/common/base.rb +218 -0
  16. data/lib/asciidoctor/rfc/common/front.rb +120 -0
  17. data/lib/asciidoctor/rfc/v2/base.rb +341 -0
  18. data/lib/asciidoctor/rfc/v2/blocks.rb +192 -0
  19. data/lib/asciidoctor/rfc/v2/converter.rb +64 -0
  20. data/lib/asciidoctor/rfc/v2/front.rb +69 -0
  21. data/lib/asciidoctor/rfc/v2/inline_anchor.rb +102 -0
  22. data/lib/asciidoctor/rfc/v2/lists.rb +134 -0
  23. data/lib/asciidoctor/rfc/v2/table.rb +112 -0
  24. data/lib/asciidoctor/rfc/v2/validate.rb +738 -0
  25. data/lib/asciidoctor/rfc/v2/validate2.rng +716 -0
  26. data/lib/asciidoctor/rfc/v3/base.rb +358 -0
  27. data/lib/asciidoctor/rfc/v3/blocks.rb +203 -0
  28. data/lib/asciidoctor/rfc/v3/converter.rb +64 -0
  29. data/lib/asciidoctor/rfc/v3/front.rb +115 -0
  30. data/lib/asciidoctor/rfc/v3/inline_anchor.rb +90 -0
  31. data/lib/asciidoctor/rfc/v3/lists.rb +190 -0
  32. data/lib/asciidoctor/rfc/v3/svg.rng +9081 -0
  33. data/lib/asciidoctor/rfc/v3/table.rb +65 -0
  34. data/lib/asciidoctor/rfc/v3/validate.rb +2168 -0
  35. data/lib/asciidoctor/rfc/v3/validate.rng +2143 -0
  36. data/lib/asciidoctor/rfc/version.rb +2 -2
  37. data/spec/asciidoctor/rfc/v2/appendix_spec.rb +124 -0
  38. data/spec/asciidoctor/rfc/v2/area_spec.rb +60 -0
  39. data/spec/asciidoctor/rfc/v2/author_spec.rb +444 -0
  40. data/spec/asciidoctor/rfc/v2/comments_spec.rb +316 -0
  41. data/spec/asciidoctor/rfc/v2/crossref_spec.rb +205 -0
  42. data/spec/asciidoctor/rfc/v2/date_spec.rb +166 -0
  43. data/spec/asciidoctor/rfc/v2/dlist_spec.rb +108 -0
  44. data/spec/asciidoctor/rfc/v2/document_spec.rb +161 -0
  45. data/spec/asciidoctor/rfc/v2/example_spec.rb +50 -0
  46. data/spec/asciidoctor/rfc/v2/front_spec.rb +75 -0
  47. data/spec/asciidoctor/rfc/v2/image_spec.rb +81 -0
  48. data/spec/asciidoctor/rfc/v2/indexterm_spec.rb +66 -0
  49. data/spec/asciidoctor/rfc/v2/inline_formatting_spec.rb +177 -0
  50. data/spec/asciidoctor/rfc/v2/keyword_spec.rb +63 -0
  51. data/spec/asciidoctor/rfc/v2/listing_spec.rb +59 -0
  52. data/spec/asciidoctor/rfc/v2/literal_spec.rb +53 -0
  53. data/spec/asciidoctor/rfc/v2/olist_spec.rb +147 -0
  54. data/spec/asciidoctor/rfc/v2/paragraph_spec.rb +68 -0
  55. data/spec/asciidoctor/rfc/v2/preamble_spec.rb +140 -0
  56. data/spec/asciidoctor/rfc/v2/quote_spec.rb +24 -0
  57. data/spec/asciidoctor/rfc/v2/references_spec.rb +96 -0
  58. data/spec/asciidoctor/rfc/v2/section_spec.rb +260 -0
  59. data/spec/asciidoctor/rfc/v2/sidebar_spec.rb +32 -0
  60. data/spec/asciidoctor/rfc/v2/table_spec.rb +293 -0
  61. data/spec/asciidoctor/rfc/v2/ulist_spec.rb +96 -0
  62. data/spec/asciidoctor/rfc/v2/workgroup_spec.rb +60 -0
  63. data/spec/asciidoctor/rfc/v3/appendix_spec.rb +130 -0
  64. data/spec/asciidoctor/rfc/v3/area_spec.rb +63 -0
  65. data/spec/asciidoctor/rfc/v3/author_spec.rb +540 -0
  66. data/spec/asciidoctor/rfc/v3/comments_spec.rb +308 -0
  67. data/spec/asciidoctor/rfc/v3/crossref_spec.rb +269 -0
  68. data/spec/asciidoctor/rfc/v3/date_spec.rb +149 -0
  69. data/spec/asciidoctor/rfc/v3/dlist_spec.rb +121 -0
  70. data/spec/asciidoctor/rfc/v3/document_spec.rb +109 -0
  71. data/spec/asciidoctor/rfc/v3/example_spec.rb +34 -0
  72. data/spec/asciidoctor/rfc/v3/front_spec.rb +43 -0
  73. data/spec/asciidoctor/rfc/v3/image_spec.rb +81 -0
  74. data/spec/asciidoctor/rfc/v3/indexterm_spec.rb +69 -0
  75. data/spec/asciidoctor/rfc/v3/inline_formatting_spec.rb +319 -0
  76. data/spec/asciidoctor/rfc/v3/keyword_spec.rb +33 -0
  77. data/spec/asciidoctor/rfc/v3/link_spec.rb +34 -0
  78. data/spec/asciidoctor/rfc/v3/listing_spec.rb +59 -0
  79. data/spec/asciidoctor/rfc/v3/literal_spec.rb +51 -0
  80. data/spec/asciidoctor/rfc/v3/olist_spec.rb +168 -0
  81. data/spec/asciidoctor/rfc/v3/paragraph_spec.rb +73 -0
  82. data/spec/asciidoctor/rfc/v3/preamble_spec.rb +112 -0
  83. data/spec/asciidoctor/rfc/v3/quote_spec.rb +91 -0
  84. data/spec/asciidoctor/rfc/v3/references_spec.rb +147 -0
  85. data/spec/asciidoctor/rfc/v3/section_spec.rb +198 -0
  86. data/spec/asciidoctor/rfc/v3/series_info_spec.rb +151 -0
  87. data/spec/asciidoctor/rfc/v3/sidebar_spec.rb +30 -0
  88. data/spec/asciidoctor/rfc/v3/table_spec.rb +275 -0
  89. data/spec/asciidoctor/rfc/v3/ulist_spec.rb +74 -0
  90. data/spec/asciidoctor/rfc/v3/workgroup_spec.rb +33 -0
  91. data/spec/examples/davies-template-bare-06.adoc +361 -0
  92. data/spec/examples/davies-template-bare-06.xml.orig +426 -0
  93. data/spec/examples/example-v2.adoc +181 -0
  94. data/spec/examples/example-v2.xml +675 -0
  95. data/spec/examples/example-v3.adoc +185 -0
  96. data/spec/examples/example-v3.xml +1009 -0
  97. data/spec/examples/mib-doc-template-xml-06.adoc +596 -0
  98. data/spec/examples/mib-doc-template-xml-06.xml.orig +654 -0
  99. data/spec/examples/rfc1149.md +76 -0
  100. data/spec/examples/rfc1149.md.2.xml +94 -0
  101. data/spec/examples/rfc1149.md.3.xml +93 -0
  102. data/spec/examples/rfc1149.md.adoc +65 -0
  103. data/spec/examples/rfc2100.md +149 -0
  104. data/spec/examples/rfc2100.md.2.xml +169 -0
  105. data/spec/examples/rfc2100.md.3.xml +163 -0
  106. data/spec/examples/rfc2100.md.adoc +136 -0
  107. data/spec/examples/rfc3514.md +203 -0
  108. data/spec/examples/rfc3514.md.2.xml +238 -0
  109. data/spec/examples/rfc3514.md.3.xml +258 -0
  110. data/spec/examples/rfc3514.md.adoc +324 -0
  111. data/spec/examples/rfc5841.md +342 -0
  112. data/spec/examples/rfc5841.md.2.xml +393 -0
  113. data/spec/examples/rfc5841.md.3.xml +449 -0
  114. data/spec/examples/rfc5841.md.adoc +414 -0
  115. data/spec/examples/rfc6350.adoc +3499 -0
  116. data/spec/examples/rfc6350.bib +763 -0
  117. data/spec/examples/rfc748.md +79 -0
  118. data/spec/examples/rfc748.md.2.xml +116 -0
  119. data/spec/examples/rfc748.md.3.xml +109 -0
  120. data/spec/examples/rfc748.md.adoc +80 -0
  121. data/spec/examples/rfc7511.md +257 -0
  122. data/spec/examples/rfc7511.md.2.xml +300 -0
  123. data/spec/examples/rfc7511.md.3.xml +347 -0
  124. data/spec/examples/rfc7511.md.adoc +417 -0
  125. data/spec/spec_helper.rb +115 -5
  126. metadata +274 -9
  127. data/.hound.yml +0 -3
  128. data/README.md +0 -84
  129. data/lib/asciidoctor/rfc.rb +0 -7
  130. data/spec/asciidoctor-rfc/.keep +0 -0
@@ -0,0 +1,65 @@
1
+ module Asciidoctor
2
+ module RFC::V3
3
+ module Table
4
+ # Syntax:
5
+ # [[id]]
6
+ # .Title
7
+ # |===
8
+ # |col | col
9
+ # |===
10
+ def table(node)
11
+ noko do |xml|
12
+ has_body = false
13
+ # TODO iref belongs here
14
+
15
+ table_attributes = {
16
+ anchor: node.id,
17
+ }
18
+
19
+ xml.table **attr_code(table_attributes) do |xml_table|
20
+ [:head, :body, :foot].reject { |tblsec| node.rows[tblsec].empty? }.each do |tblsec|
21
+ has_body = true if tblsec == :body
22
+ end
23
+ warn "asciidoctor: WARNING: tables must have at least one body row" unless has_body
24
+
25
+ xml_table.name node.title if node.title?
26
+ table_head_body_and_foot node, xml_table
27
+ end
28
+ end
29
+ end
30
+
31
+ private
32
+
33
+ def table_head_body_and_foot(node, xml)
34
+ [:head, :body, :foot].reject { |tblsec| node.rows[tblsec].empty? }.each do |tblsec|
35
+ tblsec_tag = "t#{tblsec}"
36
+ # "anchor" attribute from tblsec.id not supported
37
+ xml.send tblsec_tag do |xml_tblsec|
38
+ node.rows[tblsec].each_with_index do |row, i|
39
+ # id not supported on row
40
+ xml_tblsec.tr do |xml_tr|
41
+ rowlength = 0
42
+ row.each do |cell|
43
+ cell_attributes = {
44
+ anchor: cell.id,
45
+ colspan: cell.colspan,
46
+ rowspan: cell.rowspan,
47
+ align: cell.attr("halign"),
48
+ }
49
+
50
+ cell_tag = (tblsec == :head || cell.style == :header ? "th" : "td")
51
+
52
+ rowlength += cell.text.size
53
+ xml_tr.send cell_tag, **attr_code(cell_attributes) do |thd|
54
+ thd << (cell.style == :asciidoc ? cell.content : cell.text)
55
+ end
56
+ end
57
+ warn "asciidoctor: WARNING: row #{i} of table (count including header rows) is longer than 72 ascii characters" if rowlength > 72
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,2168 @@
1
+ require "nokogiri"
2
+
3
+ module Asciidoctor
4
+ module RFC::V3
5
+ module Validate
6
+ class << self
7
+ def validate(doc)
8
+ schemadoc = relaxng()
9
+ schema = Nokogiri::XML::RelaxNG(schemadoc)
10
+ schema.validate(Nokogiri::XML(doc)).each do |error|
11
+ $stderr.puts "V3 RELAXNG Validation: #{error.message}"
12
+ end
13
+ end
14
+
15
+ def relaxng
16
+ svg_location = File.join(File.dirname(__FILE__), "svg.rng")
17
+ <<RELAXNG
18
+ <?xml version="1.0" encoding="US-ASCII"?>
19
+
20
+ <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">
21
+ <!-- xml2rfc Version 3 grammar -->
22
+ <define name="rfc">
23
+ <element name="rfc">
24
+ <optional>
25
+ <attribute name="xml:base"/>
26
+ </optional>
27
+ <optional>
28
+ <attribute name="xml:lang"/>
29
+ </optional>
30
+ <optional>
31
+ <attribute name="number"/>
32
+ </optional>
33
+ <optional>
34
+ <attribute name="obsoletes" a:defaultValue=""/>
35
+ </optional>
36
+ <optional>
37
+ <attribute name="updates" a:defaultValue=""/>
38
+ </optional>
39
+ <optional>
40
+ <attribute name="category"/>
41
+ </optional>
42
+ <optional>
43
+ <attribute name="mode"/>
44
+ </optional>
45
+ <optional>
46
+ <attribute name="consensus" a:defaultValue="false">
47
+ <choice>
48
+ <value>no</value>
49
+ <value>yes</value>
50
+ <value>false</value>
51
+ <value>true</value>
52
+ </choice>
53
+ </attribute>
54
+ </optional>
55
+ <optional>
56
+ <attribute name="seriesNo"/>
57
+ </optional>
58
+ <optional>
59
+ <attribute name="ipr"/>
60
+ </optional>
61
+ <optional>
62
+ <attribute name="iprExtract">
63
+ <data type="IDREF"/>
64
+ </attribute>
65
+ </optional>
66
+ <optional>
67
+ <attribute name="submissionType" a:defaultValue="IETF">
68
+ <choice>
69
+ <value>IETF</value>
70
+ <value>IAB</value>
71
+ <value>IRTF</value>
72
+ <value>independent</value>
73
+ </choice>
74
+ </attribute>
75
+ </optional>
76
+ <optional>
77
+ <attribute name="docName"/>
78
+ </optional>
79
+ <optional>
80
+ <attribute name="sortRefs" a:defaultValue="false">
81
+ <choice>
82
+ <value>true</value>
83
+ <value>false</value>
84
+ </choice>
85
+ </attribute>
86
+ </optional>
87
+ <optional>
88
+ <attribute name="symRefs" a:defaultValue="true">
89
+ <choice>
90
+ <value>true</value>
91
+ <value>false</value>
92
+ </choice>
93
+ </attribute>
94
+ </optional>
95
+ <optional>
96
+ <attribute name="tocInclude" a:defaultValue="true">
97
+ <choice>
98
+ <value>true</value>
99
+ <value>false</value>
100
+ </choice>
101
+ </attribute>
102
+ </optional>
103
+ <optional>
104
+ <attribute name="tocDepth" a:defaultValue="3"/>
105
+ </optional>
106
+ <optional>
107
+ <attribute name="prepTime"/>
108
+ </optional>
109
+ <optional>
110
+ <attribute name="indexInclude" a:defaultValue="true">
111
+ <choice>
112
+ <value>true</value>
113
+ <value>false</value>
114
+ </choice>
115
+ </attribute>
116
+ </optional>
117
+ <optional>
118
+ <attribute name="version"/>
119
+ </optional>
120
+ <optional>
121
+ <attribute name="scripts" a:defaultValue="Common,Latin"/>
122
+ </optional>
123
+ <optional>
124
+ <attribute name="expiresDate"/>
125
+ </optional>
126
+ <zeroOrMore>
127
+ <ref name="link"/>
128
+ </zeroOrMore>
129
+ <ref name="front"/>
130
+ <ref name="middle"/>
131
+ <optional>
132
+ <ref name="back"/>
133
+ </optional>
134
+ </element>
135
+ </define>
136
+ <define name="link">
137
+ <element name="link">
138
+ <optional>
139
+ <attribute name="xml:base"/>
140
+ </optional>
141
+ <optional>
142
+ <attribute name="xml:lang"/>
143
+ </optional>
144
+ <attribute name="href"/>
145
+ <optional>
146
+ <attribute name="rel"/>
147
+ </optional>
148
+ </element>
149
+ </define>
150
+ <define name="front">
151
+ <element name="front">
152
+ <optional>
153
+ <attribute name="xml:base"/>
154
+ </optional>
155
+ <optional>
156
+ <attribute name="xml:lang"/>
157
+ </optional>
158
+ <ref name="title"/>
159
+ <zeroOrMore>
160
+ <ref name="seriesInfo"/>
161
+ </zeroOrMore>
162
+ <oneOrMore>
163
+ <ref name="author"/>
164
+ </oneOrMore>
165
+ <optional>
166
+ <ref name="date"/>
167
+ </optional>
168
+ <zeroOrMore>
169
+ <ref name="area"/>
170
+ </zeroOrMore>
171
+ <zeroOrMore>
172
+ <ref name="workgroup"/>
173
+ </zeroOrMore>
174
+ <zeroOrMore>
175
+ <ref name="keyword"/>
176
+ </zeroOrMore>
177
+ <optional>
178
+ <ref name="abstract"/>
179
+ </optional>
180
+ <zeroOrMore>
181
+ <ref name="note"/>
182
+ </zeroOrMore>
183
+ <optional>
184
+ <ref name="boilerplate"/>
185
+ </optional>
186
+ </element>
187
+ </define>
188
+ <define name="title">
189
+ <element name="title">
190
+ <optional>
191
+ <attribute name="xml:base"/>
192
+ </optional>
193
+ <optional>
194
+ <attribute name="xml:lang"/>
195
+ </optional>
196
+ <optional>
197
+ <attribute name="abbrev"/>
198
+ </optional>
199
+ <optional>
200
+ <attribute name="ascii"/>
201
+ </optional>
202
+ <text/>
203
+ </element>
204
+ </define>
205
+ <define name="author">
206
+ <element name="author">
207
+ <optional>
208
+ <attribute name="xml:base"/>
209
+ </optional>
210
+ <optional>
211
+ <attribute name="xml:lang"/>
212
+ </optional>
213
+ <optional>
214
+ <attribute name="initials"/>
215
+ </optional>
216
+ <optional>
217
+ <attribute name="asciiInitials"/>
218
+ </optional>
219
+ <optional>
220
+ <attribute name="surname"/>
221
+ </optional>
222
+ <optional>
223
+ <attribute name="asciiSurname"/>
224
+ </optional>
225
+ <optional>
226
+ <attribute name="fullname"/>
227
+ </optional>
228
+ <optional>
229
+ <attribute name="role">
230
+ <value>editor</value>
231
+ </attribute>
232
+ </optional>
233
+ <optional>
234
+ <attribute name="asciiFullname"/>
235
+ </optional>
236
+ <optional>
237
+ <ref name="organization"/>
238
+ </optional>
239
+ <optional>
240
+ <ref name="address"/>
241
+ </optional>
242
+ </element>
243
+ </define>
244
+ <define name="organization">
245
+ <element name="organization">
246
+ <optional>
247
+ <attribute name="xml:base"/>
248
+ </optional>
249
+ <optional>
250
+ <attribute name="xml:lang"/>
251
+ </optional>
252
+ <optional>
253
+ <attribute name="abbrev"/>
254
+ </optional>
255
+ <optional>
256
+ <attribute name="ascii"/>
257
+ </optional>
258
+ <text/>
259
+ </element>
260
+ </define>
261
+ <define name="address">
262
+ <element name="address">
263
+ <optional>
264
+ <attribute name="xml:base"/>
265
+ </optional>
266
+ <optional>
267
+ <attribute name="xml:lang"/>
268
+ </optional>
269
+ <optional>
270
+ <ref name="postal"/>
271
+ </optional>
272
+ <optional>
273
+ <ref name="phone"/>
274
+ </optional>
275
+ <optional>
276
+ <ref name="facsimile"/>
277
+ </optional>
278
+ <optional>
279
+ <ref name="email"/>
280
+ </optional>
281
+ <optional>
282
+ <ref name="uri"/>
283
+ </optional>
284
+ </element>
285
+ </define>
286
+ <define name="postal">
287
+ <element name="postal">
288
+ <optional>
289
+ <attribute name="xml:base"/>
290
+ </optional>
291
+ <optional>
292
+ <attribute name="xml:lang"/>
293
+ </optional>
294
+ <choice>
295
+ <zeroOrMore>
296
+ <choice>
297
+ <ref name="city"/>
298
+ <ref name="code"/>
299
+ <ref name="country"/>
300
+ <ref name="region"/>
301
+ <ref name="street"/>
302
+ </choice>
303
+ </zeroOrMore>
304
+ <oneOrMore>
305
+ <ref name="postalLine"/>
306
+ </oneOrMore>
307
+ </choice>
308
+ </element>
309
+ </define>
310
+ <define name="street">
311
+ <element name="street">
312
+ <optional>
313
+ <attribute name="xml:base"/>
314
+ </optional>
315
+ <optional>
316
+ <attribute name="xml:lang"/>
317
+ </optional>
318
+ <optional>
319
+ <attribute name="ascii"/>
320
+ </optional>
321
+ <text/>
322
+ </element>
323
+ </define>
324
+ <define name="city">
325
+ <element name="city">
326
+ <optional>
327
+ <attribute name="xml:base"/>
328
+ </optional>
329
+ <optional>
330
+ <attribute name="xml:lang"/>
331
+ </optional>
332
+ <optional>
333
+ <attribute name="ascii"/>
334
+ </optional>
335
+ <text/>
336
+ </element>
337
+ </define>
338
+ <define name="region">
339
+ <element name="region">
340
+ <optional>
341
+ <attribute name="xml:base"/>
342
+ </optional>
343
+ <optional>
344
+ <attribute name="xml:lang"/>
345
+ </optional>
346
+ <optional>
347
+ <attribute name="ascii"/>
348
+ </optional>
349
+ <text/>
350
+ </element>
351
+ </define>
352
+ <define name="code">
353
+ <element name="code">
354
+ <optional>
355
+ <attribute name="xml:base"/>
356
+ </optional>
357
+ <optional>
358
+ <attribute name="xml:lang"/>
359
+ </optional>
360
+ <optional>
361
+ <attribute name="ascii"/>
362
+ </optional>
363
+ <text/>
364
+ </element>
365
+ </define>
366
+ <define name="country">
367
+ <element name="country">
368
+ <optional>
369
+ <attribute name="xml:base"/>
370
+ </optional>
371
+ <optional>
372
+ <attribute name="xml:lang"/>
373
+ </optional>
374
+ <optional>
375
+ <attribute name="ascii"/>
376
+ </optional>
377
+ <text/>
378
+ </element>
379
+ </define>
380
+ <define name="postalLine">
381
+ <element name="postalLine">
382
+ <optional>
383
+ <attribute name="xml:base"/>
384
+ </optional>
385
+ <optional>
386
+ <attribute name="xml:lang"/>
387
+ </optional>
388
+ <optional>
389
+ <attribute name="ascii"/>
390
+ </optional>
391
+ <text/>
392
+ </element>
393
+ </define>
394
+ <define name="phone">
395
+ <element name="phone">
396
+ <optional>
397
+ <attribute name="xml:base"/>
398
+ </optional>
399
+ <optional>
400
+ <attribute name="xml:lang"/>
401
+ </optional>
402
+ <text/>
403
+ </element>
404
+ </define>
405
+ <define name="facsimile">
406
+ <element name="facsimile">
407
+ <optional>
408
+ <attribute name="xml:base"/>
409
+ </optional>
410
+ <optional>
411
+ <attribute name="xml:lang"/>
412
+ </optional>
413
+ <text/>
414
+ </element>
415
+ </define>
416
+ <define name="email">
417
+ <element name="email">
418
+ <optional>
419
+ <attribute name="xml:base"/>
420
+ </optional>
421
+ <optional>
422
+ <attribute name="xml:lang"/>
423
+ </optional>
424
+ <optional>
425
+ <attribute name="ascii"/>
426
+ </optional>
427
+ <text/>
428
+ </element>
429
+ </define>
430
+ <define name="uri">
431
+ <element name="uri">
432
+ <optional>
433
+ <attribute name="xml:base"/>
434
+ </optional>
435
+ <optional>
436
+ <attribute name="xml:lang"/>
437
+ </optional>
438
+ <text/>
439
+ </element>
440
+ </define>
441
+ <define name="date">
442
+ <element name="date">
443
+ <optional>
444
+ <attribute name="xml:base"/>
445
+ </optional>
446
+ <optional>
447
+ <attribute name="xml:lang"/>
448
+ </optional>
449
+ <optional>
450
+ <attribute name="day"/>
451
+ </optional>
452
+ <optional>
453
+ <attribute name="month"/>
454
+ </optional>
455
+ <optional>
456
+ <attribute name="year"/>
457
+ </optional>
458
+ <empty/>
459
+ </element>
460
+ </define>
461
+ <define name="area">
462
+ <element name="area">
463
+ <optional>
464
+ <attribute name="xml:base"/>
465
+ </optional>
466
+ <optional>
467
+ <attribute name="xml:lang"/>
468
+ </optional>
469
+ <text/>
470
+ </element>
471
+ </define>
472
+ <define name="workgroup">
473
+ <element name="workgroup">
474
+ <optional>
475
+ <attribute name="xml:base"/>
476
+ </optional>
477
+ <optional>
478
+ <attribute name="xml:lang"/>
479
+ </optional>
480
+ <text/>
481
+ </element>
482
+ </define>
483
+ <define name="keyword">
484
+ <element name="keyword">
485
+ <optional>
486
+ <attribute name="xml:base"/>
487
+ </optional>
488
+ <optional>
489
+ <attribute name="xml:lang"/>
490
+ </optional>
491
+ <text/>
492
+ </element>
493
+ </define>
494
+ <define name="abstract">
495
+ <element name="abstract">
496
+ <optional>
497
+ <attribute name="xml:base"/>
498
+ </optional>
499
+ <optional>
500
+ <attribute name="xml:lang"/>
501
+ </optional>
502
+ <optional>
503
+ <attribute name="anchor">
504
+ <data type="ID"/>
505
+ </attribute>
506
+ </optional>
507
+ <optional>
508
+ <attribute name="pn"/>
509
+ </optional>
510
+ <oneOrMore>
511
+ <choice>
512
+ <ref name="dl"/>
513
+ <ref name="ol"/>
514
+ <ref name="t"/>
515
+ <ref name="ul"/>
516
+ </choice>
517
+ </oneOrMore>
518
+ </element>
519
+ </define>
520
+ <define name="note">
521
+ <element name="note">
522
+ <optional>
523
+ <attribute name="xml:base"/>
524
+ </optional>
525
+ <optional>
526
+ <attribute name="xml:lang"/>
527
+ </optional>
528
+ <optional>
529
+ <attribute name="title"/>
530
+ </optional>
531
+ <optional>
532
+ <attribute name="pn"/>
533
+ </optional>
534
+ <optional>
535
+ <attribute name="removeInRFC" a:defaultValue="false">
536
+ <choice>
537
+ <value>true</value>
538
+ <value>false</value>
539
+ </choice>
540
+ </attribute>
541
+ </optional>
542
+ <optional>
543
+ <ref name="name"/>
544
+ </optional>
545
+ <oneOrMore>
546
+ <choice>
547
+ <ref name="dl"/>
548
+ <ref name="ol"/>
549
+ <ref name="t"/>
550
+ <ref name="ul"/>
551
+ </choice>
552
+ </oneOrMore>
553
+ </element>
554
+ </define>
555
+ <define name="boilerplate">
556
+ <element name="boilerplate">
557
+ <optional>
558
+ <attribute name="xml:base"/>
559
+ </optional>
560
+ <optional>
561
+ <attribute name="xml:lang"/>
562
+ </optional>
563
+ <oneOrMore>
564
+ <ref name="section"/>
565
+ </oneOrMore>
566
+ </element>
567
+ </define>
568
+ <define name="middle">
569
+ <element name="middle">
570
+ <optional>
571
+ <attribute name="xml:base"/>
572
+ </optional>
573
+ <optional>
574
+ <attribute name="xml:lang"/>
575
+ </optional>
576
+ <oneOrMore>
577
+ <ref name="section"/>
578
+ </oneOrMore>
579
+ </element>
580
+ </define>
581
+ <define name="section">
582
+ <element name="section">
583
+ <optional>
584
+ <attribute name="xml:base"/>
585
+ </optional>
586
+ <optional>
587
+ <attribute name="xml:lang"/>
588
+ </optional>
589
+ <optional>
590
+ <attribute name="anchor">
591
+ <data type="ID"/>
592
+ </attribute>
593
+ </optional>
594
+ <optional>
595
+ <attribute name="pn"/>
596
+ </optional>
597
+ <optional>
598
+ <attribute name="title"/>
599
+ </optional>
600
+ <optional>
601
+ <attribute name="numbered" a:defaultValue="true">
602
+ <choice>
603
+ <value>true</value>
604
+ <value>false</value>
605
+ </choice>
606
+ </attribute>
607
+ </optional>
608
+ <optional>
609
+ <attribute name="toc" a:defaultValue="default">
610
+ <choice>
611
+ <value>include</value>
612
+ <value>exclude</value>
613
+ <value>default</value>
614
+ </choice>
615
+ </attribute>
616
+ </optional>
617
+ <optional>
618
+ <attribute name="removeInRFC" a:defaultValue="false">
619
+ <choice>
620
+ <value>true</value>
621
+ <value>false</value>
622
+ </choice>
623
+ </attribute>
624
+ </optional>
625
+ <optional>
626
+ <ref name="name"/>
627
+ </optional>
628
+ <zeroOrMore>
629
+ <choice>
630
+ <ref name="artwork"/>
631
+ <ref name="aside"/>
632
+ <ref name="blockquote"/>
633
+ <ref name="dl"/>
634
+ <ref name="figure"/>
635
+ <ref name="iref"/>
636
+ <ref name="ol"/>
637
+ <ref name="sourcecode"/>
638
+ <ref name="t"/>
639
+ <ref name="table"/>
640
+ <ref name="texttable"/>
641
+ <ref name="ul"/>
642
+ </choice>
643
+ </zeroOrMore>
644
+ <zeroOrMore>
645
+ <ref name="section"/>
646
+ </zeroOrMore>
647
+ </element>
648
+ </define>
649
+ <define name="name">
650
+ <element name="name">
651
+ <optional>
652
+ <attribute name="xml:base"/>
653
+ </optional>
654
+ <optional>
655
+ <attribute name="xml:lang"/>
656
+ </optional>
657
+ <optional>
658
+ <attribute name="slugifiedName"/>
659
+ </optional>
660
+ <zeroOrMore>
661
+ <choice>
662
+ <text/>
663
+ <ref name="cref"/>
664
+ <ref name="eref"/>
665
+ <ref name="relref"/>
666
+ <ref name="tt"/>
667
+ <ref name="xref"/>
668
+ </choice>
669
+ </zeroOrMore>
670
+ </element>
671
+ </define>
672
+ <define name="t">
673
+ <element name="t">
674
+ <optional>
675
+ <attribute name="xml:base"/>
676
+ </optional>
677
+ <optional>
678
+ <attribute name="xml:lang"/>
679
+ </optional>
680
+ <optional>
681
+ <attribute name="anchor">
682
+ <data type="ID"/>
683
+ </attribute>
684
+ </optional>
685
+ <optional>
686
+ <attribute name="pn"/>
687
+ </optional>
688
+ <optional>
689
+ <attribute name="hangText"/>
690
+ </optional>
691
+ <optional>
692
+ <attribute name="keepWithNext" a:defaultValue="false">
693
+ <choice>
694
+ <value>false</value>
695
+ <value>true</value>
696
+ </choice>
697
+ </attribute>
698
+ </optional>
699
+ <optional>
700
+ <attribute name="keepWithPrevious" a:defaultValue="false">
701
+ <choice>
702
+ <value>false</value>
703
+ <value>true</value>
704
+ </choice>
705
+ </attribute>
706
+ </optional>
707
+ <zeroOrMore>
708
+ <choice>
709
+ <text/>
710
+ <ref name="bcp14"/>
711
+ <ref name="cref"/>
712
+ <ref name="em"/>
713
+ <ref name="eref"/>
714
+ <ref name="iref"/>
715
+ <ref name="list"/>
716
+ <ref name="relref"/>
717
+ <ref name="spanx"/>
718
+ <ref name="strong"/>
719
+ <ref name="sub"/>
720
+ <ref name="sup"/>
721
+ <ref name="tt"/>
722
+ <ref name="vspace"/>
723
+ <ref name="xref"/>
724
+ </choice>
725
+ </zeroOrMore>
726
+ </element>
727
+ </define>
728
+ <define name="aside">
729
+ <element name="aside">
730
+ <optional>
731
+ <attribute name="xml:base"/>
732
+ </optional>
733
+ <optional>
734
+ <attribute name="xml:lang"/>
735
+ </optional>
736
+ <optional>
737
+ <attribute name="anchor">
738
+ <data type="ID"/>
739
+ </attribute>
740
+ </optional>
741
+ <optional>
742
+ <attribute name="pn"/>
743
+ </optional>
744
+ <zeroOrMore>
745
+ <choice>
746
+ <ref name="artwork"/>
747
+ <ref name="dl"/>
748
+ <ref name="figure"/>
749
+ <ref name="iref"/>
750
+ <ref name="list"/>
751
+ <ref name="ol"/>
752
+ <ref name="t"/>
753
+ <ref name="table"/>
754
+ <ref name="ul"/>
755
+ </choice>
756
+ </zeroOrMore>
757
+ </element>
758
+ </define>
759
+ <define name="blockquote">
760
+ <element name="blockquote">
761
+ <optional>
762
+ <attribute name="xml:base"/>
763
+ </optional>
764
+ <optional>
765
+ <attribute name="xml:lang"/>
766
+ </optional>
767
+ <optional>
768
+ <attribute name="anchor">
769
+ <data type="ID"/>
770
+ </attribute>
771
+ </optional>
772
+ <optional>
773
+ <attribute name="pn"/>
774
+ </optional>
775
+ <optional>
776
+ <attribute name="cite"/>
777
+ </optional>
778
+ <optional>
779
+ <attribute name="quotedFrom"/>
780
+ </optional>
781
+ <choice>
782
+ <oneOrMore>
783
+ <choice>
784
+ <ref name="artwork"/>
785
+ <ref name="dl"/>
786
+ <ref name="figure"/>
787
+ <ref name="ol"/>
788
+ <ref name="sourcecode"/>
789
+ <ref name="t"/>
790
+ <ref name="ul"/>
791
+ </choice>
792
+ </oneOrMore>
793
+ <oneOrMore>
794
+ <choice>
795
+ <text/>
796
+ <ref name="bcp14"/>
797
+ <ref name="cref"/>
798
+ <ref name="em"/>
799
+ <ref name="eref"/>
800
+ <ref name="iref"/>
801
+ <ref name="relref"/>
802
+ <ref name="strong"/>
803
+ <ref name="sub"/>
804
+ <ref name="sup"/>
805
+ <ref name="tt"/>
806
+ <ref name="xref"/>
807
+ </choice>
808
+ </oneOrMore>
809
+ </choice>
810
+ </element>
811
+ </define>
812
+ <define name="list">
813
+ <element name="list">
814
+ <optional>
815
+ <attribute name="xml:base"/>
816
+ </optional>
817
+ <optional>
818
+ <attribute name="xml:lang"/>
819
+ </optional>
820
+ <optional>
821
+ <attribute name="style" a:defaultValue="empty"/>
822
+ </optional>
823
+ <optional>
824
+ <attribute name="hangIndent"/>
825
+ </optional>
826
+ <optional>
827
+ <attribute name="counter"/>
828
+ </optional>
829
+ <optional>
830
+ <attribute name="pn"/>
831
+ </optional>
832
+ <oneOrMore>
833
+ <ref name="t"/>
834
+ </oneOrMore>
835
+ </element>
836
+ </define>
837
+ <define name="ol">
838
+ <element name="ol">
839
+ <optional>
840
+ <attribute name="xml:base"/>
841
+ </optional>
842
+ <optional>
843
+ <attribute name="xml:lang"/>
844
+ </optional>
845
+ <optional>
846
+ <attribute name="anchor">
847
+ <data type="ID"/>
848
+ </attribute>
849
+ </optional>
850
+ <optional>
851
+ <attribute name="type" a:defaultValue="1"/>
852
+ </optional>
853
+ <optional>
854
+ <attribute name="start" a:defaultValue="1"/>
855
+ </optional>
856
+ <optional>
857
+ <attribute name="group"/>
858
+ </optional>
859
+ <optional>
860
+ <attribute name="spacing" a:defaultValue="normal">
861
+ <choice>
862
+ <value>normal</value>
863
+ <value>compact</value>
864
+ </choice>
865
+ </attribute>
866
+ </optional>
867
+ <optional>
868
+ <attribute name="pn"/>
869
+ </optional>
870
+ <oneOrMore>
871
+ <ref name="li"/>
872
+ </oneOrMore>
873
+ </element>
874
+ </define>
875
+ <define name="ul">
876
+ <element name="ul">
877
+ <optional>
878
+ <attribute name="xml:base"/>
879
+ </optional>
880
+ <optional>
881
+ <attribute name="xml:lang"/>
882
+ </optional>
883
+ <optional>
884
+ <attribute name="anchor">
885
+ <data type="ID"/>
886
+ </attribute>
887
+ </optional>
888
+ <optional>
889
+ <attribute name="spacing" a:defaultValue="normal">
890
+ <choice>
891
+ <value>normal</value>
892
+ <value>compact</value>
893
+ </choice>
894
+ </attribute>
895
+ </optional>
896
+ <optional>
897
+ <attribute name="empty" a:defaultValue="false">
898
+ <choice>
899
+ <value>false</value>
900
+ <value>true</value>
901
+ </choice>
902
+ </attribute>
903
+ <optional>
904
+ <attribute name="pn"/>
905
+ </optional>
906
+ </optional>
907
+ <oneOrMore>
908
+ <ref name="li"/>
909
+ </oneOrMore>
910
+ </element>
911
+ </define>
912
+ <define name="li">
913
+ <element name="li">
914
+ <optional>
915
+ <attribute name="xml:base"/>
916
+ </optional>
917
+ <optional>
918
+ <attribute name="xml:lang"/>
919
+ </optional>
920
+ <optional>
921
+ <attribute name="anchor">
922
+ <data type="ID"/>
923
+ </attribute>
924
+ </optional>
925
+ <optional>
926
+ <attribute name="pn"/>
927
+ </optional>
928
+ <choice>
929
+ <oneOrMore>
930
+ <choice>
931
+ <ref name="artwork"/>
932
+ <ref name="dl"/>
933
+ <ref name="figure"/>
934
+ <ref name="ol"/>
935
+ <ref name="sourcecode"/>
936
+ <ref name="t"/>
937
+ <ref name="ul"/>
938
+ </choice>
939
+ </oneOrMore>
940
+ <oneOrMore>
941
+ <choice>
942
+ <text/>
943
+ <ref name="bcp14"/>
944
+ <ref name="cref"/>
945
+ <ref name="em"/>
946
+ <ref name="eref"/>
947
+ <ref name="iref"/>
948
+ <ref name="relref"/>
949
+ <ref name="strong"/>
950
+ <ref name="sub"/>
951
+ <ref name="sup"/>
952
+ <ref name="tt"/>
953
+ <ref name="xref"/>
954
+ </choice>
955
+ </oneOrMore>
956
+ </choice>
957
+ </element>
958
+ </define>
959
+ <define name="dl">
960
+ <element name="dl">
961
+ <optional>
962
+ <attribute name="xml:base"/>
963
+ </optional>
964
+ <optional>
965
+ <attribute name="xml:lang"/>
966
+ </optional>
967
+ <optional>
968
+ <attribute name="anchor">
969
+ <data type="ID"/>
970
+ </attribute>
971
+ </optional>
972
+ <optional>
973
+ <attribute name="spacing" a:defaultValue="normal">
974
+ <choice>
975
+ <value>normal</value>
976
+ <value>compact</value>
977
+ </choice>
978
+ </attribute>
979
+ </optional>
980
+ <optional>
981
+ <attribute name="hanging" a:defaultValue="true">
982
+ <choice>
983
+ <value>false</value>
984
+ <value>true</value>
985
+ </choice>
986
+ </attribute>
987
+ </optional>
988
+ <optional>
989
+ <attribute name="pn"/>
990
+ </optional>
991
+ <oneOrMore>
992
+ <ref name="dt"/>
993
+ <ref name="dd"/>
994
+ </oneOrMore>
995
+ </element>
996
+ </define>
997
+ <define name="dt">
998
+ <element name="dt">
999
+ <optional>
1000
+ <attribute name="xml:base"/>
1001
+ </optional>
1002
+ <optional>
1003
+ <attribute name="xml:lang"/>
1004
+ </optional>
1005
+ <optional>
1006
+ <attribute name="anchor">
1007
+ <data type="ID"/>
1008
+ </attribute>
1009
+ </optional>
1010
+ <optional>
1011
+ <attribute name="pn"/>
1012
+ </optional>
1013
+ <zeroOrMore>
1014
+ <choice>
1015
+ <text/>
1016
+ <ref name="bcp14"/>
1017
+ <ref name="cref"/>
1018
+ <ref name="em"/>
1019
+ <ref name="eref"/>
1020
+ <ref name="iref"/>
1021
+ <ref name="relref"/>
1022
+ <ref name="strong"/>
1023
+ <ref name="sub"/>
1024
+ <ref name="sup"/>
1025
+ <ref name="tt"/>
1026
+ <ref name="xref"/>
1027
+ </choice>
1028
+ </zeroOrMore>
1029
+ </element>
1030
+ </define>
1031
+ <define name="dd">
1032
+ <element name="dd">
1033
+ <optional>
1034
+ <attribute name="xml:base"/>
1035
+ </optional>
1036
+ <optional>
1037
+ <attribute name="xml:lang"/>
1038
+ </optional>
1039
+ <optional>
1040
+ <attribute name="anchor">
1041
+ <data type="ID"/>
1042
+ </attribute>
1043
+ </optional>
1044
+ <optional>
1045
+ <attribute name="pn"/>
1046
+ </optional>
1047
+ <choice>
1048
+ <oneOrMore>
1049
+ <choice>
1050
+ <ref name="artwork"/>
1051
+ <ref name="dl"/>
1052
+ <ref name="figure"/>
1053
+ <ref name="ol"/>
1054
+ <ref name="sourcecode"/>
1055
+ <ref name="t"/>
1056
+ <ref name="ul"/>
1057
+ </choice>
1058
+ </oneOrMore>
1059
+ <oneOrMore>
1060
+ <choice>
1061
+ <text/>
1062
+ <ref name="bcp14"/>
1063
+ <ref name="cref"/>
1064
+ <ref name="em"/>
1065
+ <ref name="eref"/>
1066
+ <ref name="iref"/>
1067
+ <ref name="relref"/>
1068
+ <ref name="strong"/>
1069
+ <ref name="sub"/>
1070
+ <ref name="sup"/>
1071
+ <ref name="tt"/>
1072
+ <ref name="xref"/>
1073
+ </choice>
1074
+ </oneOrMore>
1075
+ </choice>
1076
+ </element>
1077
+ </define>
1078
+ <define name="xref">
1079
+ <element name="xref">
1080
+ <optional>
1081
+ <attribute name="xml:base"/>
1082
+ </optional>
1083
+ <optional>
1084
+ <attribute name="xml:lang"/>
1085
+ </optional>
1086
+ <attribute name="target">
1087
+ <data type="IDREF"/>
1088
+ </attribute>
1089
+ <optional>
1090
+ <attribute name="pageno" a:defaultValue="false">
1091
+ <choice>
1092
+ <value>true</value>
1093
+ <value>false</value>
1094
+ </choice>
1095
+ </attribute>
1096
+ </optional>
1097
+ <optional>
1098
+ <attribute name="format" a:defaultValue="default">
1099
+ <choice>
1100
+ <value>default</value>
1101
+ <value>title</value>
1102
+ <value>counter</value>
1103
+ <value>none</value>
1104
+ </choice>
1105
+ </attribute>
1106
+ </optional>
1107
+ <optional>
1108
+ <attribute name="derivedContent"/>
1109
+ </optional>
1110
+ <text/>
1111
+ </element>
1112
+ </define>
1113
+ <define name="relref">
1114
+ <element name="relref">
1115
+ <optional>
1116
+ <attribute name="xml:base"/>
1117
+ </optional>
1118
+ <optional>
1119
+ <attribute name="xml:lang"/>
1120
+ </optional>
1121
+ <attribute name="target">
1122
+ <data type="IDREF"/>
1123
+ </attribute>
1124
+ <optional>
1125
+ <attribute name="displayFormat" a:defaultValue="of">
1126
+ <choice>
1127
+ <value>of</value>
1128
+ <value>comma</value>
1129
+ <value>parens</value>
1130
+ <value>bare</value>
1131
+ </choice>
1132
+ </attribute>
1133
+ </optional>
1134
+ <attribute name="section"/>
1135
+ <optional>
1136
+ <attribute name="relative"/>
1137
+ </optional>
1138
+ <optional>
1139
+ <attribute name="derivedLink"/>
1140
+ </optional>
1141
+ <text/>
1142
+ </element>
1143
+ </define>
1144
+ <define name="eref">
1145
+ <element name="eref">
1146
+ <optional>
1147
+ <attribute name="xml:base"/>
1148
+ </optional>
1149
+ <optional>
1150
+ <attribute name="xml:lang"/>
1151
+ </optional>
1152
+ <attribute name="target"/>
1153
+ <text/>
1154
+ </element>
1155
+ </define>
1156
+ <define name="iref">
1157
+ <element name="iref">
1158
+ <optional>
1159
+ <attribute name="xml:base"/>
1160
+ </optional>
1161
+ <optional>
1162
+ <attribute name="xml:lang"/>
1163
+ </optional>
1164
+ <attribute name="item"/>
1165
+ <optional>
1166
+ <attribute name="subitem" a:defaultValue=""/>
1167
+ </optional>
1168
+ <optional>
1169
+ <attribute name="primary" a:defaultValue="false">
1170
+ <choice>
1171
+ <value>true</value>
1172
+ <value>false</value>
1173
+ </choice>
1174
+ </attribute>
1175
+ </optional>
1176
+ <optional>
1177
+ <attribute name="pn"/>
1178
+ </optional>
1179
+ <empty/>
1180
+ </element>
1181
+ </define>
1182
+ <define name="cref">
1183
+ <element name="cref">
1184
+ <optional>
1185
+ <attribute name="xml:base"/>
1186
+ </optional>
1187
+ <optional>
1188
+ <attribute name="xml:lang"/>
1189
+ </optional>
1190
+ <optional>
1191
+ <attribute name="anchor">
1192
+ <data type="ID"/>
1193
+ </attribute>
1194
+ </optional>
1195
+ <optional>
1196
+ <attribute name="source"/>
1197
+ </optional>
1198
+ <optional>
1199
+ <attribute name="display" a:defaultValue="true">
1200
+ <choice>
1201
+ <value>true</value>
1202
+ <value>false</value>
1203
+ </choice>
1204
+ </attribute>
1205
+ </optional>
1206
+ <zeroOrMore>
1207
+ <choice>
1208
+ <text/>
1209
+ <ref name="em"/>
1210
+ <ref name="eref"/>
1211
+ <ref name="relref"/>
1212
+ <ref name="strong"/>
1213
+ <ref name="sub"/>
1214
+ <ref name="sup"/>
1215
+ <ref name="tt"/>
1216
+ <ref name="xref"/>
1217
+ </choice>
1218
+ </zeroOrMore>
1219
+ </element>
1220
+ </define>
1221
+ <define name="tt">
1222
+ <element name="tt">
1223
+ <optional>
1224
+ <attribute name="xml:base"/>
1225
+ </optional>
1226
+ <optional>
1227
+ <attribute name="xml:lang"/>
1228
+ </optional>
1229
+ <zeroOrMore>
1230
+ <choice>
1231
+ <text/>
1232
+ <ref name="bcp14"/>
1233
+ <ref name="cref"/>
1234
+ <ref name="em"/>
1235
+ <ref name="eref"/>
1236
+ <ref name="iref"/>
1237
+ <ref name="relref"/>
1238
+ <ref name="strong"/>
1239
+ <ref name="sub"/>
1240
+ <ref name="sup"/>
1241
+ <ref name="xref"/>
1242
+ </choice>
1243
+ </zeroOrMore>
1244
+ </element>
1245
+ </define>
1246
+ <define name="strong">
1247
+ <element name="strong">
1248
+ <optional>
1249
+ <attribute name="xml:base"/>
1250
+ </optional>
1251
+ <optional>
1252
+ <attribute name="xml:lang"/>
1253
+ </optional>
1254
+ <zeroOrMore>
1255
+ <choice>
1256
+ <text/>
1257
+ <ref name="bcp14"/>
1258
+ <ref name="cref"/>
1259
+ <ref name="em"/>
1260
+ <ref name="eref"/>
1261
+ <ref name="iref"/>
1262
+ <ref name="relref"/>
1263
+ <ref name="sub"/>
1264
+ <ref name="sup"/>
1265
+ <ref name="tt"/>
1266
+ <ref name="xref"/>
1267
+ </choice>
1268
+ </zeroOrMore>
1269
+ </element>
1270
+ </define>
1271
+ <define name="em">
1272
+ <element name="em">
1273
+ <optional>
1274
+ <attribute name="xml:base"/>
1275
+ </optional>
1276
+ <optional>
1277
+ <attribute name="xml:lang"/>
1278
+ </optional>
1279
+ <zeroOrMore>
1280
+ <choice>
1281
+ <text/>
1282
+ <ref name="bcp14"/>
1283
+ <ref name="cref"/>
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="xref"/>
1292
+ </choice>
1293
+ </zeroOrMore>
1294
+ </element>
1295
+ </define>
1296
+ <define name="sub">
1297
+ <element name="sub">
1298
+ <optional>
1299
+ <attribute name="xml:base"/>
1300
+ </optional>
1301
+ <optional>
1302
+ <attribute name="xml:lang"/>
1303
+ </optional>
1304
+ <zeroOrMore>
1305
+ <choice>
1306
+ <text/>
1307
+ <ref name="bcp14"/>
1308
+ <ref name="cref"/>
1309
+ <ref name="em"/>
1310
+ <ref name="eref"/>
1311
+ <ref name="iref"/>
1312
+ <ref name="relref"/>
1313
+ <ref name="strong"/>
1314
+ <ref name="tt"/>
1315
+ <ref name="xref"/>
1316
+ </choice>
1317
+ </zeroOrMore>
1318
+ </element>
1319
+ </define>
1320
+ <define name="sup">
1321
+ <element name="sup">
1322
+ <optional>
1323
+ <attribute name="xml:base"/>
1324
+ </optional>
1325
+ <optional>
1326
+ <attribute name="xml:lang"/>
1327
+ </optional>
1328
+ <zeroOrMore>
1329
+ <choice>
1330
+ <text/>
1331
+ <ref name="bcp14"/>
1332
+ <ref name="cref"/>
1333
+ <ref name="em"/>
1334
+ <ref name="eref"/>
1335
+ <ref name="iref"/>
1336
+ <ref name="relref"/>
1337
+ <ref name="strong"/>
1338
+ <ref name="tt"/>
1339
+ <ref name="xref"/>
1340
+ </choice>
1341
+ </zeroOrMore>
1342
+ </element>
1343
+ </define>
1344
+ <define name="spanx">
1345
+ <element name="spanx">
1346
+ <optional>
1347
+ <attribute name="xml:base"/>
1348
+ </optional>
1349
+ <optional>
1350
+ <attribute name="xml:lang"/>
1351
+ </optional>
1352
+ <optional>
1353
+ <attribute name="xml:space" a:defaultValue="preserve">
1354
+ <choice>
1355
+ <value>default</value>
1356
+ <value>preserve</value>
1357
+ </choice>
1358
+ </attribute>
1359
+ </optional>
1360
+ <optional>
1361
+ <attribute name="style" a:defaultValue="emph"/>
1362
+ </optional>
1363
+ <text/>
1364
+ </element>
1365
+ </define>
1366
+ <define name="vspace">
1367
+ <element name="vspace">
1368
+ <optional>
1369
+ <attribute name="xml:base"/>
1370
+ </optional>
1371
+ <optional>
1372
+ <attribute name="xml:lang"/>
1373
+ </optional>
1374
+ <optional>
1375
+ <attribute name="blankLines" a:defaultValue="0"/>
1376
+ </optional>
1377
+ <empty/>
1378
+ </element>
1379
+ </define>
1380
+ <define name="figure">
1381
+ <element name="figure">
1382
+ <optional>
1383
+ <attribute name="xml:base"/>
1384
+ </optional>
1385
+ <optional>
1386
+ <attribute name="xml:lang"/>
1387
+ </optional>
1388
+ <optional>
1389
+ <attribute name="anchor">
1390
+ <data type="ID"/>
1391
+ </attribute>
1392
+ </optional>
1393
+ <optional>
1394
+ <attribute name="pn"/>
1395
+ </optional>
1396
+ <optional>
1397
+ <attribute name="title" a:defaultValue=""/>
1398
+ </optional>
1399
+ <optional>
1400
+ <attribute name="suppress-title" a:defaultValue="false">
1401
+ <choice>
1402
+ <value>true</value>
1403
+ <value>false</value>
1404
+ </choice>
1405
+ </attribute>
1406
+ </optional>
1407
+ <optional>
1408
+ <attribute name="src"/>
1409
+ </optional>
1410
+ <optional>
1411
+ <attribute name="originalSrc"/>
1412
+ </optional>
1413
+ <optional>
1414
+ <attribute name="align" a:defaultValue="left">
1415
+ <choice>
1416
+ <value>left</value>
1417
+ <value>center</value>
1418
+ <value>right</value>
1419
+ </choice>
1420
+ </attribute>
1421
+ </optional>
1422
+ <optional>
1423
+ <attribute name="alt" a:defaultValue=""/>
1424
+ </optional>
1425
+ <optional>
1426
+ <attribute name="width" a:defaultValue=""/>
1427
+ </optional>
1428
+ <optional>
1429
+ <attribute name="height" a:defaultValue=""/>
1430
+ </optional>
1431
+ <optional>
1432
+ <ref name="name"/>
1433
+ </optional>
1434
+ <zeroOrMore>
1435
+ <ref name="iref"/>
1436
+ </zeroOrMore>
1437
+ <optional>
1438
+ <ref name="preamble"/>
1439
+ </optional>
1440
+ <oneOrMore>
1441
+ <choice>
1442
+ <ref name="artwork"/>
1443
+ <ref name="sourcecode"/>
1444
+ </choice>
1445
+ </oneOrMore>
1446
+ <optional>
1447
+ <ref name="postamble"/>
1448
+ </optional>
1449
+ </element>
1450
+ </define>
1451
+ <define name="table">
1452
+ <element name="table">
1453
+ <optional>
1454
+ <attribute name="xml:base"/>
1455
+ </optional>
1456
+ <optional>
1457
+ <attribute name="xml:lang"/>
1458
+ </optional>
1459
+ <optional>
1460
+ <attribute name="anchor">
1461
+ <data type="ID"/>
1462
+ </attribute>
1463
+ </optional>
1464
+ <optional>
1465
+ <attribute name="pn"/>
1466
+ </optional>
1467
+ <optional>
1468
+ <ref name="name"/>
1469
+ </optional>
1470
+ <zeroOrMore>
1471
+ <ref name="iref"/>
1472
+ </zeroOrMore>
1473
+ <optional>
1474
+ <ref name="thead"/>
1475
+ </optional>
1476
+ <oneOrMore>
1477
+ <ref name="tbody"/>
1478
+ </oneOrMore>
1479
+ <optional>
1480
+ <ref name="tfoot"/>
1481
+ </optional>
1482
+ </element>
1483
+ </define>
1484
+ <define name="preamble">
1485
+ <element name="preamble">
1486
+ <optional>
1487
+ <attribute name="xml:base"/>
1488
+ </optional>
1489
+ <optional>
1490
+ <attribute name="xml:lang"/>
1491
+ </optional>
1492
+ <zeroOrMore>
1493
+ <choice>
1494
+ <text/>
1495
+ <ref name="bcp14"/>
1496
+ <ref name="cref"/>
1497
+ <ref name="em"/>
1498
+ <ref name="eref"/>
1499
+ <ref name="iref"/>
1500
+ <ref name="relref"/>
1501
+ <ref name="spanx"/>
1502
+ <ref name="strong"/>
1503
+ <ref name="sub"/>
1504
+ <ref name="sup"/>
1505
+ <ref name="tt"/>
1506
+ <ref name="xref"/>
1507
+ </choice>
1508
+ </zeroOrMore>
1509
+ </element>
1510
+ </define>
1511
+ <define name="artwork">
1512
+ <element name="artwork">
1513
+ <optional>
1514
+ <attribute name="xml:base"/>
1515
+ </optional>
1516
+ <optional>
1517
+ <attribute name="xml:lang"/>
1518
+ </optional>
1519
+ <optional>
1520
+ <attribute name="anchor">
1521
+ <data type="ID"/>
1522
+ </attribute>
1523
+ </optional>
1524
+ <optional>
1525
+ <attribute name="pn"/>
1526
+ </optional>
1527
+ <optional>
1528
+ <attribute name="xml:space"/>
1529
+ </optional>
1530
+ <optional>
1531
+ <attribute name="name" a:defaultValue=""/>
1532
+ </optional>
1533
+ <optional>
1534
+ <attribute name="type" a:defaultValue=""/>
1535
+ </optional>
1536
+ <optional>
1537
+ <attribute name="src"/>
1538
+ </optional>
1539
+ <optional>
1540
+ <attribute name="align" a:defaultValue="left">
1541
+ <choice>
1542
+ <value>left</value>
1543
+ <value>center</value>
1544
+ <value>right</value>
1545
+ </choice>
1546
+ </attribute>
1547
+ </optional>
1548
+ <optional>
1549
+ <attribute name="alt" a:defaultValue=""/>
1550
+ </optional>
1551
+ <optional>
1552
+ <attribute name="width" a:defaultValue=""/>
1553
+ </optional>
1554
+ <optional>
1555
+ <attribute name="height" a:defaultValue=""/>
1556
+ </optional>
1557
+ <optional>
1558
+ <attribute name="originalSrc"/>
1559
+ </optional>
1560
+ <choice>
1561
+ <zeroOrMore>
1562
+ <text/>
1563
+ </zeroOrMore>
1564
+ <externalRef href="#{svg_location}"/>
1565
+ <!--<ref name="svg"/>-->
1566
+ </choice>
1567
+ </element>
1568
+ </define>
1569
+ <!-- https://www.rfc-editor.org/materials/format/SVG-1.2-RFC.rnc -->
1570
+ <define name="sourcecode">
1571
+ <element name="sourcecode">
1572
+ <optional>
1573
+ <attribute name="xml:base"/>
1574
+ </optional>
1575
+ <optional>
1576
+ <attribute name="xml:lang"/>
1577
+ </optional>
1578
+ <optional>
1579
+ <attribute name="anchor">
1580
+ <data type="ID"/>
1581
+ </attribute>
1582
+ </optional>
1583
+ <optional>
1584
+ <attribute name="pn"/>
1585
+ </optional>
1586
+ <optional>
1587
+ <attribute name="name" a:defaultValue=""/>
1588
+ </optional>
1589
+ <optional>
1590
+ <attribute name="type" a:defaultValue=""/>
1591
+ </optional>
1592
+ <optional>
1593
+ <attribute name="src"/>
1594
+ </optional>
1595
+ <optional>
1596
+ <attribute name="originalSrc"/>
1597
+ </optional>
1598
+ <text/>
1599
+ </element>
1600
+ </define>
1601
+ <define name="thead">
1602
+ <element name="thead">
1603
+ <optional>
1604
+ <attribute name="xml:base"/>
1605
+ </optional>
1606
+ <optional>
1607
+ <attribute name="xml:lang"/>
1608
+ </optional>
1609
+ <optional>
1610
+ <attribute name="anchor">
1611
+ <data type="ID"/>
1612
+ </attribute>
1613
+ </optional>
1614
+ <oneOrMore>
1615
+ <ref name="tr"/>
1616
+ </oneOrMore>
1617
+ </element>
1618
+ </define>
1619
+ <define name="tbody">
1620
+ <element name="tbody">
1621
+ <optional>
1622
+ <attribute name="xml:base"/>
1623
+ </optional>
1624
+ <optional>
1625
+ <attribute name="xml:lang"/>
1626
+ </optional>
1627
+ <optional>
1628
+ <attribute name="anchor">
1629
+ <data type="ID"/>
1630
+ </attribute>
1631
+ </optional>
1632
+ <oneOrMore>
1633
+ <ref name="tr"/>
1634
+ </oneOrMore>
1635
+ </element>
1636
+ </define>
1637
+ <define name="tfoot">
1638
+ <element name="tfoot">
1639
+ <optional>
1640
+ <attribute name="xml:base"/>
1641
+ </optional>
1642
+ <optional>
1643
+ <attribute name="xml:lang"/>
1644
+ </optional>
1645
+ <optional>
1646
+ <attribute name="anchor">
1647
+ <data type="ID"/>
1648
+ </attribute>
1649
+ </optional>
1650
+ <oneOrMore>
1651
+ <ref name="tr"/>
1652
+ </oneOrMore>
1653
+ </element>
1654
+ </define>
1655
+ <define name="tr">
1656
+ <element name="tr">
1657
+ <optional>
1658
+ <attribute name="xml:base"/>
1659
+ </optional>
1660
+ <optional>
1661
+ <attribute name="xml:lang"/>
1662
+ </optional>
1663
+ <optional>
1664
+ <attribute name="anchor">
1665
+ <data type="ID"/>
1666
+ </attribute>
1667
+ </optional>
1668
+ <oneOrMore>
1669
+ <choice>
1670
+ <ref name="td"/>
1671
+ <ref name="th"/>
1672
+ </choice>
1673
+ </oneOrMore>
1674
+ </element>
1675
+ </define>
1676
+ <define name="td">
1677
+ <element name="td">
1678
+ <optional>
1679
+ <attribute name="xml:base"/>
1680
+ </optional>
1681
+ <optional>
1682
+ <attribute name="xml:lang"/>
1683
+ </optional>
1684
+ <optional>
1685
+ <attribute name="anchor">
1686
+ <data type="ID"/>
1687
+ </attribute>
1688
+ </optional>
1689
+ <optional>
1690
+ <attribute name="colspan" a:defaultValue="0"/>
1691
+ </optional>
1692
+ <optional>
1693
+ <attribute name="rowspan" a:defaultValue="0"/>
1694
+ </optional>
1695
+ <optional>
1696
+ <attribute name="align" a:defaultValue="left">
1697
+ <choice>
1698
+ <value>left</value>
1699
+ <value>center</value>
1700
+ <value>right</value>
1701
+ </choice>
1702
+ </attribute>
1703
+ </optional>
1704
+ <choice>
1705
+ <oneOrMore>
1706
+ <choice>
1707
+ <ref name="artwork"/>
1708
+ <ref name="dl"/>
1709
+ <ref name="figure"/>
1710
+ <ref name="ol"/>
1711
+ <ref name="sourcecode"/>
1712
+ <ref name="t"/>
1713
+ <ref name="ul"/>
1714
+ </choice>
1715
+ </oneOrMore>
1716
+ <zeroOrMore>
1717
+ <choice>
1718
+ <text/>
1719
+ <ref name="bcp14"/>
1720
+ <ref name="br"/>
1721
+ <ref name="cref"/>
1722
+ <ref name="em"/>
1723
+ <ref name="eref"/>
1724
+ <ref name="iref"/>
1725
+ <ref name="relref"/>
1726
+ <ref name="strong"/>
1727
+ <ref name="sub"/>
1728
+ <ref name="sup"/>
1729
+ <ref name="tt"/>
1730
+ <ref name="xref"/>
1731
+ </choice>
1732
+ </zeroOrMore>
1733
+ </choice>
1734
+ </element>
1735
+ </define>
1736
+ <define name="th">
1737
+ <element name="th">
1738
+ <optional>
1739
+ <attribute name="xml:base"/>
1740
+ </optional>
1741
+ <optional>
1742
+ <attribute name="xml:lang"/>
1743
+ </optional>
1744
+ <optional>
1745
+ <attribute name="anchor">
1746
+ <data type="ID"/>
1747
+ </attribute>
1748
+ </optional>
1749
+ <optional>
1750
+ <attribute name="colspan" a:defaultValue="0"/>
1751
+ </optional>
1752
+ <optional>
1753
+ <attribute name="rowspan" a:defaultValue="0"/>
1754
+ </optional>
1755
+ <optional>
1756
+ <attribute name="align" a:defaultValue="left">
1757
+ <choice>
1758
+ <value>left</value>
1759
+ <value>center</value>
1760
+ <value>right</value>
1761
+ </choice>
1762
+ </attribute>
1763
+ </optional>
1764
+ <choice>
1765
+ <oneOrMore>
1766
+ <choice>
1767
+ <ref name="artwork"/>
1768
+ <ref name="dl"/>
1769
+ <ref name="figure"/>
1770
+ <ref name="ol"/>
1771
+ <ref name="sourcecode"/>
1772
+ <ref name="t"/>
1773
+ <ref name="ul"/>
1774
+ </choice>
1775
+ </oneOrMore>
1776
+ <zeroOrMore>
1777
+ <choice>
1778
+ <text/>
1779
+ <ref name="bcp14"/>
1780
+ <ref name="br"/>
1781
+ <ref name="cref"/>
1782
+ <ref name="em"/>
1783
+ <ref name="eref"/>
1784
+ <ref name="iref"/>
1785
+ <ref name="relref"/>
1786
+ <ref name="strong"/>
1787
+ <ref name="sub"/>
1788
+ <ref name="sup"/>
1789
+ <ref name="tt"/>
1790
+ <ref name="xref"/>
1791
+ </choice>
1792
+ </zeroOrMore>
1793
+ </choice>
1794
+ </element>
1795
+ </define>
1796
+ <define name="postamble">
1797
+ <element name="postamble">
1798
+ <optional>
1799
+ <attribute name="xml:base"/>
1800
+ </optional>
1801
+ <optional>
1802
+ <attribute name="xml:lang"/>
1803
+ </optional>
1804
+ <zeroOrMore>
1805
+ <choice>
1806
+ <text/>
1807
+ <ref name="cref"/>
1808
+ <ref name="eref"/>
1809
+ <ref name="iref"/>
1810
+ <ref name="spanx"/>
1811
+ <ref name="xref"/>
1812
+ </choice>
1813
+ </zeroOrMore>
1814
+ </element>
1815
+ </define>
1816
+ <define name="texttable">
1817
+ <element name="texttable">
1818
+ <optional>
1819
+ <attribute name="xml:base"/>
1820
+ </optional>
1821
+ <optional>
1822
+ <attribute name="xml:lang"/>
1823
+ </optional>
1824
+ <optional>
1825
+ <attribute name="anchor">
1826
+ <data type="ID"/>
1827
+ </attribute>
1828
+ </optional>
1829
+ <optional>
1830
+ <attribute name="title" a:defaultValue=""/>
1831
+ </optional>
1832
+ <optional>
1833
+ <attribute name="suppress-title" a:defaultValue="false">
1834
+ <choice>
1835
+ <value>true</value>
1836
+ <value>false</value>
1837
+ </choice>
1838
+ </attribute>
1839
+ </optional>
1840
+ <optional>
1841
+ <attribute name="align" a:defaultValue="center">
1842
+ <choice>
1843
+ <value>left</value>
1844
+ <value>center</value>
1845
+ <value>right</value>
1846
+ </choice>
1847
+ </attribute>
1848
+ </optional>
1849
+ <optional>
1850
+ <attribute name="style" a:defaultValue="full">
1851
+ <choice>
1852
+ <value>all</value>
1853
+ <value>none</value>
1854
+ <value>headers</value>
1855
+ <value>full</value>
1856
+ </choice>
1857
+ </attribute>
1858
+ </optional>
1859
+ <optional>
1860
+ <ref name="name"/>
1861
+ </optional>
1862
+ <optional>
1863
+ <ref name="preamble"/>
1864
+ </optional>
1865
+ <oneOrMore>
1866
+ <ref name="ttcol"/>
1867
+ </oneOrMore>
1868
+ <zeroOrMore>
1869
+ <ref name="c"/>
1870
+ </zeroOrMore>
1871
+ <optional>
1872
+ <ref name="postamble"/>
1873
+ </optional>
1874
+ </element>
1875
+ </define>
1876
+ <define name="ttcol">
1877
+ <element name="ttcol">
1878
+ <optional>
1879
+ <attribute name="xml:base"/>
1880
+ </optional>
1881
+ <optional>
1882
+ <attribute name="xml:lang"/>
1883
+ </optional>
1884
+ <optional>
1885
+ <attribute name="width"/>
1886
+ </optional>
1887
+ <optional>
1888
+ <attribute name="align" a:defaultValue="left">
1889
+ <choice>
1890
+ <value>left</value>
1891
+ <value>center</value>
1892
+ <value>right</value>
1893
+ </choice>
1894
+ </attribute>
1895
+ </optional>
1896
+ <zeroOrMore>
1897
+ <choice>
1898
+ <ref name="cref"/>
1899
+ <ref name="eref"/>
1900
+ <ref name="iref"/>
1901
+ <ref name="xref"/>
1902
+ <text/>
1903
+ </choice>
1904
+ </zeroOrMore>
1905
+ </element>
1906
+ </define>
1907
+ <define name="c">
1908
+ <element name="c">
1909
+ <optional>
1910
+ <attribute name="xml:base"/>
1911
+ </optional>
1912
+ <optional>
1913
+ <attribute name="xml:lang"/>
1914
+ </optional>
1915
+ <zeroOrMore>
1916
+ <choice>
1917
+ <text/>
1918
+ <ref name="cref"/>
1919
+ <ref name="eref"/>
1920
+ <ref name="iref"/>
1921
+ <ref name="spanx"/>
1922
+ <ref name="xref"/>
1923
+ </choice>
1924
+ </zeroOrMore>
1925
+ </element>
1926
+ </define>
1927
+ <define name="bcp14">
1928
+ <element name="bcp14">
1929
+ <optional>
1930
+ <attribute name="xml:base"/>
1931
+ </optional>
1932
+ <optional>
1933
+ <attribute name="xml:lang"/>
1934
+ </optional>
1935
+ <text/>
1936
+ </element>
1937
+ </define>
1938
+ <define name="br">
1939
+ <element name="br">
1940
+ <optional>
1941
+ <attribute name="xml:base"/>
1942
+ </optional>
1943
+ <optional>
1944
+ <attribute name="xml:lang"/>
1945
+ </optional>
1946
+ <empty/>
1947
+ </element>
1948
+ </define>
1949
+ <define name="back">
1950
+ <element name="back">
1951
+ <optional>
1952
+ <attribute name="xml:base"/>
1953
+ </optional>
1954
+ <optional>
1955
+ <attribute name="xml:lang"/>
1956
+ </optional>
1957
+ <zeroOrMore>
1958
+ <ref name="displayreference"/>
1959
+ </zeroOrMore>
1960
+ <zeroOrMore>
1961
+ <ref name="references"/>
1962
+ </zeroOrMore>
1963
+ <zeroOrMore>
1964
+ <ref name="section"/>
1965
+ </zeroOrMore>
1966
+ </element>
1967
+ </define>
1968
+ <define name="displayreference">
1969
+ <element name="displayreference">
1970
+ <optional>
1971
+ <attribute name="xml:base"/>
1972
+ </optional>
1973
+ <optional>
1974
+ <attribute name="xml:lang"/>
1975
+ </optional>
1976
+ <attribute name="target">
1977
+ <data type="IDREF"/>
1978
+ </attribute>
1979
+ <attribute name="to"/>
1980
+ </element>
1981
+ </define>
1982
+ <define name="references">
1983
+ <element name="references">
1984
+ <optional>
1985
+ <attribute name="xml:base"/>
1986
+ </optional>
1987
+ <optional>
1988
+ <attribute name="xml:lang"/>
1989
+ </optional>
1990
+ <optional>
1991
+ <attribute name="pn"/>
1992
+ </optional>
1993
+ <optional>
1994
+ <attribute name="anchor">
1995
+ <data type="ID"/>
1996
+ </attribute>
1997
+ </optional>
1998
+ <optional>
1999
+ <attribute name="title"/>
2000
+ </optional>
2001
+ <optional>
2002
+ <ref name="name"/>
2003
+ </optional>
2004
+ <zeroOrMore>
2005
+ <choice>
2006
+ <ref name="reference"/>
2007
+ <ref name="referencegroup"/>
2008
+ </choice>
2009
+ </zeroOrMore>
2010
+ </element>
2011
+ </define>
2012
+ <define name="reference">
2013
+ <element name="reference">
2014
+ <optional>
2015
+ <attribute name="xml:base"/>
2016
+ </optional>
2017
+ <optional>
2018
+ <attribute name="xml:lang"/>
2019
+ </optional>
2020
+ <attribute name="anchor">
2021
+ <data type="ID"/>
2022
+ </attribute>
2023
+ <optional>
2024
+ <attribute name="target"/>
2025
+ </optional>
2026
+ <optional>
2027
+ <attribute name="quoteTitle" a:defaultValue="true">
2028
+ <choice>
2029
+ <value>true</value>
2030
+ <value>false</value>
2031
+ </choice>
2032
+ </attribute>
2033
+ </optional>
2034
+ <ref name="front"/>
2035
+ <zeroOrMore>
2036
+ <choice>
2037
+ <ref name="annotation"/>
2038
+ <ref name="format"/>
2039
+ <ref name="refcontent"/>
2040
+ <ref name="seriesInfo"/>
2041
+ </choice>
2042
+ </zeroOrMore>
2043
+ </element>
2044
+ </define>
2045
+ <define name="referencegroup">
2046
+ <element name="referencegroup">
2047
+ <optional>
2048
+ <attribute name="xml:base"/>
2049
+ </optional>
2050
+ <optional>
2051
+ <attribute name="xml:lang"/>
2052
+ </optional>
2053
+ <attribute name="anchor">
2054
+ <data type="ID"/>
2055
+ </attribute>
2056
+ <oneOrMore>
2057
+ <ref name="reference"/>
2058
+ </oneOrMore>
2059
+ </element>
2060
+ </define>
2061
+ <define name="seriesInfo">
2062
+ <element name="seriesInfo">
2063
+ <optional>
2064
+ <attribute name="xml:base"/>
2065
+ </optional>
2066
+ <optional>
2067
+ <attribute name="xml:lang"/>
2068
+ </optional>
2069
+ <attribute name="name"/>
2070
+ <attribute name="value"/>
2071
+ <optional>
2072
+ <attribute name="asciiName"/>
2073
+ </optional>
2074
+ <optional>
2075
+ <attribute name="asciiValue"/>
2076
+ </optional>
2077
+ <optional>
2078
+ <attribute name="status"/>
2079
+ </optional>
2080
+ <optional>
2081
+ <attribute name="stream" a:defaultValue="IETF">
2082
+ <choice>
2083
+ <value>IETF</value>
2084
+ <value>IAB</value>
2085
+ <value>IRTF</value>
2086
+ <value>independent</value>
2087
+ </choice>
2088
+ </attribute>
2089
+ </optional>
2090
+ <empty/>
2091
+ </element>
2092
+ </define>
2093
+ <define name="format">
2094
+ <element name="format">
2095
+ <optional>
2096
+ <attribute name="xml:base"/>
2097
+ </optional>
2098
+ <optional>
2099
+ <attribute name="xml:lang"/>
2100
+ </optional>
2101
+ <optional>
2102
+ <attribute name="target"/>
2103
+ </optional>
2104
+ <attribute name="type"/>
2105
+ <optional>
2106
+ <attribute name="octets"/>
2107
+ </optional>
2108
+ <empty/>
2109
+ </element>
2110
+ </define>
2111
+ <define name="annotation">
2112
+ <element name="annotation">
2113
+ <optional>
2114
+ <attribute name="xml:base"/>
2115
+ </optional>
2116
+ <optional>
2117
+ <attribute name="xml:lang"/>
2118
+ </optional>
2119
+ <zeroOrMore>
2120
+ <choice>
2121
+ <text/>
2122
+ <ref name="bcp14"/>
2123
+ <ref name="cref"/>
2124
+ <ref name="em"/>
2125
+ <ref name="eref"/>
2126
+ <ref name="iref"/>
2127
+ <ref name="relref"/>
2128
+ <ref name="spanx"/>
2129
+ <ref name="strong"/>
2130
+ <ref name="sub"/>
2131
+ <ref name="sup"/>
2132
+ <ref name="tt"/>
2133
+ <ref name="xref"/>
2134
+ </choice>
2135
+ </zeroOrMore>
2136
+ </element>
2137
+ </define>
2138
+ <define name="refcontent">
2139
+ <element name="refcontent">
2140
+ <optional>
2141
+ <attribute name="xml:base"/>
2142
+ </optional>
2143
+ <optional>
2144
+ <attribute name="xml:lang"/>
2145
+ </optional>
2146
+ <zeroOrMore>
2147
+ <choice>
2148
+ <text/>
2149
+ <ref name="bcp14"/>
2150
+ <ref name="em"/>
2151
+ <ref name="strong"/>
2152
+ <ref name="sub"/>
2153
+ <ref name="sup"/>
2154
+ <ref name="tt"/>
2155
+ </choice>
2156
+ </zeroOrMore>
2157
+ </element>
2158
+ </define>
2159
+ <start combine="choice">
2160
+ <ref name="rfc"/>
2161
+ </start>
2162
+ </grammar>
2163
+ RELAXNG
2164
+ end
2165
+ end
2166
+ end
2167
+ end
2168
+ end