relaton-iso 1.19.2 → 2.0.0.pre.alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/Gemfile +1 -0
  4. data/README.adoc +134 -131
  5. data/bin/console +1 -1
  6. data/grammars/basicdoc.rng +2110 -0
  7. data/grammars/biblio-standoc.rng +287 -0
  8. data/grammars/biblio.rng +2097 -0
  9. data/grammars/relaton-iso-compile.rng +11 -0
  10. data/grammars/relaton-iso.rng +214 -0
  11. data/lib/relaton/iso/bibliography.rb +206 -0
  12. data/lib/relaton/iso/data_fetcher.rb +227 -0
  13. data/lib/relaton/iso/hash_parser_v1.rb +121 -0
  14. data/lib/relaton/iso/hit.rb +62 -0
  15. data/lib/relaton/iso/hit_collection.rb +117 -0
  16. data/lib/relaton/iso/item_data.rb +49 -0
  17. data/lib/relaton/iso/model/bibdata.rb +9 -0
  18. data/lib/relaton/iso/model/bibitem.rb +7 -0
  19. data/lib/relaton/iso/model/contributor.rb +7 -0
  20. data/lib/relaton/iso/model/contributor_info.rb +9 -0
  21. data/lib/relaton/iso/model/docidentifier.rb +128 -0
  22. data/lib/relaton/iso/model/doctype.rb +13 -0
  23. data/lib/relaton/iso/model/ext.rb +47 -0
  24. data/lib/relaton/iso/model/iso_project_group.rb +21 -0
  25. data/lib/relaton/iso/model/item.rb +17 -0
  26. data/lib/relaton/iso/model/item_base.rb +19 -0
  27. data/lib/relaton/iso/model/organization.rb +9 -0
  28. data/lib/relaton/iso/model/project_number.rb +22 -0
  29. data/lib/relaton/iso/model/relation.rb +9 -0
  30. data/lib/relaton/iso/model/stagename.rb +14 -0
  31. data/lib/relaton/iso/model/structured_identifier.rb +31 -0
  32. data/lib/relaton/iso/processor.rb +78 -0
  33. data/lib/relaton/iso/queue.rb +63 -0
  34. data/lib/relaton/iso/scraper.rb +591 -0
  35. data/lib/relaton/iso/util.rb +8 -0
  36. data/lib/relaton/iso/version.rb +7 -0
  37. data/lib/relaton/iso.rb +17 -0
  38. data/relaton_iso.gemspec +9 -7
  39. metadata +79 -49
  40. data/bin/bundle +0 -109
  41. data/bin/byebug +0 -27
  42. data/bin/coderay +0 -27
  43. data/bin/gdb_wrapper +0 -29
  44. data/bin/htmldiff +0 -27
  45. data/bin/httpclient +0 -29
  46. data/bin/ldiff +0 -27
  47. data/bin/nokogiri +0 -27
  48. data/bin/pry +0 -27
  49. data/bin/pubid-nist +0 -27
  50. data/bin/racc +0 -27
  51. data/bin/rackup +0 -29
  52. data/bin/rake +0 -27
  53. data/bin/rubocop +0 -27
  54. data/bin/ruby-parse +0 -27
  55. data/bin/ruby-rewrite +0 -27
  56. data/bin/safe_yaml +0 -29
  57. data/bin/thor +0 -27
  58. data/lib/relaton_iso/data_fetcher.rb +0 -246
  59. data/lib/relaton_iso/document_identifier.rb +0 -46
  60. data/lib/relaton_iso/hash_converter.rb +0 -15
  61. data/lib/relaton_iso/hit.rb +0 -59
  62. data/lib/relaton_iso/hit_collection.rb +0 -100
  63. data/lib/relaton_iso/iso_bibliography.rb +0 -202
  64. data/lib/relaton_iso/processor.rb +0 -67
  65. data/lib/relaton_iso/queue.rb +0 -61
  66. data/lib/relaton_iso/scrapper.rb +0 -553
  67. data/lib/relaton_iso/util.rb +0 -6
  68. data/lib/relaton_iso/version.rb +0 -5
  69. data/lib/relaton_iso.rb +0 -17
@@ -0,0 +1,2110 @@
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
+ <define name="document">
4
+ <a:documentation>Document</a:documentation>
5
+ <element name="document">
6
+ <optional>
7
+ <attribute name="identifier">
8
+ <a:documentation>A globally unique identifier for the document in an agreed identifier schema. The identifier is to be used for tracking interactions with the document without depending on formal document registries; it would be exemplified by a GUID, rather than a document registry identifier such as "`ISO 639`", which belongs to `bibdata`</a:documentation>
9
+ </attribute>
10
+ </optional>
11
+ <ref name="bibdata">
12
+ <a:documentation>A bibliographic description, capturing bibliographic metadata about the document itself, including authors, title, and date of production</a:documentation>
13
+ </ref>
14
+ <ref name="sections">
15
+ <a:documentation>Hierarchically arranged units of textual content within the document</a:documentation>
16
+ </ref>
17
+ <zeroOrMore>
18
+ <ref name="references">
19
+ <a:documentation>Bibliographic content</a:documentation>
20
+ </ref>
21
+ </zeroOrMore>
22
+ </element>
23
+ </define>
24
+ <define name="bibdata">
25
+ <a:documentation>Bibliographic description of a document, used as metadata, expressed in the Relaton model</a:documentation>
26
+ <element name="bibdata">
27
+ <ref name="BibData"/>
28
+ </element>
29
+ </define>
30
+ <define name="sections">
31
+ <element name="sections">
32
+ <oneOrMore>
33
+ <ref name="section"/>
34
+ </oneOrMore>
35
+ </element>
36
+ </define>
37
+ <define name="section">
38
+ <a:documentation>Section: groups of blocks within text, which can also contain other sections</a:documentation>
39
+ <element name="section">
40
+ <ref name="Basic-Section"/>
41
+ <zeroOrMore>
42
+ <ref name="section">
43
+ <a:documentation>Sections contained within the current section. The relation is recursive,
44
+ so the hierarchical arrangement of sections can be arbitrarily deep</a:documentation>
45
+ </ref>
46
+ </zeroOrMore>
47
+ </element>
48
+ </define>
49
+ <define name="LanguageType">
50
+ <a:documentation>Two-letter language code taken from ISO 639, indicating the language in which the content is written</a:documentation>
51
+ <text/>
52
+ </define>
53
+ <define name="ScriptType">
54
+ <a:documentation>Four-letter script code taken from ISO 15924, indicating the script in which the content is written</a:documentation>
55
+ <text/>
56
+ </define>
57
+ <define name="LocaleType">
58
+ <a:documentation>(Two-letter) Country and country subdivisions identifier taken from ISO 3166, indicating the locale in which the content is written</a:documentation>
59
+ <text/>
60
+ </define>
61
+ <define name="Basic-Section">
62
+ <a:documentation>Group of blocks within text, which is a leaf node in the hierarchical organisation of text (does not contain any sections of its own)</a:documentation>
63
+ <ref name="Basic-Section-Attributes"/>
64
+ <optional>
65
+ <ref name="section-title">
66
+ <a:documentation>Title of the section</a:documentation>
67
+ </ref>
68
+ </optional>
69
+ <zeroOrMore>
70
+ <ref name="BasicBlock">
71
+ <a:documentation>Blocks, containing the textual content of the section
72
+ (but excluding subsections, which are only present in Hierarchical Sections)</a:documentation>
73
+ </ref>
74
+ </zeroOrMore>
75
+ </define>
76
+ <define name="Basic-Section-Attributes">
77
+ <ref name="OptionalId"/>
78
+ <ref name="LocalizedStringAttributes"/>
79
+ </define>
80
+ <define name="references">
81
+ <a:documentation>Sections containing zero or more bibliographical items (as described in Relaton), along with any prefatory text</a:documentation>
82
+ <element name="references">
83
+ <ref name="OptionalId"/>
84
+ <optional>
85
+ <ref name="section-title">
86
+ <a:documentation>Title of section</a:documentation>
87
+ </ref>
88
+ </optional>
89
+ <zeroOrMore>
90
+ <ref name="BasicBlock">
91
+ <a:documentation>Prefatory text</a:documentation>
92
+ </ref>
93
+ </zeroOrMore>
94
+ <zeroOrMore>
95
+ <ref name="bibitem">
96
+ <a:documentation>Bibliographical items included in the References section</a:documentation>
97
+ </ref>
98
+ </zeroOrMore>
99
+ </element>
100
+ </define>
101
+ <define name="section-title">
102
+ <a:documentation>Title of a section</a:documentation>
103
+ <element name="title">
104
+ <zeroOrMore>
105
+ <ref name="TextElement"/>
106
+ </zeroOrMore>
107
+ </element>
108
+ </define>
109
+ <define name="BasicBlock">
110
+ <a:documentation>Block of textual content</a:documentation>
111
+ <choice>
112
+ <ref name="paragraph-with-footnote"/>
113
+ <ref name="table"/>
114
+ <ref name="formula"/>
115
+ <ref name="admonition"/>
116
+ <ref name="ol"/>
117
+ <ref name="ul"/>
118
+ <ref name="dl"/>
119
+ <ref name="figure"/>
120
+ <ref name="quote"/>
121
+ <ref name="sourcecode"/>
122
+ <ref name="example"/>
123
+ <ref name="review"/>
124
+ <ref name="pre"/>
125
+ <ref name="note"/>
126
+ <ref name="pagebreak"/>
127
+ <ref name="hr"/>
128
+ <ref name="bookmark"/>
129
+ <ref name="amend"/>
130
+ </choice>
131
+ </define>
132
+ <define name="BasicBlockNoId">
133
+ <a:documentation>Block of textual content: optional ID attributes (for use in Relaton, metadata)</a:documentation>
134
+ <choice>
135
+ <ref name="paragraph-with-footnote-no-id"/>
136
+ <ref name="table-no-id"/>
137
+ <ref name="formula-no-id"/>
138
+ <ref name="admonition-no-id"/>
139
+ <ref name="ol-no-id"/>
140
+ <ref name="ul-no-id"/>
141
+ <ref name="dl-no-id"/>
142
+ <ref name="figure-no-id"/>
143
+ <ref name="quote-no-id"/>
144
+ <ref name="sourcecode-no-id"/>
145
+ <ref name="example-no-id"/>
146
+ <ref name="review"/>
147
+ <ref name="pre-no-id"/>
148
+ <ref name="note-no-id"/>
149
+ <ref name="pagebreak"/>
150
+ <ref name="hr"/>
151
+ <ref name="bookmark"/>
152
+ <ref name="amend"/>
153
+ </choice>
154
+ </define>
155
+ <define name="amend">
156
+ <a:documentation>Block describing a change in a document, intended for human readers</a:documentation>
157
+ <element name="amend">
158
+ <ref name="AmendType"/>
159
+ </element>
160
+ </define>
161
+ <define name="AmendType">
162
+ <ref name="OptionalId"/>
163
+ <attribute name="change">
164
+ <a:documentation>The type of change described in this block</a:documentation>
165
+ <choice>
166
+ <value>add</value>
167
+ <value>modify</value>
168
+ <value>delete</value>
169
+ <value>replace</value>
170
+ </choice>
171
+ </attribute>
172
+ <optional>
173
+ <attribute name="path">
174
+ <a:documentation>The span within location where the change applies to,
175
+ if location defines a container larger than the scope of the change</a:documentation>
176
+ </attribute>
177
+ </optional>
178
+ <optional>
179
+ <attribute name="path_end">
180
+ <a:documentation>The end of the span within location where the change applies to,
181
+ if location defines a container larger than the scope of the change.
182
+ Applicable to modify and delete</a:documentation>
183
+ </attribute>
184
+ </optional>
185
+ <optional>
186
+ <attribute name="title">
187
+ <a:documentation>Optional caption of this block</a:documentation>
188
+ </attribute>
189
+ </optional>
190
+ <optional>
191
+ <element name="location">
192
+ <a:documentation>The location(s) in the original document which have undergone the change described in this block</a:documentation>
193
+ <zeroOrMore>
194
+ <choice>
195
+ <ref name="locality"/>
196
+ <ref name="localityStack"/>
197
+ </choice>
198
+ </zeroOrMore>
199
+ </element>
200
+ </optional>
201
+ <optional>
202
+ <element name="description">
203
+ <a:documentation>Description of the change described in this block</a:documentation>
204
+ <zeroOrMore>
205
+ <ref name="BasicBlock"/>
206
+ </zeroOrMore>
207
+ </element>
208
+ </optional>
209
+ <optional>
210
+ <element name="newcontent">
211
+ <a:documentation>New content to be added to the document; applicable to add and modify</a:documentation>
212
+ <ref name="OptionalId"/>
213
+ <zeroOrMore>
214
+ <ref name="BasicBlock"/>
215
+ </zeroOrMore>
216
+ </element>
217
+ </optional>
218
+ <zeroOrMore>
219
+ <ref name="classification">
220
+ <a:documentation>Classification of the change</a:documentation>
221
+ </ref>
222
+ </zeroOrMore>
223
+ <zeroOrMore>
224
+ <ref name="contributor">
225
+ <a:documentation>Contributor responsible for the change</a:documentation>
226
+ </ref>
227
+ </zeroOrMore>
228
+ </define>
229
+ <define name="classification">
230
+ <a:documentation>Key-value classification of an entity</a:documentation>
231
+ <element name="classification">
232
+ <ref name="classification_tag">
233
+ <a:documentation>Key for the classification</a:documentation>
234
+ </ref>
235
+ <ref name="classification_value">
236
+ <a:documentation>Value for the classification</a:documentation>
237
+ </ref>
238
+ </element>
239
+ </define>
240
+ <define name="classification_tag">
241
+ <element name="tag">
242
+ <text/>
243
+ </element>
244
+ </define>
245
+ <define name="classification_value">
246
+ <element name="value">
247
+ <text/>
248
+ </element>
249
+ </define>
250
+ <define name="paragraph">
251
+ <a:documentation>Default block of textual content.
252
+ Unlike the case for other document models, paragraphs _cannot_
253
+ contain other blocks, such as lists, tables, or figures: they are modelled as a basic building block of text
254
+ Does not contain foonotes. While most paragraphs in a document can contain footnotes (paragraph-with-footnote),
255
+ the distinction is necessary, as footnotes are not appropriate for all instances of paragraph content
256
+ in a document (e.g. sourcecode annotations)</a:documentation>
257
+ <element name="p">
258
+ <ref name="ParagraphType"/>
259
+ </element>
260
+ </define>
261
+ <define name="Alignments">
262
+ <a:documentation>The alignment of the paragraph against the margins of the document</a:documentation>
263
+ <choice>
264
+ <value>left</value>
265
+ <value>right</value>
266
+ <value>center</value>
267
+ <value>justified</value>
268
+ </choice>
269
+ </define>
270
+ <define name="RequiredId">
271
+ <a:documentation>Mandatory anchor of element, to be used for cross-references within the document</a:documentation>
272
+ <attribute name="id">
273
+ <data type="ID"/>
274
+ </attribute>
275
+ </define>
276
+ <define name="OptionalId">
277
+ <a:documentation>Optional anchor of element</a:documentation>
278
+ <optional>
279
+ <attribute name="id">
280
+ <data type="ID"/>
281
+ </attribute>
282
+ </optional>
283
+ </define>
284
+ <define name="ParagraphAttributes">
285
+ <optional>
286
+ <attribute name="align">
287
+ <a:documentation>The alignment of the paragraph against the margins of the document</a:documentation>
288
+ <ref name="Alignments"/>
289
+ </attribute>
290
+ </optional>
291
+ </define>
292
+ <define name="ParagraphType">
293
+ <ref name="RequiredId"/>
294
+ <ref name="ParagraphAttributes"/>
295
+ <ref name="ParagraphBody"/>
296
+ </define>
297
+ <define name="ParagraphBody">
298
+ <a:documentation>Inline elements constituting the content of the paragraph, excluding footnotes</a:documentation>
299
+ <zeroOrMore>
300
+ <ref name="TextElement">
301
+ <a:documentation>Inline elements constituting the content of the paragraph</a:documentation>
302
+ </ref>
303
+ </zeroOrMore>
304
+ <zeroOrMore>
305
+ <ref name="note">
306
+ <a:documentation>Notes whose scope is the current block</a:documentation>
307
+ </ref>
308
+ </zeroOrMore>
309
+ </define>
310
+ <define name="ParagraphFnBody">
311
+ <a:documentation>Inline elements constituting the content of the paragraph, including footnotes</a:documentation>
312
+ <zeroOrMore>
313
+ <choice>
314
+ <ref name="TextElement">
315
+ <a:documentation>Inline elements constituting the content of the paragraph</a:documentation>
316
+ </ref>
317
+ <ref name="fn">
318
+ <a:documentation>Footnotes interspersed with paragraph content</a:documentation>
319
+ </ref>
320
+ </choice>
321
+ </zeroOrMore>
322
+ <zeroOrMore>
323
+ <ref name="note">
324
+ <a:documentation>Notes whose scope is the current block</a:documentation>
325
+ </ref>
326
+ </zeroOrMore>
327
+ </define>
328
+ <define name="paragraph-no-id">
329
+ <a:documentation>Paragraph containing no footnotes: optional ID attributes (for use in Relaton, metadata) </a:documentation>
330
+ <element name="p">
331
+ <ref name="OptionalId"/>
332
+ <ref name="ParagraphAttributes"/>
333
+ <ref name="ParagraphBody"/>
334
+ </element>
335
+ </define>
336
+ <define name="paragraph-with-footnote">
337
+ <a:documentation>A paragraph which may contain footnotes.</a:documentation>
338
+ <element name="p">
339
+ <ref name="RequiredId"/>
340
+ <ref name="ParagraphAttributes"/>
341
+ <ref name="ParagraphFnBody"/>
342
+ </element>
343
+ </define>
344
+ <define name="paragraph-with-footnote-no-id">
345
+ <a:documentation>A paragraph which may contain footnotes: optional ID attributes (for use in Relaton, metadata)</a:documentation>
346
+ <element name="p">
347
+ <ref name="OptionalId"/>
348
+ <ref name="ParagraphAttributes"/>
349
+ <ref name="ParagraphFnBody"/>
350
+ </element>
351
+ </define>
352
+ <define name="note">
353
+ <a:documentation>Note block</a:documentation>
354
+ <element name="note">
355
+ <ref name="RequiredId"/>
356
+ <ref name="NoteAttributes"/>
357
+ <ref name="NoteBody"/>
358
+ </element>
359
+ </define>
360
+ <define name="note-no-id">
361
+ <a:documentation>Note block: optional ID attributes (for use in Relaton, metadata)</a:documentation>
362
+ <element name="note">
363
+ <ref name="OptionalId"/>
364
+ <ref name="NoteAttributes"/>
365
+ <ref name="NoteNoIdBody"/>
366
+ </element>
367
+ </define>
368
+ <define name="NoteAttributes">
369
+ <ref name="NumberingAttributes"/>
370
+ </define>
371
+ <define name="NoteBody">
372
+ <oneOrMore>
373
+ <ref name="paragraph"/>
374
+ </oneOrMore>
375
+ </define>
376
+ <define name="NoteNoIdBody">
377
+ <oneOrMore>
378
+ <ref name="paragraph-no-id"/>
379
+ </oneOrMore>
380
+ </define>
381
+ <define name="review">
382
+ <a:documentation>Block intended to capture reviewer comments about some text in the document</a:documentation>
383
+ <element name="review">
384
+ <ref name="RequiredId"/>
385
+ <attribute name="reviewer">
386
+ <a:documentation>The party who has offered the comment</a:documentation>
387
+ </attribute>
388
+ <optional>
389
+ <attribute name="type">
390
+ <a:documentation>The type of reviewer comment</a:documentation>
391
+ </attribute>
392
+ </optional>
393
+ <optional>
394
+ <attribute name="date">
395
+ <a:documentation>The date when the comment was made</a:documentation>
396
+ <data type="dateTime"/>
397
+ </attribute>
398
+ </optional>
399
+ <optional>
400
+ <attribute name="from">
401
+ <a:documentation>Identifier for the start of the text or point in the text to which the comment applies.
402
+ If not provided, the comment applies in the vicinity of the place it has been inserted into the text</a:documentation>
403
+ <data type="IDREF"/>
404
+ </attribute>
405
+ </optional>
406
+ <optional>
407
+ <attribute name="to">
408
+ <a:documentation>Identifier for the end of the text to which the comment applies</a:documentation>
409
+ <data type="IDREF"/>
410
+ </attribute>
411
+ </optional>
412
+ <oneOrMore>
413
+ <ref name="paragraph">
414
+ <a:documentation>Reviewer comments content</a:documentation>
415
+ </ref>
416
+ </oneOrMore>
417
+ </element>
418
+ </define>
419
+ <define name="NumberingAttributes">
420
+ <optional>
421
+ <attribute name="unnumbered">
422
+ <a:documentation>Do not number this block in rendering</a:documentation>
423
+ <data type="boolean"/>
424
+ </attribute>
425
+ </optional>
426
+ <optional>
427
+ <attribute name="subsequence">
428
+ <a:documentation>Define a subsequence for numbering of this block; e.g. if this block would be numbered
429
+ as 7, but it has a subsequence value of XYZ, this block, and all consecutive blocks
430
+ of the same class and with the same subsequence value, will be numbered consecutively
431
+ with the same number and in a subsequence: 7a, 7b, 7c etc</a:documentation>
432
+ </attribute>
433
+ </optional>
434
+ </define>
435
+ <define name="formula">
436
+ <a:documentation>Block containing a mathematical expression or other formulas</a:documentation>
437
+ <element name="formula">
438
+ <ref name="RequiredId"/>
439
+ <ref name="FormulaAttributes"/>
440
+ <ref name="FormulaBody"/>
441
+ </element>
442
+ </define>
443
+ <define name="formula-no-id">
444
+ <a:documentation>Block containing a mathematical expression or other formulas: optional ID attributes (for use in Relaton, metadata)</a:documentation>
445
+ <element name="formula">
446
+ <ref name="OptionalId"/>
447
+ <ref name="FormulaAttributes"/>
448
+ <ref name="FormulaNoIdBody"/>
449
+ </element>
450
+ </define>
451
+ <define name="FormulaAttributes">
452
+ <ref name="NumberingAttributes"/>
453
+ <optional>
454
+ <attribute name="inequality">
455
+ <a:documentation>Indication that the formula is to be labelled as an Inequality, if inequalities are differentiated from equations</a:documentation>
456
+ <data type="boolean"/>
457
+ </attribute>
458
+ </optional>
459
+ </define>
460
+ <define name="FormulaBody">
461
+ <ref name="stem">
462
+ <a:documentation>The content of the formula, as a mathematical expression</a:documentation>
463
+ </ref>
464
+ <optional>
465
+ <ref name="dl">
466
+ <a:documentation>A definitions list defining any symbols used in the formula</a:documentation>
467
+ </ref>
468
+ </optional>
469
+ <zeroOrMore>
470
+ <ref name="note">
471
+ <a:documentation>Notes whose scope is the current block</a:documentation>
472
+ </ref>
473
+ </zeroOrMore>
474
+ </define>
475
+ <define name="FormulaNoIdBody">
476
+ <ref name="stem">
477
+ <a:documentation>The content of the formula, as a mathematical expression</a:documentation>
478
+ </ref>
479
+ <optional>
480
+ <ref name="dl-no-id">
481
+ <a:documentation>A definitions list defining any symbols used in the formula</a:documentation>
482
+ </ref>
483
+ </optional>
484
+ <zeroOrMore>
485
+ <ref name="note-no-id">
486
+ <a:documentation>Notes whose scope is the current block</a:documentation>
487
+ </ref>
488
+ </zeroOrMore>
489
+ </define>
490
+ <define name="quote">
491
+ <a:documentation>Block quotation, containing extensive textual content originally authored outside of the current document</a:documentation>
492
+ <element name="quote">
493
+ <ref name="RequiredId"/>
494
+ <ref name="QuoteAttributes"/>
495
+ <ref name="QuoteBody"/>
496
+ </element>
497
+ </define>
498
+ <define name="quote-no-id">
499
+ <a:documentation>Block quotation: optional ID attributes (for use in Relaton, metadata)</a:documentation>
500
+ <element name="quote">
501
+ <ref name="OptionalId"/>
502
+ <ref name="QuoteAttributes"/>
503
+ <ref name="QuoteNoIdBody"/>
504
+ </element>
505
+ </define>
506
+ <define name="QuoteAttributes">
507
+ <optional>
508
+ <attribute name="alignment">
509
+ <a:documentation>The alignment of the quote against the margins of the document</a:documentation>
510
+ <ref name="Alignments"/>
511
+ </attribute>
512
+ </optional>
513
+ </define>
514
+ <define name="QuoteBody">
515
+ <optional>
516
+ <ref name="quote-source">
517
+ <a:documentation>Bibliographic citation for the quotation</a:documentation>
518
+ </ref>
519
+ </optional>
520
+ <optional>
521
+ <ref name="quote-author">
522
+ <a:documentation>Author of the quotation. The `author` attribute of the quotation is redundant with `source`,
523
+ since it restates information about the author that should be recoverable from the `source` citation.
524
+ It is included for convenience, in case processing the citation to extract the author is prohibitive for rendering tools</a:documentation>
525
+ </ref>
526
+ </optional>
527
+ <oneOrMore>
528
+ <ref name="paragraph-with-footnote">
529
+ <a:documentation>Content of quote</a:documentation>
530
+ </ref>
531
+ </oneOrMore>
532
+ <zeroOrMore>
533
+ <ref name="note">
534
+ <a:documentation>Notes whose scope is the current block</a:documentation>
535
+ </ref>
536
+ </zeroOrMore>
537
+ </define>
538
+ <define name="QuoteNoIdBody">
539
+ <optional>
540
+ <ref name="quote-source">
541
+ <a:documentation>Bibliographic citation for the quotation</a:documentation>
542
+ </ref>
543
+ </optional>
544
+ <optional>
545
+ <ref name="quote-author">
546
+ <a:documentation>Author of the quotation. The `author` attribute of the quotation is redundant with `source`,
547
+ since it restates information about the author that should be recoverable from the `source` citation.
548
+ It is included for convenience, in case processing the citation to extract the author is prohibitive for rendering tools</a:documentation>
549
+ </ref>
550
+ </optional>
551
+ <oneOrMore>
552
+ <ref name="paragraph-with-footnote-no-id">
553
+ <a:documentation>Content of quote</a:documentation>
554
+ </ref>
555
+ </oneOrMore>
556
+ <zeroOrMore>
557
+ <ref name="note-no-id">
558
+ <a:documentation>Notes whose scope is the current block</a:documentation>
559
+ </ref>
560
+ </zeroOrMore>
561
+ </define>
562
+ <define name="quote-source">
563
+ <element name="source">
564
+ <ref name="erefType"/>
565
+ </element>
566
+ </define>
567
+ <define name="quote-author">
568
+ <element name="author">
569
+ <text/>
570
+ </element>
571
+ </define>
572
+ <define name="sourcecode">
573
+ <a:documentation>Block containing computer code or comparable text</a:documentation>
574
+ <element name="sourcecode">
575
+ <ref name="RequiredId"/>
576
+ <ref name="SourceAttributes"/>
577
+ <ref name="SourceBody"/>
578
+ </element>
579
+ </define>
580
+ <define name="sourcecode-no-id">
581
+ <a:documentation>Block containing computer code or comparable text: optional ID attributes (for use in Relaton, metadata)</a:documentation>
582
+ <element name="sourcecode">
583
+ <ref name="OptionalId"/>
584
+ <ref name="SourceAttributes"/>
585
+ <ref name="SourceNoIdBody"/>
586
+ </element>
587
+ </define>
588
+ <define name="SourceAttributes">
589
+ <ref name="NumberingAttributes"/>
590
+ <optional>
591
+ <attribute name="lang">
592
+ <a:documentation>The computer language or other notational convention that the source code is expressed in</a:documentation>
593
+ </attribute>
594
+ </optional>
595
+ </define>
596
+ <define name="SourceBody">
597
+ <optional>
598
+ <ref name="tname">
599
+ <a:documentation>The caption of the block</a:documentation>
600
+ </ref>
601
+ </optional>
602
+ <ref name="sourcecodebody">
603
+ <a:documentation>The sourcecode content</a:documentation>
604
+ </ref>
605
+ <zeroOrMore>
606
+ <ref name="annotation">
607
+ <a:documentation>Annotations to the source code; each annotation consists of zero or more paragraphs,
608
+ and is intended to be referenced by a callout within the source code</a:documentation>
609
+ </ref>
610
+ </zeroOrMore>
611
+ <zeroOrMore>
612
+ <ref name="note">
613
+ <a:documentation>Notes whose scope is the current block</a:documentation>
614
+ </ref>
615
+ </zeroOrMore>
616
+ </define>
617
+ <define name="SourceNoIdBody">
618
+ <optional>
619
+ <ref name="tname">
620
+ <a:documentation>The caption of the block</a:documentation>
621
+ </ref>
622
+ </optional>
623
+ <ref name="sourcecodebody">
624
+ <a:documentation>The sourcecode content</a:documentation>
625
+ </ref>
626
+ <zeroOrMore>
627
+ <ref name="annotation">
628
+ <a:documentation>Annotations to the source code; each annotation consists of zero or more paragraphs,
629
+ and is intended to be referenced by a callout within the source code</a:documentation>
630
+ </ref>
631
+ </zeroOrMore>
632
+ <zeroOrMore>
633
+ <ref name="note-no-id">
634
+ <a:documentation>Notes whose scope is the current block</a:documentation>
635
+ </ref>
636
+ </zeroOrMore>
637
+ </define>
638
+ <define name="sourcecodebody">
639
+ <a:documentation>The computer code or other such text presented in the block, as a single unformatted string.
640
+ (The string should be treated as pre-formatted text, with whitespace treated as significant)</a:documentation>
641
+ <element name="body">
642
+ <oneOrMore>
643
+ <choice>
644
+ <text/>
645
+ <ref name="callout">
646
+ <a:documentation>Zero or more cross-references; these are intended to be embedded within the content string, and link to annotations</a:documentation>
647
+ </ref>
648
+ </choice>
649
+ </oneOrMore>
650
+ </element>
651
+ </define>
652
+ <define name="pre">
653
+ <a:documentation>Pre-formatted block. Wrapper for text to be rendered with fixed-width typeface, and preserving spaces including line breaks.
654
+ They are intended for a restricted number of functions, most typically ASCII Art (which is still in prominent use in some
655
+ standards documents), and computer output. In most cases, sourcecode blocks are more appropriate in markup,
656
+ as it is more clearly motivated semantically</a:documentation>
657
+ <element name="pre">
658
+ <ref name="RequiredId"/>
659
+ <ref name="PreAttributes"/>
660
+ <ref name="PreBody"/>
661
+ </element>
662
+ </define>
663
+ <define name="pre-no-id">
664
+ <a:documentation>Pre-formatted block: optional ID attributes (for use in Relaton, metadata)</a:documentation>
665
+ <element name="pre">
666
+ <ref name="OptionalId"/>
667
+ <ref name="PreAttributes"/>
668
+ <ref name="PreNoIdBody"/>
669
+ </element>
670
+ </define>
671
+ <define name="PreAttributes">
672
+ <optional>
673
+ <attribute name="alt">
674
+ <a:documentation>Accessible description of the preformatted text</a:documentation>
675
+ </attribute>
676
+ </optional>
677
+ </define>
678
+ <define name="PreBody">
679
+ <optional>
680
+ <ref name="tname">
681
+ <a:documentation>The caption of the block</a:documentation>
682
+ </ref>
683
+ </optional>
684
+ <text>
685
+ <a:documentation>The pre-formatted text presented in the block, as a single unformatted string. (Whitespace is treated as significant)</a:documentation>
686
+ </text>
687
+ <zeroOrMore>
688
+ <ref name="note">
689
+ <a:documentation>Notes whose scope is the current block</a:documentation>
690
+ </ref>
691
+ </zeroOrMore>
692
+ </define>
693
+ <define name="PreNoIdBody">
694
+ <optional>
695
+ <ref name="tname">
696
+ <a:documentation>The caption of the block</a:documentation>
697
+ </ref>
698
+ </optional>
699
+ <text>
700
+ <a:documentation>The pre-formatted text presented in the block, as a single unformatted string. (Whitespace is treated as significant)</a:documentation>
701
+ </text>
702
+ <zeroOrMore>
703
+ <ref name="note-no-id">
704
+ <a:documentation>Notes whose scope is the current block</a:documentation>
705
+ </ref>
706
+ </zeroOrMore>
707
+ </define>
708
+ <define name="table">
709
+ <a:documentation>Tabular arrangement of text</a:documentation>
710
+ <element name="table">
711
+ <ref name="RequiredId"/>
712
+ <ref name="TableAttributes"/>
713
+ <ref name="TableBody"/>
714
+ </element>
715
+ </define>
716
+ <define name="table-no-id">
717
+ <a:documentation>Tabular arrangement of text: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
718
+ <element name="table">
719
+ <ref name="OptionalId"/>
720
+ <ref name="TableAttributes"/>
721
+ <ref name="TableNoIdBody"/>
722
+ </element>
723
+ </define>
724
+ <define name="TableAttributes">
725
+ <ref name="NumberingAttributes"/>
726
+ <optional>
727
+ <attribute name="alt">
728
+ <a:documentation>Accessible description of the tabular text, in case the table cannot be rendered accessibly (HTML 5)</a:documentation>
729
+ </attribute>
730
+ </optional>
731
+ <optional>
732
+ <attribute name="summary">
733
+ <a:documentation>Alternative more extensive summary of table to be provided for accessibility purposes,
734
+ in case the table cannot be rendered accessibly (HTML 5)</a:documentation>
735
+ </attribute>
736
+ </optional>
737
+ <optional>
738
+ <attribute name="uri">
739
+ <a:documentation>Online location of content of table (in case the table is available as a separate external document) (HTML 5)</a:documentation>
740
+ <data type="anyURI"/>
741
+ </attribute>
742
+ </optional>
743
+ </define>
744
+ <define name="TableBody">
745
+ <a:documentation>Elements of table</a:documentation>
746
+ <optional>
747
+ <ref name="tname">
748
+ <a:documentation>Caption for the table</a:documentation>
749
+ </ref>
750
+ </optional>
751
+ <optional>
752
+ <ref name="thead">
753
+ <a:documentation>Table rows constituting the table header</a:documentation>
754
+ </ref>
755
+ </optional>
756
+ <ref name="tbody">
757
+ <a:documentation>Table rows constituting the table body</a:documentation>
758
+ </ref>
759
+ <optional>
760
+ <ref name="tfoot">
761
+ <a:documentation>Table rows constituting the table footer</a:documentation>
762
+ </ref>
763
+ </optional>
764
+ <optional>
765
+ <ref name="dl">
766
+ <a:documentation>Definitions list defining any symbols used in the table</a:documentation>
767
+ </ref>
768
+ </optional>
769
+ <zeroOrMore>
770
+ <ref name="table-note">
771
+ <a:documentation>Notes specific to this block</a:documentation>
772
+ </ref>
773
+ </zeroOrMore>
774
+ </define>
775
+ <define name="TableNoIdBody">
776
+ <a:documentation>Elements of table: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
777
+ <optional>
778
+ <ref name="tname">
779
+ <a:documentation>Caption for the table</a:documentation>
780
+ </ref>
781
+ </optional>
782
+ <optional>
783
+ <ref name="thead-no-id">
784
+ <a:documentation>Table rows constituting the table header</a:documentation>
785
+ </ref>
786
+ </optional>
787
+ <ref name="tbody-no-id">
788
+ <a:documentation>Table rows constituting the table body</a:documentation>
789
+ </ref>
790
+ <optional>
791
+ <ref name="tfoot-no-id">
792
+ <a:documentation>Table rows constituting the table footer</a:documentation>
793
+ </ref>
794
+ </optional>
795
+ <optional>
796
+ <ref name="dl-no-id">
797
+ <a:documentation>Definitions list defining any symbols used in the table</a:documentation>
798
+ </ref>
799
+ </optional>
800
+ <zeroOrMore>
801
+ <ref name="table-note-no-id">
802
+ <a:documentation>Notes specific to this block</a:documentation>
803
+ </ref>
804
+ </zeroOrMore>
805
+ </define>
806
+ <define name="tname">
807
+ <element name="name">
808
+ <oneOrMore>
809
+ <ref name="NestedTextElement"/>
810
+ </oneOrMore>
811
+ </element>
812
+ </define>
813
+ <define name="thead">
814
+ <element name="thead">
815
+ <ref name="tr"/>
816
+ </element>
817
+ </define>
818
+ <define name="thead-no-id">
819
+ <element name="thead">
820
+ <ref name="tr-no-id"/>
821
+ </element>
822
+ </define>
823
+ <define name="tfoot">
824
+ <element name="tfoot">
825
+ <ref name="tr"/>
826
+ </element>
827
+ </define>
828
+ <define name="tfoot-no-id">
829
+ <element name="tfoot">
830
+ <ref name="tr-no-id"/>
831
+ </element>
832
+ </define>
833
+ <define name="tbody">
834
+ <element name="tbody">
835
+ <oneOrMore>
836
+ <ref name="tr"/>
837
+ </oneOrMore>
838
+ </element>
839
+ </define>
840
+ <define name="tbody-no-id">
841
+ <element name="tbody">
842
+ <oneOrMore>
843
+ <ref name="tr-no-id"/>
844
+ </oneOrMore>
845
+ </element>
846
+ </define>
847
+ <define name="table-note">
848
+ <element name="note">
849
+ <ref name="paragraph"/>
850
+ </element>
851
+ </define>
852
+ <define name="table-note-no-id">
853
+ <element name="note">
854
+ <ref name="paragraph-no-id"/>
855
+ </element>
856
+ </define>
857
+ <define name="tr">
858
+ <a:documentation>Sequence of cells to be displayed as a row in a table</a:documentation>
859
+ <element name="tr">
860
+ <oneOrMore>
861
+ <choice>
862
+ <ref name="td">
863
+ <a:documentation>Data cells in a table row</a:documentation>
864
+ </ref>
865
+ <ref name="th">
866
+ <a:documentation>Header cells in a table row</a:documentation>
867
+ </ref>
868
+ </choice>
869
+ </oneOrMore>
870
+ </element>
871
+ </define>
872
+ <define name="tr-no-id">
873
+ <a:documentation>Sequence of cells to be displayed as a row in a table: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
874
+ <element name="tr">
875
+ <oneOrMore>
876
+ <choice>
877
+ <ref name="td-no-id"/>
878
+ <ref name="th-no-id"/>
879
+ </choice>
880
+ </oneOrMore>
881
+ </element>
882
+ </define>
883
+ <define name="td">
884
+ <a:documentation>Textual content constituting a basic building block of a table: data cell</a:documentation>
885
+ <element name="td">
886
+ <ref name="TdAttributes"/>
887
+ <ref name="TdBody"/>
888
+ </element>
889
+ </define>
890
+ <define name="td-no-id">
891
+ <a:documentation>Data cell: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
892
+ <element name="td">
893
+ <ref name="TdAttributes"/>
894
+ <ref name="TdNoIdBody"/>
895
+ </element>
896
+ </define>
897
+ <define name="TdAttributes">
898
+ <optional>
899
+ <attribute name="colspan">
900
+ <a:documentation>Number of columns in the underlying table grid which the cell spans</a:documentation>
901
+ </attribute>
902
+ </optional>
903
+ <optional>
904
+ <attribute name="rowspan">
905
+ <a:documentation>Number of rows in the underlying table grid which the cell spans</a:documentation>
906
+ </attribute>
907
+ </optional>
908
+ <optional>
909
+ <attribute name="align">
910
+ <a:documentation>Horizontal textual alignment of the cell against the underlying table grid</a:documentation>
911
+ <choice>
912
+ <value>left</value>
913
+ <value>right</value>
914
+ <value>center</value>
915
+ </choice>
916
+ </attribute>
917
+ </optional>
918
+ <optional>
919
+ <attribute name="valign">
920
+ <a:documentation>Vertical alignment of the cell against the underlying table grid</a:documentation>
921
+ <choice>
922
+ <value>top</value>
923
+ <value>middle</value>
924
+ <value>bottom</value>
925
+ <value>baseline</value>
926
+ </choice>
927
+ </attribute>
928
+ </optional>
929
+ </define>
930
+ <define name="TdBody">
931
+ <choice>
932
+ <zeroOrMore>
933
+ <group>
934
+ <a:documentation>Table cell is a block</a:documentation>
935
+ <ref name="TextElement"/>
936
+ </group>
937
+ </zeroOrMore>
938
+ <oneOrMore>
939
+ <ref name="paragraph-with-footnote">
940
+ <a:documentation>Table cell contains a block</a:documentation>
941
+ </ref>
942
+ </oneOrMore>
943
+ </choice>
944
+ </define>
945
+ <define name="TdNoIdBody">
946
+ <choice>
947
+ <zeroOrMore>
948
+ <group>
949
+ <a:documentation>Table cell is a block</a:documentation>
950
+ <ref name="TextElement"/>
951
+ </group>
952
+ </zeroOrMore>
953
+ <oneOrMore>
954
+ <ref name="paragraph-with-footnote-no-id">
955
+ <a:documentation>Table cell contains a block</a:documentation>
956
+ </ref>
957
+ </oneOrMore>
958
+ </choice>
959
+ </define>
960
+ <define name="th">
961
+ <a:documentation>Textual content constituting a basic building block of a table, treated as a header: header cell</a:documentation>
962
+ <element name="th">
963
+ <ref name="ThAttributes"/>
964
+ <ref name="ThBody"/>
965
+ </element>
966
+ </define>
967
+ <define name="th-no-id">
968
+ <a:documentation>Header cell: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
969
+ <element name="th">
970
+ <ref name="ThAttributes"/>
971
+ <ref name="ThNoIdBody"/>
972
+ </element>
973
+ </define>
974
+ <define name="ThAttributes">
975
+ <ref name="TdAttributes"/>
976
+ </define>
977
+ <define name="ThBody">
978
+ <ref name="TdBody"/>
979
+ </define>
980
+ <define name="ThNoIdBody">
981
+ <ref name="TdNoIdBody"/>
982
+ </define>
983
+ <define name="example">
984
+ <a:documentation>Block containing an example illustrating a claim made in the main flow of text</a:documentation>
985
+ <element name="example">
986
+ <ref name="RequiredId"/>
987
+ <ref name="ExampleAttributes"/>
988
+ <ref name="ExampleBody"/>
989
+ </element>
990
+ </define>
991
+ <define name="example-no-id">
992
+ <a:documentation>Example block: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
993
+ <element name="example">
994
+ <ref name="OptionalId"/>
995
+ <ref name="ExampleAttributes"/>
996
+ <ref name="ExampleNoIdBody"/>
997
+ </element>
998
+ </define>
999
+ <define name="ExampleAttributes">
1000
+ <ref name="NumberingAttributes"/>
1001
+ </define>
1002
+ <define name="ExampleBody">
1003
+ <optional>
1004
+ <ref name="tname">
1005
+ <a:documentation>The caption of the example</a:documentation>
1006
+ </ref>
1007
+ </optional>
1008
+ <oneOrMore>
1009
+ <choice>
1010
+ <a:documentation>Content of the example</a:documentation>
1011
+ <ref name="formula"/>
1012
+ <ref name="ul"/>
1013
+ <ref name="ol"/>
1014
+ <ref name="dl"/>
1015
+ <ref name="quote"/>
1016
+ <ref name="sourcecode"/>
1017
+ <ref name="paragraph-with-footnote"/>
1018
+ </choice>
1019
+ </oneOrMore>
1020
+ <zeroOrMore>
1021
+ <ref name="note">
1022
+ <a:documentation>Notes whose scope is the current block</a:documentation>
1023
+ </ref>
1024
+ </zeroOrMore>
1025
+ </define>
1026
+ <define name="ExampleNoIdBody">
1027
+ <optional>
1028
+ <ref name="tname">
1029
+ <a:documentation>The caption of the example</a:documentation>
1030
+ </ref>
1031
+ </optional>
1032
+ <oneOrMore>
1033
+ <choice>
1034
+ <a:documentation>Content of the example</a:documentation>
1035
+ <ref name="formula-no-id"/>
1036
+ <ref name="ul-no-id"/>
1037
+ <ref name="ol-no-id"/>
1038
+ <ref name="dl-no-id"/>
1039
+ <ref name="quote-no-id"/>
1040
+ <ref name="sourcecode-no-id"/>
1041
+ <ref name="paragraph-with-footnote-no-id"/>
1042
+ </choice>
1043
+ </oneOrMore>
1044
+ <zeroOrMore>
1045
+ <ref name="note-no-id">
1046
+ <a:documentation>Notes whose scope is the current block</a:documentation>
1047
+ </ref>
1048
+ </zeroOrMore>
1049
+ </define>
1050
+ <define name="admonition">
1051
+ <a:documentation>A sidebar block outside of the main flow of text, conveying particular warnings or supplementary text to the reader</a:documentation>
1052
+ <element name="admonition">
1053
+ <ref name="RequiredId"/>
1054
+ <ref name="AdmonitionAttributes"/>
1055
+ <ref name="AdmonitionBody"/>
1056
+ </element>
1057
+ </define>
1058
+ <define name="admonition-no-id">
1059
+ <a:documentation>A sidebar block outside of the main flow of text: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
1060
+ <element name="admonition">
1061
+ <ref name="OptionalId"/>
1062
+ <ref name="AdmonitionAttributes"/>
1063
+ <ref name="AdmonitionNoIdBody"/>
1064
+ </element>
1065
+ </define>
1066
+ <define name="AdmonitionAttributes">
1067
+ <attribute name="type">
1068
+ <a:documentation>Subclass of admonition determining how it is to be rendered.
1069
+ Distinct admonition types are often associated with distinct icons or rendering</a:documentation>
1070
+ <ref name="AdmonitionType"/>
1071
+ </attribute>
1072
+ <optional>
1073
+ <attribute name="class">
1074
+ <a:documentation>Subclass of admonition, allowing different runs of admonitions to be labelled
1075
+ and auto-numbered differently, even if they are of the same type.
1076
+ Typically is a subclass of an admonition type</a:documentation>
1077
+ </attribute>
1078
+ </optional>
1079
+ <optional>
1080
+ <attribute name="uri">
1081
+ <a:documentation>Location where the content of the admonition is accessible as an external document</a:documentation>
1082
+ <data type="anyURI"/>
1083
+ </attribute>
1084
+ </optional>
1085
+ </define>
1086
+ <define name="AdmonitionBody">
1087
+ <optional>
1088
+ <ref name="tname">
1089
+ <a:documentation>Caption of admonition</a:documentation>
1090
+ </ref>
1091
+ </optional>
1092
+ <zeroOrMore>
1093
+ <ref name="paragraph-with-footnote">
1094
+ <a:documentation>Admonition content</a:documentation>
1095
+ </ref>
1096
+ </zeroOrMore>
1097
+ <zeroOrMore>
1098
+ <ref name="note">
1099
+ <a:documentation>Notes whose scope is the current block</a:documentation>
1100
+ </ref>
1101
+ </zeroOrMore>
1102
+ </define>
1103
+ <define name="AdmonitionNoIdBody">
1104
+ <optional>
1105
+ <ref name="tname">
1106
+ <a:documentation>Caption of admonition</a:documentation>
1107
+ </ref>
1108
+ </optional>
1109
+ <zeroOrMore>
1110
+ <ref name="paragraph-with-footnote-no-id">
1111
+ <a:documentation>Admonition content</a:documentation>
1112
+ </ref>
1113
+ </zeroOrMore>
1114
+ <zeroOrMore>
1115
+ <ref name="note-no-id">
1116
+ <a:documentation>Notes whose scope is the current block</a:documentation>
1117
+ </ref>
1118
+ </zeroOrMore>
1119
+ </define>
1120
+ <define name="AdmonitionType">
1121
+ <a:documentation>Subclass of admonition determining how it is to be rendered</a:documentation>
1122
+ <choice>
1123
+ <value>warning</value>
1124
+ <a:documentation>Warning to reader, note of risk to be avoided</a:documentation>
1125
+ <value>note</value>
1126
+ <a:documentation>Supplementary, explanatory information</a:documentation>
1127
+ <value>tip</value>
1128
+ <a:documentation>Instructive information to assist in the fulfilment of tasks related to content</a:documentation>
1129
+ <value>important</value>
1130
+ <a:documentation>Note to reader of something crucial to be borne in mind</a:documentation>
1131
+ <value>caution</value>
1132
+ <a:documentation>Caution to reader, note of potential surprise or difficulty</a:documentation>
1133
+ </choice>
1134
+ </define>
1135
+ <define name="figure">
1136
+ <a:documentation>Block containing a figure: a visual rather than textual asset, possibly with accompanying text</a:documentation>
1137
+ <element name="figure">
1138
+ <ref name="RequiredId"/>
1139
+ <ref name="FigureAttributes"/>
1140
+ <ref name="FigureBody"/>
1141
+ </element>
1142
+ </define>
1143
+ <define name="figure-no-id">
1144
+ <a:documentation>Block containing a figure: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
1145
+ <element name="figure">
1146
+ <ref name="OptionalId"/>
1147
+ <ref name="FigureAttributes"/>
1148
+ <ref name="FigureNoIdBody"/>
1149
+ </element>
1150
+ </define>
1151
+ <define name="FigureAttributes">
1152
+ <ref name="NumberingAttributes"/>
1153
+ <optional>
1154
+ <attribute name="class">
1155
+ <a:documentation>The semantic category of the figure. This is to allow different classes of figure (e.g. _Plate_, _Chart_, _Diagram_)
1156
+ to be auto-numbered and captioned differently</a:documentation>
1157
+ </attribute>
1158
+ </optional>
1159
+ </define>
1160
+ <define name="FigureBody">
1161
+ <optional>
1162
+ <ref name="tname">
1163
+ <a:documentation>The caption of the block</a:documentation>
1164
+ </ref>
1165
+ </optional>
1166
+ <choice>
1167
+ <a:documentation>Content of the figure</a:documentation>
1168
+ <ref name="image"/>
1169
+ <ref name="video"/>
1170
+ <ref name="audio"/>
1171
+ <ref name="pre"/>
1172
+ <oneOrMore>
1173
+ <ref name="paragraph-with-footnote"/>
1174
+ </oneOrMore>
1175
+ <zeroOrMore>
1176
+ <ref name="figure"/>
1177
+ </zeroOrMore>
1178
+ </choice>
1179
+ <zeroOrMore>
1180
+ <ref name="fn">
1181
+ <a:documentation>Footnotes specific to the figure</a:documentation>
1182
+ </ref>
1183
+ </zeroOrMore>
1184
+ <optional>
1185
+ <ref name="dl">
1186
+ <a:documentation>An optional definitions list defining any symbols used in the figure</a:documentation>
1187
+ </ref>
1188
+ </optional>
1189
+ <zeroOrMore>
1190
+ <ref name="note">
1191
+ <a:documentation>Notes whose scope is the current block</a:documentation>
1192
+ </ref>
1193
+ </zeroOrMore>
1194
+ <optional>
1195
+ <ref name="source">
1196
+ <a:documentation>A URI or other reference intended to link to an externally hosted image (or equivalent)</a:documentation>
1197
+ </ref>
1198
+ </optional>
1199
+ </define>
1200
+ <define name="FigureNoIdBody">
1201
+ <optional>
1202
+ <ref name="source">
1203
+ <a:documentation>A URI or other reference intended to link to an externally hosted image (or equivalent)</a:documentation>
1204
+ </ref>
1205
+ </optional>
1206
+ <optional>
1207
+ <ref name="tname">
1208
+ <a:documentation>The caption of the block</a:documentation>
1209
+ </ref>
1210
+ </optional>
1211
+ <choice>
1212
+ <a:documentation>Content of the figure</a:documentation>
1213
+ <ref name="image-no-id"/>
1214
+ <ref name="video-no-id"/>
1215
+ <ref name="audio-no-id"/>
1216
+ <ref name="pre-no-id"/>
1217
+ <oneOrMore>
1218
+ <ref name="paragraph-with-footnote-no-id"/>
1219
+ </oneOrMore>
1220
+ <zeroOrMore>
1221
+ <ref name="figure-no-id"/>
1222
+ </zeroOrMore>
1223
+ </choice>
1224
+ <zeroOrMore>
1225
+ <ref name="fn">
1226
+ <a:documentation>Footnotes specific to the figure</a:documentation>
1227
+ </ref>
1228
+ </zeroOrMore>
1229
+ <optional>
1230
+ <ref name="dl-no-id">
1231
+ <a:documentation>An optional definitions list defining any symbols used in the figure</a:documentation>
1232
+ </ref>
1233
+ </optional>
1234
+ <zeroOrMore>
1235
+ <ref name="note-no-id">
1236
+ <a:documentation>Notes whose scope is the current block</a:documentation>
1237
+ </ref>
1238
+ </zeroOrMore>
1239
+ </define>
1240
+ <define name="TextElement">
1241
+ <a:documentation>Any inline element containing text and associated formatting information.
1242
+ Includes inline elements that are identifiers or references to identifiers</a:documentation>
1243
+ <choice>
1244
+ <text/>
1245
+ <ref name="em"/>
1246
+ <ref name="eref"/>
1247
+ <ref name="strong"/>
1248
+ <ref name="stem"/>
1249
+ <ref name="sub"/>
1250
+ <ref name="sup"/>
1251
+ <ref name="tt"/>
1252
+ <ref name="underline"/>
1253
+ <ref name="keyword"/>
1254
+ <ref name="ruby"/>
1255
+ <ref name="strike"/>
1256
+ <ref name="smallcap"/>
1257
+ <ref name="xref"/>
1258
+ <ref name="br"/>
1259
+ <ref name="hyperlink"/>
1260
+ <ref name="hr"/>
1261
+ <ref name="pagebreak"/>
1262
+ <ref name="bookmark"/>
1263
+ <ref name="image"/>
1264
+ <ref name="index"/>
1265
+ <ref name="index-xref"/>
1266
+ </choice>
1267
+ </define>
1268
+ <define name="PureTextElement">
1269
+ <a:documentation>Inline element containing text and associated formatting information,
1270
+ but which does not contain any associated identifiers or references to identifiers.
1271
+ Restricted recursively to contain only other such inline elements with no identifiers or references to identifiers</a:documentation>
1272
+ <choice>
1273
+ <text/>
1274
+ <ref name="pure_em"/>
1275
+ <ref name="pure_strong"/>
1276
+ <ref name="sub"/>
1277
+ <ref name="sup"/>
1278
+ <ref name="pure_tt"/>
1279
+ <ref name="pure_underline"/>
1280
+ <ref name="pure_strike"/>
1281
+ <ref name="pure_smallcap"/>
1282
+ <ref name="br"/>
1283
+ </choice>
1284
+ </define>
1285
+ <define name="NestedTextElement">
1286
+ <a:documentation>Contents of TextElement tags: leaves out tags that should occur only at top level of block: bookmark image hr pagebreak</a:documentation>
1287
+ <choice>
1288
+ <ref name="PureTextElement"/>
1289
+ <ref name="stem"/>
1290
+ <ref name="eref"/>
1291
+ <ref name="xref"/>
1292
+ <ref name="hyperlink"/>
1293
+ <ref name="index"/>
1294
+ <ref name="index-xref"/>
1295
+ <ref name="ruby"/>
1296
+ <ref name="keyword"/>
1297
+ </choice>
1298
+ </define>
1299
+ <define name="source">
1300
+ <element name="source">
1301
+ <ref name="TypedUri"/>
1302
+ </element>
1303
+ </define>
1304
+ <define name="em">
1305
+ <a:documentation>Emphasised text. Corresponds to HTML `em`, `i`</a:documentation>
1306
+ <element name="em">
1307
+ <zeroOrMore>
1308
+ <ref name="NestedTextElement"/>
1309
+ </zeroOrMore>
1310
+ </element>
1311
+ </define>
1312
+ <define name="pure_em">
1313
+ <a:documentation>Emphasised text for PureTextElement</a:documentation>
1314
+ <element name="em">
1315
+ <zeroOrMore>
1316
+ <ref name="PureTextElement"/>
1317
+ </zeroOrMore>
1318
+ </element>
1319
+ </define>
1320
+ <define name="strong">
1321
+ <a:documentation>Strong text. Corresponds to HTML `strong`, `b`</a:documentation>
1322
+ <element name="strong">
1323
+ <zeroOrMore>
1324
+ <ref name="NestedTextElement"/>
1325
+ </zeroOrMore>
1326
+ </element>
1327
+ </define>
1328
+ <define name="pure_strong">
1329
+ <a:documentation>Strong text for PureTextElement</a:documentation>
1330
+ <element name="strong">
1331
+ <zeroOrMore>
1332
+ <ref name="PureTextElement"/>
1333
+ </zeroOrMore>
1334
+ </element>
1335
+ </define>
1336
+ <define name="tt">
1337
+ <a:documentation>Monospace text. Corresponds to HTML `tt`, `code`</a:documentation>
1338
+ <element name="tt">
1339
+ <zeroOrMore>
1340
+ <ref name="NestedTextElement"/>
1341
+ </zeroOrMore>
1342
+ </element>
1343
+ </define>
1344
+ <define name="pure_tt">
1345
+ <a:documentation>Monospace text for PureTextElement</a:documentation>
1346
+ <element name="tt">
1347
+ <zeroOrMore>
1348
+ <ref name="PureTextElement"/>
1349
+ </zeroOrMore>
1350
+ </element>
1351
+ </define>
1352
+ <define name="keyword">
1353
+ <a:documentation>Keyword text</a:documentation>
1354
+ <element name="keyword">
1355
+ <zeroOrMore>
1356
+ <choice>
1357
+ <ref name="PureTextElement"/>
1358
+ <ref name="index"/>
1359
+ <ref name="index-xref"/>
1360
+ </choice>
1361
+ </zeroOrMore>
1362
+ </element>
1363
+ </define>
1364
+ <define name="sub">
1365
+ <a:documentation>Subscript text. Corresponds to HTML `sub`</a:documentation>
1366
+ <element name="sub">
1367
+ <zeroOrMore>
1368
+ <ref name="PureTextElement"/>
1369
+ </zeroOrMore>
1370
+ </element>
1371
+ </define>
1372
+ <define name="sup">
1373
+ <a:documentation>Superscript text. Corresponds to HTML `sup`</a:documentation>
1374
+ <element name="sup">
1375
+ <zeroOrMore>
1376
+ <ref name="PureTextElement"/>
1377
+ </zeroOrMore>
1378
+ </element>
1379
+ </define>
1380
+ <define name="strike">
1381
+ <a:documentation>Strikethrough text. Corresponds to HTML 4 `s`</a:documentation>
1382
+ <element name="strike">
1383
+ <zeroOrMore>
1384
+ <ref name="NestedTextElement"/>
1385
+ </zeroOrMore>
1386
+ </element>
1387
+ </define>
1388
+ <define name="pure_strike">
1389
+ <a:documentation>Strikethrough for PureTextElement</a:documentation>
1390
+ <element name="strike">
1391
+ <zeroOrMore>
1392
+ <ref name="PureTextElement"/>
1393
+ </zeroOrMore>
1394
+ </element>
1395
+ </define>
1396
+ <define name="underline">
1397
+ <a:documentation>Underlined text. Corresponds to HTML 4 `u`</a:documentation>
1398
+ <element name="underline">
1399
+ <optional>
1400
+ <attribute name="style">
1401
+ <a:documentation>CSS style to apply to underline (intended for text-decoration-style attribute keyword values: solid double dotted dashed wavy)</a:documentation>
1402
+ </attribute>
1403
+ </optional>
1404
+ <zeroOrMore>
1405
+ <ref name="NestedTextElement"/>
1406
+ </zeroOrMore>
1407
+ </element>
1408
+ </define>
1409
+ <define name="pure_underline">
1410
+ <a:documentation>Underlined text for PureTextElement</a:documentation>
1411
+ <element name="underline">
1412
+ <optional>
1413
+ <attribute name="style"/>
1414
+ </optional>
1415
+ <zeroOrMore>
1416
+ <ref name="PureTextElement"/>
1417
+ </zeroOrMore>
1418
+ </element>
1419
+ </define>
1420
+ <define name="smallcap">
1421
+ <a:documentation>Small caps text</a:documentation>
1422
+ <element name="smallcap">
1423
+ <zeroOrMore>
1424
+ <ref name="NestedTextElement"/>
1425
+ </zeroOrMore>
1426
+ </element>
1427
+ </define>
1428
+ <define name="pure_smallcap">
1429
+ <a:documentation>Small caps text for PureTextElement</a:documentation>
1430
+ <element name="smallcap">
1431
+ <zeroOrMore>
1432
+ <ref name="PureTextElement"/>
1433
+ </zeroOrMore>
1434
+ </element>
1435
+ </define>
1436
+ <define name="ruby">
1437
+ <a:documentation>Text with Ruby annotations in East Asian languages. Corresponds to HTML `ruby`</a:documentation>
1438
+ <element name="ruby">
1439
+ <choice>
1440
+ <ref name="ruby_pronunciation">
1441
+ <a:documentation>Ruby annotation giving pronunciation</a:documentation>
1442
+ </ref>
1443
+ <ref name="ruby_annotation">
1444
+ <a:documentation>Ruby annotation giving other (semantic) information</a:documentation>
1445
+ </ref>
1446
+ </choice>
1447
+ <choice>
1448
+ <text>
1449
+ <a:documentation>Ruby annotated text which contains no further annotations</a:documentation>
1450
+ </text>
1451
+ <ref name="ruby">
1452
+ <a:documentation>Ruby annotated text which itself contains other Ruby annotations</a:documentation>
1453
+ </ref>
1454
+ </choice>
1455
+ </element>
1456
+ </define>
1457
+ <define name="ruby_pronunciation">
1458
+ <a:documentation>Ruby annotation giving pronunciation of text</a:documentation>
1459
+ <element name="pronunciation">
1460
+ <attribute name="value">
1461
+ <a:documentation>Ruby annotation value</a:documentation>
1462
+ </attribute>
1463
+ <ref name="LocalizedStringAttributes"/>
1464
+ </element>
1465
+ </define>
1466
+ <define name="ruby_annotation">
1467
+ <a:documentation>Ruby annotation giving information other than pronunciation of text</a:documentation>
1468
+ <element name="annotation">
1469
+ <attribute name="value">
1470
+ <a:documentation>Ruby annotation value</a:documentation>
1471
+ </attribute>
1472
+ <ref name="LocalizedStringAttributes"/>
1473
+ </element>
1474
+ </define>
1475
+ <define name="br">
1476
+ <a:documentation>Line break</a:documentation>
1477
+ <element name="br">
1478
+ <empty/>
1479
+ </element>
1480
+ </define>
1481
+ <define name="hr">
1482
+ <a:documentation>Horizontal rule</a:documentation>
1483
+ <element name="hr">
1484
+ <empty/>
1485
+ </element>
1486
+ </define>
1487
+ <define name="pagebreak">
1488
+ <a:documentation>Page break. Only applicable in paged layouts (e.g. PDF, Word), and not flow layouts (e.g. HTML)</a:documentation>
1489
+ <element name="pagebreak">
1490
+ <empty/>
1491
+ </element>
1492
+ </define>
1493
+ <define name="index">
1494
+ <a:documentation>Index term, defined as applying to the location in the text where the index element appears, as a milestone</a:documentation>
1495
+ <element name="index">
1496
+ <optional>
1497
+ <attribute name="to">
1498
+ <a:documentation>A reference to an anchor element (typically a bookmark),
1499
+ to indicate that the index range covers a range of locations between the current index element and the `to` anchor</a:documentation>
1500
+ <data type="IDREF"/>
1501
+ </attribute>
1502
+ </optional>
1503
+ <ref name="index-primary">
1504
+ <a:documentation>Primary index term to be recorded at the current location</a:documentation>
1505
+ </ref>
1506
+ <ref name="index-secondary">
1507
+ <a:documentation>Secondary index term to be recorded at the current location</a:documentation>
1508
+ </ref>
1509
+ <ref name="index-tertiary">
1510
+ <a:documentation>Tertiary index term to be recorded at the current </a:documentation>
1511
+ </ref>
1512
+ </element>
1513
+ </define>
1514
+ <define name="index-xref">
1515
+ <a:documentation>A reference to an index term, cross-referenced within an index as an
1516
+ alternative index entry, either as a "see" or a "see also" cross-reference.
1517
+ The text in the inline element is the primary index term to be be cross-referenced</a:documentation>
1518
+ <element name="index-xref">
1519
+ <attribute name="also">
1520
+ <a:documentation>The cross-reference is to be treated as "see also" rather than as "see"</a:documentation>
1521
+ <data type="boolean"/>
1522
+ </attribute>
1523
+ <ref name="index-primary">
1524
+ <a:documentation>The primary index term to be cross-referenced</a:documentation>
1525
+ </ref>
1526
+ <ref name="index-secondary">
1527
+ <a:documentation>The secondary index term to be cross-referenced</a:documentation>
1528
+ </ref>
1529
+ <ref name="index-tertiary">
1530
+ <a:documentation>The tertiary index term to be cross-referenced</a:documentation>
1531
+ </ref>
1532
+ <element name="target">
1533
+ <a:documentation>The index term to be cross-referenced to</a:documentation>
1534
+ <oneOrMore>
1535
+ <ref name="PureTextElement"/>
1536
+ </oneOrMore>
1537
+ </element>
1538
+ </element>
1539
+ </define>
1540
+ <define name="index-primary">
1541
+ <element name="primary">
1542
+ <oneOrMore>
1543
+ <ref name="PureTextElement"/>
1544
+ </oneOrMore>
1545
+ </element>
1546
+ </define>
1547
+ <define name="index-secondary">
1548
+ <element name="secondary">
1549
+ <oneOrMore>
1550
+ <ref name="PureTextElement"/>
1551
+ </oneOrMore>
1552
+ </element>
1553
+ </define>
1554
+ <define name="index-tertiary">
1555
+ <element name="tertiary">
1556
+ <oneOrMore>
1557
+ <ref name="PureTextElement"/>
1558
+ </oneOrMore>
1559
+ </element>
1560
+ </define>
1561
+ <define name="bookmark">
1562
+ <a:documentation>Anchors within a block under the BasicDocument model cannot span across a number of inline elements;
1563
+ bookmarks are intended as point anchors. For that reason, the Review block has a starting reference and an optional ending reference,
1564
+ which can be bookmarks as well as block or section references</a:documentation>
1565
+ <element name="bookmark">
1566
+ <ref name="RequiredId"/>
1567
+ <empty/>
1568
+ </element>
1569
+ </define>
1570
+ <define name="ReferenceFormat">
1571
+ <a:documentation>The type of Reference Element, prescribing how it is to be rendered</a:documentation>
1572
+ <choice>
1573
+ <value>external</value>
1574
+ <a:documentation>Reference to an external document</a:documentation>
1575
+ <value>inline</value>
1576
+ <a:documentation>Reference to another element in the same document</a:documentation>
1577
+ <value>footnote</value>
1578
+ <a:documentation>Inline reference to a block to be rendered as a footnote</a:documentation>
1579
+ <value>callout</value>
1580
+ <a:documentation>Inline reference to a block to be referenced as a sourcecode callout</a:documentation>
1581
+ </choice>
1582
+ </define>
1583
+ <define name="eref">
1584
+ <a:documentation>An external reference to a bibliographic entity</a:documentation>
1585
+ <element name="eref">
1586
+ <ref name="erefType"/>
1587
+ </element>
1588
+ </define>
1589
+ <define name="erefType">
1590
+ <ref name="erefAttributes"/>
1591
+ <ref name="CitationType">
1592
+ <a:documentation>Reference cross-reference: modelled as cross-reference to the corresponding bibliographical item in a References section</a:documentation>
1593
+ </ref>
1594
+ <ref name="ErefBody">
1595
+ <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
1596
+ </ref>
1597
+ </define>
1598
+ <define name="erefAttributes">
1599
+ <optional>
1600
+ <attribute name="normative">
1601
+ <a:documentation>Whether the reference is to be treated as normative or informative, particularly in the context of normative documents such as standards</a:documentation>
1602
+ <data type="boolean"/>
1603
+ </attribute>
1604
+ </optional>
1605
+ <attribute name="citeas">
1606
+ <a:documentation>Form that the bibliographic citation should take when it is rendered</a:documentation>
1607
+ </attribute>
1608
+ <optional>
1609
+ <attribute name="type">
1610
+ <a:documentation>The type of Reference Element, prescribing how it is to be rendered</a:documentation>
1611
+ <ref name="ReferenceFormat"/>
1612
+ </attribute>
1613
+ </optional>
1614
+ <optional>
1615
+ <attribute name="alt">
1616
+ <a:documentation>Alternate text, used for accessibility</a:documentation>
1617
+ </attribute>
1618
+ </optional>
1619
+ </define>
1620
+ <define name="hyperlink">
1621
+ <a:documentation>A reference to an external document or resource</a:documentation>
1622
+ <element name="link">
1623
+ <ref name="HyperlinkAttributes"/>
1624
+ <oneOrMore>
1625
+ <ref name="PureTextElement">
1626
+ <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
1627
+ </ref>
1628
+ </oneOrMore>
1629
+ </element>
1630
+ </define>
1631
+ <define name="HyperlinkAttributes">
1632
+ <attribute name="target">
1633
+ <a:documentation>The location or online identifier of the external document or resource</a:documentation>
1634
+ <data type="anyURI"/>
1635
+ </attribute>
1636
+ <optional>
1637
+ <attribute name="type">
1638
+ <a:documentation>The type of Reference Element, prescribing how it is to be rendered</a:documentation>
1639
+ <ref name="ReferenceFormat"/>
1640
+ </attribute>
1641
+ </optional>
1642
+ <optional>
1643
+ <attribute name="alt">
1644
+ <a:documentation>Alternate text, used for accessibility</a:documentation>
1645
+ </attribute>
1646
+ </optional>
1647
+ </define>
1648
+ <define name="xref">
1649
+ <a:documentation>Inline element, which references an identifier of a document, a block in a document, or an element in a document</a:documentation>
1650
+ <element name="xref">
1651
+ <ref name="XrefAttributes"/>
1652
+ <ref name="XrefBody"/>
1653
+ </element>
1654
+ </define>
1655
+ <define name="XrefAttributes">
1656
+ <attribute name="target">
1657
+ <a:documentation>The identifier of a section, block or inlined element being referenced</a:documentation>
1658
+ <data type="IDREF"/>
1659
+ </attribute>
1660
+ <optional>
1661
+ <attribute name="type">
1662
+ <a:documentation>The type of Reference Element, prescribing how it is to be rendered</a:documentation>
1663
+ <ref name="ReferenceFormat"/>
1664
+ </attribute>
1665
+ </optional>
1666
+ <optional>
1667
+ <attribute name="alt">
1668
+ <a:documentation>Alternate text, used for accessibility</a:documentation>
1669
+ </attribute>
1670
+ </optional>
1671
+ </define>
1672
+ <define name="XrefBody">
1673
+ <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
1674
+ <optional>
1675
+ <element name="display-text">
1676
+ <oneOrMore>
1677
+ <ref name="PureTextElement"/>
1678
+ </oneOrMore>
1679
+ </element>
1680
+ </optional>
1681
+ </define>
1682
+ <define name="ErefBody">
1683
+ <optional>
1684
+ <element name="display-text">
1685
+ <oneOrMore>
1686
+ <ref name="PureTextElement">
1687
+ <a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `&lt;xx&gt;my link text&lt;/xx&gt;`)</a:documentation>
1688
+ </ref>
1689
+ </oneOrMore>
1690
+ </element>
1691
+ </optional>
1692
+ </define>
1693
+ <define name="fn">
1694
+ <a:documentation>Inline reference to a paragraph or paragraphs, appearing as a footnote.
1695
+ The target of a footnote is the location it is embedded in within the text</a:documentation>
1696
+ <element name="fn">
1697
+ <attribute name="reference">
1698
+ <a:documentation>The number of the footnote, used to identify it visually</a:documentation>
1699
+ </attribute>
1700
+ <oneOrMore>
1701
+ <ref name="paragraph">
1702
+ <a:documentation>The content of the footnote</a:documentation>
1703
+ </ref>
1704
+ </oneOrMore>
1705
+ </element>
1706
+ </define>
1707
+ <define name="callout">
1708
+ <a:documentation>Inline reference to a paragraph or paragraphs, appearing as annotation of source code</a:documentation>
1709
+ <element name="callout">
1710
+ <attribute name="target">
1711
+ <a:documentation>The target of the callout is understood to be the location of the callout within the source code;
1712
+ the extent of the target is not expressed overtly</a:documentation>
1713
+ <data type="IDREF"/>
1714
+ </attribute>
1715
+ <text>
1716
+ <a:documentation>The label of the callout, used to identify its target within the source code</a:documentation>
1717
+ </text>
1718
+ </element>
1719
+ </define>
1720
+ <define name="image">
1721
+ <a:documentation>Container for image content</a:documentation>
1722
+ <element name="image">
1723
+ <ref name="RequiredId"/>
1724
+ <ref name="ImageAttributes"/>
1725
+ </element>
1726
+ </define>
1727
+ <define name="image-no-id">
1728
+ <a:documentation>Container for image content: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
1729
+ <element name="image">
1730
+ <ref name="OptionalId"/>
1731
+ <ref name="ImageAttributes"/>
1732
+ </element>
1733
+ </define>
1734
+ <define name="ImageAttributes">
1735
+ <ref name="MediaAttributes"/>
1736
+ <ref name="MediaAccessibilityAttributes"/>
1737
+ <optional>
1738
+ <attribute name="width">
1739
+ <a:documentation>Height of image</a:documentation>
1740
+ <ref name="ImageSize"/>
1741
+ </attribute>
1742
+ </optional>
1743
+ <optional>
1744
+ <attribute name="height">
1745
+ <a:documentation>Width of image</a:documentation>
1746
+ <ref name="ImageSize"/>
1747
+ </attribute>
1748
+ </optional>
1749
+ </define>
1750
+ <define name="MIMEType">
1751
+ <a:documentation>MIME encoding of media type</a:documentation>
1752
+ <text/>
1753
+ </define>
1754
+ <define name="ImageSize">
1755
+ <a:documentation>Legal values for image height and width.
1756
+ Attributes are realised as a real number, with optional percent sign,
1757
+ or as the string "auto"</a:documentation>
1758
+ <choice>
1759
+ <data type="string">
1760
+ <param name="pattern">\d+([.]\d+)?(%?)</param>
1761
+ </data>
1762
+ <value>auto</value>
1763
+ </choice>
1764
+ </define>
1765
+ <define name="video">
1766
+ <a:documentation>Container for video content</a:documentation>
1767
+ <element name="video">
1768
+ <ref name="RequiredId"/>
1769
+ <ref name="VideoAttributes"/>
1770
+ <ref name="VideoBody"/>
1771
+ </element>
1772
+ </define>
1773
+ <define name="video-no-id">
1774
+ <a:documentation>Container for video content: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
1775
+ <element name="video">
1776
+ <ref name="OptionalId"/>
1777
+ <ref name="VideoAttributes"/>
1778
+ <ref name="VideoBody"/>
1779
+ </element>
1780
+ </define>
1781
+ <define name="VideoAttributes">
1782
+ <ref name="MediaAttributes"/>
1783
+ <ref name="MediaAccessibilityAttributes"/>
1784
+ <optional>
1785
+ <attribute name="width">
1786
+ <a:documentation>Width of video</a:documentation>
1787
+ <ref name="ImageSize"/>
1788
+ </attribute>
1789
+ </optional>
1790
+ <optional>
1791
+ <attribute name="height">
1792
+ <a:documentation>Height of video</a:documentation>
1793
+ <ref name="ImageSize"/>
1794
+ </attribute>
1795
+ </optional>
1796
+ </define>
1797
+ <define name="VideoBody">
1798
+ <zeroOrMore>
1799
+ <ref name="altsource">
1800
+ <a:documentation>Alternative files to use as media</a:documentation>
1801
+ </ref>
1802
+ </zeroOrMore>
1803
+ </define>
1804
+ <define name="audio">
1805
+ <a:documentation>Container for audio content</a:documentation>
1806
+ <element name="audio">
1807
+ <ref name="RequiredId"/>
1808
+ <ref name="AudioAttributes"/>
1809
+ <ref name="AudioBody"/>
1810
+ </element>
1811
+ </define>
1812
+ <define name="audio-no-id">
1813
+ <a:documentation>Container for audio content: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
1814
+ <element name="audio">
1815
+ <ref name="OptionalId"/>
1816
+ <ref name="AudioAttributes"/>
1817
+ <ref name="AudioBody"/>
1818
+ </element>
1819
+ </define>
1820
+ <define name="AudioAttributes">
1821
+ <ref name="MediaAttributes"/>
1822
+ <ref name="MediaAccessibilityAttributes"/>
1823
+ </define>
1824
+ <define name="AudioBody">
1825
+ <zeroOrMore>
1826
+ <ref name="altsource">
1827
+ <a:documentation>Alternative files to use as media</a:documentation>
1828
+ </ref>
1829
+ </zeroOrMore>
1830
+ </define>
1831
+ <define name="altsource">
1832
+ <a:documentation>Alternative file to use as media</a:documentation>
1833
+ <element name="altsource">
1834
+ <ref name="MediaAttributes"/>
1835
+ </element>
1836
+ </define>
1837
+ <define name="MediaAttributes">
1838
+ <attribute name="src">
1839
+ <a:documentation>URI of the media file</a:documentation>
1840
+ <data type="anyURI"/>
1841
+ </attribute>
1842
+ <attribute name="mimetype">
1843
+ <a:documentation>Type of the media file, in MIME</a:documentation>
1844
+ <ref name="MIMEType"/>
1845
+ </attribute>
1846
+ <optional>
1847
+ <attribute name="filename">
1848
+ <a:documentation>File name corresponding to the media, to which the media can be extracted if it is represented inline
1849
+ (e.g. in Base64 encoding in the URI)</a:documentation>
1850
+ </attribute>
1851
+ </optional>
1852
+ </define>
1853
+ <define name="MediaAccessibilityAttributes">
1854
+ <optional>
1855
+ <attribute name="alt">
1856
+ <a:documentation>Alternate text, supplied for accessibility</a:documentation>
1857
+ </attribute>
1858
+ </optional>
1859
+ <optional>
1860
+ <attribute name="title">
1861
+ <a:documentation>Title, supplied for accessibility</a:documentation>
1862
+ </attribute>
1863
+ </optional>
1864
+ <optional>
1865
+ <attribute name="longdesc">
1866
+ <a:documentation>URI pointing to more extensive alternate text description, supplied for accessibility</a:documentation>
1867
+ <data type="anyURI"/>
1868
+ </attribute>
1869
+ </optional>
1870
+ </define>
1871
+ <define name="stem">
1872
+ <a:documentation>Mathematically formatted text</a:documentation>
1873
+ <element name="stem">
1874
+ <ref name="StemAttributes"/>
1875
+ <oneOrMore>
1876
+ <choice>
1877
+ <a:documentation>The content of the mathematically formatted text</a:documentation>
1878
+ <text/>
1879
+ <ref name="AnyElement"/>
1880
+ </choice>
1881
+ </oneOrMore>
1882
+ </element>
1883
+ </define>
1884
+ <define name="StemAttributes">
1885
+ <attribute name="type">
1886
+ <a:documentation>The notation used to mathematically format the text</a:documentation>
1887
+ <choice>
1888
+ <value>MathML</value>
1889
+ <value>AsciiMath</value>
1890
+ <value>LaTeX</value>
1891
+ </choice>
1892
+ </attribute>
1893
+ </define>
1894
+ <define name="annotation">
1895
+ <element name="annotation">
1896
+ <ref name="RequiredId"/>
1897
+ <oneOrMore>
1898
+ <ref name="paragraph"/>
1899
+ </oneOrMore>
1900
+ </element>
1901
+ </define>
1902
+ <define name="ul">
1903
+ <a:documentation>Unordered list block</a:documentation>
1904
+ <element name="ul">
1905
+ <ref name="RequiredId"/>
1906
+ <ref name="UlAttributes"/>
1907
+ <ref name="UlBody"/>
1908
+ </element>
1909
+ </define>
1910
+ <define name="ul-no-id">
1911
+ <a:documentation>Unordered list block: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
1912
+ <element name="ul">
1913
+ <ref name="OptionalId"/>
1914
+ <ref name="UlAttributes"/>
1915
+ <ref name="UlNoIdBody"/>
1916
+ </element>
1917
+ </define>
1918
+ <define name="UlAttributes">
1919
+ <empty/>
1920
+ </define>
1921
+ <define name="UlBody">
1922
+ <oneOrMore>
1923
+ <ref name="li">
1924
+ <a:documentation>List items</a:documentation>
1925
+ </ref>
1926
+ </oneOrMore>
1927
+ <zeroOrMore>
1928
+ <ref name="note">
1929
+ <a:documentation>Notes whose scope is the current block</a:documentation>
1930
+ </ref>
1931
+ </zeroOrMore>
1932
+ </define>
1933
+ <define name="UlNoIdBody">
1934
+ <oneOrMore>
1935
+ <ref name="li-no-id">
1936
+ <a:documentation>List items</a:documentation>
1937
+ </ref>
1938
+ </oneOrMore>
1939
+ <zeroOrMore>
1940
+ <ref name="note-no-id">
1941
+ <a:documentation>Notes whose scope is the current block</a:documentation>
1942
+ </ref>
1943
+ </zeroOrMore>
1944
+ </define>
1945
+ <define name="li">
1946
+ <a:documentation>Item in a list block</a:documentation>
1947
+ <element name="li">
1948
+ <ref name="OptionalId"/>
1949
+ <ref name="LiAttributes"/>
1950
+ <ref name="LiBody"/>
1951
+ </element>
1952
+ </define>
1953
+ <define name="li-no-id">
1954
+ <a:documentation>Item in a list block: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
1955
+ <element name="li">
1956
+ <ref name="OptionalId"/>
1957
+ <ref name="LiAttributes"/>
1958
+ <ref name="LiNoIdBody"/>
1959
+ </element>
1960
+ </define>
1961
+ <define name="LiAttributes">
1962
+ <empty/>
1963
+ </define>
1964
+ <define name="LiBody">
1965
+ <oneOrMore>
1966
+ <ref name="paragraph-with-footnote"/>
1967
+ </oneOrMore>
1968
+ </define>
1969
+ <define name="LiNoIdBody">
1970
+ <oneOrMore>
1971
+ <ref name="paragraph-with-footnote-no-id"/>
1972
+ </oneOrMore>
1973
+ </define>
1974
+ <define name="ol">
1975
+ <a:documentation>Ordered list, with numbering applied to the list items</a:documentation>
1976
+ <element name="ol">
1977
+ <ref name="RequiredId"/>
1978
+ <ref name="OlAttributes"/>
1979
+ <ref name="OlBody"/>
1980
+ </element>
1981
+ </define>
1982
+ <define name="ol-no-id">
1983
+ <a:documentation>Ordered list: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
1984
+ <element name="ol">
1985
+ <ref name="OptionalId"/>
1986
+ <ref name="OlAttributes"/>
1987
+ <ref name="OlNoIdBody"/>
1988
+ </element>
1989
+ </define>
1990
+ <define name="OlAttributes">
1991
+ <attribute name="type">
1992
+ <a:documentation>Type of numbering to be applied to the list items</a:documentation>
1993
+ <choice>
1994
+ <value>roman</value>
1995
+ <value>alphabet</value>
1996
+ <value>arabic</value>
1997
+ <value>roman_upper</value>
1998
+ <value>alphabet_upper</value>
1999
+ </choice>
2000
+ </attribute>
2001
+ <optional>
2002
+ <attribute name="start">
2003
+ <a:documentation>Starting value for numbering of the list items; is a number, regardless of the type,
2004
+ and is mapped to the ordinal represented in the type</a:documentation>
2005
+ </attribute>
2006
+ </optional>
2007
+ </define>
2008
+ <define name="OlBody">
2009
+ <oneOrMore>
2010
+ <ref name="li">
2011
+ <a:documentation>List item</a:documentation>
2012
+ </ref>
2013
+ </oneOrMore>
2014
+ <zeroOrMore>
2015
+ <ref name="note">
2016
+ <a:documentation>Notes whose scope is the current block</a:documentation>
2017
+ </ref>
2018
+ </zeroOrMore>
2019
+ </define>
2020
+ <define name="OlNoIdBody">
2021
+ <oneOrMore>
2022
+ <ref name="li-no-id">
2023
+ <a:documentation>List item</a:documentation>
2024
+ </ref>
2025
+ </oneOrMore>
2026
+ <zeroOrMore>
2027
+ <ref name="note-no-id">
2028
+ <a:documentation>Notes whose scope is the current block</a:documentation>
2029
+ </ref>
2030
+ </zeroOrMore>
2031
+ </define>
2032
+ <define name="dl">
2033
+ <a:documentation>Definition list, composed of definitions rather than list items</a:documentation>
2034
+ <element name="dl">
2035
+ <ref name="RequiredId"/>
2036
+ <ref name="DlAttributes"/>
2037
+ <ref name="DlBody"/>
2038
+ </element>
2039
+ </define>
2040
+ <define name="dl-no-id">
2041
+ <a:documentation>Definition list: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
2042
+ <element name="dl">
2043
+ <ref name="OptionalId"/>
2044
+ <ref name="DlNoIdBody"/>
2045
+ </element>
2046
+ </define>
2047
+ <define name="DlAttributes">
2048
+ <empty/>
2049
+ </define>
2050
+ <define name="DlBody">
2051
+ <oneOrMore>
2052
+ <group>
2053
+ <a:documentation>Entry-Definition pair used to constitute a definition list</a:documentation>
2054
+ <ref name="dt">
2055
+ <a:documentation>Entry being defined in the definition</a:documentation>
2056
+ </ref>
2057
+ <ref name="dd">
2058
+ <a:documentation>Definition of the entry</a:documentation>
2059
+ </ref>
2060
+ </group>
2061
+ </oneOrMore>
2062
+ <zeroOrMore>
2063
+ <ref name="note">
2064
+ <a:documentation>Notes whose scope is the current block</a:documentation>
2065
+ </ref>
2066
+ </zeroOrMore>
2067
+ </define>
2068
+ <define name="DlNoIdBody">
2069
+ <oneOrMore>
2070
+ <group>
2071
+ <a:documentation>Entry-Definition pair used to constitute a definition list</a:documentation>
2072
+ <ref name="dt">
2073
+ <a:documentation>Entry being defined in the definition</a:documentation>
2074
+ </ref>
2075
+ <ref name="dd-no-id">
2076
+ <a:documentation>Definition of the entry</a:documentation>
2077
+ </ref>
2078
+ </group>
2079
+ </oneOrMore>
2080
+ <zeroOrMore>
2081
+ <ref name="note-no-id">
2082
+ <a:documentation>Notes whose scope is the current block</a:documentation>
2083
+ </ref>
2084
+ </zeroOrMore>
2085
+ </define>
2086
+ <define name="dt">
2087
+ <a:documentation>Entry in a definition list</a:documentation>
2088
+ <element name="dt">
2089
+ <zeroOrMore>
2090
+ <ref name="TextElement"/>
2091
+ </zeroOrMore>
2092
+ </element>
2093
+ </define>
2094
+ <define name="dd">
2095
+ <a:documentation>Definition in a definition list</a:documentation>
2096
+ <element name="dd">
2097
+ <zeroOrMore>
2098
+ <ref name="paragraph-with-footnote"/>
2099
+ </zeroOrMore>
2100
+ </element>
2101
+ </define>
2102
+ <define name="dd-no-id">
2103
+ <a:documentation>Definition in a definition list: optional ID attributes recursively (for use in Relaton, metadata)</a:documentation>
2104
+ <element name="dd">
2105
+ <zeroOrMore>
2106
+ <ref name="paragraph-with-footnote-no-id"/>
2107
+ </zeroOrMore>
2108
+ </element>
2109
+ </define>
2110
+ </grammar>