relaton-bib 1.20.7 → 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 (123) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +1 -1
  3. data/README.adoc +183 -154
  4. data/bin/console +1 -1
  5. data/grammars/basicdoc.rng +1516 -645
  6. data/grammars/biblio-standoc.rng +100 -20
  7. data/grammars/biblio.rng +959 -356
  8. data/grammars/versions.json +10 -10
  9. data/lib/relaton/bib/hash_parser_v1.rb +711 -0
  10. data/lib/relaton/bib/item_data.rb +168 -0
  11. data/lib/relaton/bib/model/address.rb +22 -0
  12. data/lib/relaton/bib/model/affiliation.rb +16 -0
  13. data/lib/relaton/bib/model/bibdata.rb +24 -0
  14. data/lib/relaton/bib/model/bibitem.rb +23 -0
  15. data/lib/relaton/bib/model/contact.rb +18 -0
  16. data/lib/relaton/bib/model/contribution_info.rb +16 -0
  17. data/lib/relaton/bib/model/contributor.rb +71 -0
  18. data/lib/relaton/bib/model/copyright.rb +27 -0
  19. data/lib/relaton/bib/model/date.rb +29 -0
  20. data/lib/relaton/bib/model/depiction.rb +14 -0
  21. data/lib/relaton/bib/model/docidentifier.rb +33 -0
  22. data/lib/relaton/bib/model/doctype.rb +14 -0
  23. data/lib/relaton/bib/model/edition.rb +14 -0
  24. data/lib/relaton/bib/model/editorial_group.rb +14 -0
  25. data/lib/relaton/bib/model/ext.rb +29 -0
  26. data/lib/relaton/bib/model/extent.rb +16 -0
  27. data/lib/relaton/bib/model/full_name_type.rb +64 -0
  28. data/lib/relaton/bib/model/fullname.rb +11 -0
  29. data/lib/relaton/bib/model/ics.rb +14 -0
  30. data/lib/relaton/bib/model/image.rb +28 -0
  31. data/lib/relaton/bib/model/item.rb +129 -0
  32. data/lib/relaton/bib/model/item_base.rb +19 -0
  33. data/lib/relaton/bib/model/keyword.rb +30 -0
  34. data/lib/relaton/bib/model/locality.rb +18 -0
  35. data/lib/relaton/bib/model/locality_stack.rb +14 -0
  36. data/lib/relaton/bib/model/localized_string.rb +57 -0
  37. data/lib/relaton/bib/model/localized_string_attrs.rb +24 -0
  38. data/lib/relaton/bib/model/logo.rb +12 -0
  39. data/lib/relaton/bib/model/medium.rb +22 -0
  40. data/lib/relaton/bib/model/note.rb +16 -0
  41. data/lib/relaton/bib/model/organization.rb +13 -0
  42. data/lib/relaton/bib/model/organization_type.rb +42 -0
  43. data/lib/relaton/bib/model/person.rb +36 -0
  44. data/lib/relaton/bib/model/phone.rb +14 -0
  45. data/lib/relaton/bib/model/place.rb +33 -0
  46. data/lib/relaton/bib/model/price.rb +14 -0
  47. data/lib/relaton/bib/model/relation.rb +43 -0
  48. data/lib/relaton/bib/model/series.rb +32 -0
  49. data/lib/relaton/bib/model/size.rb +23 -0
  50. data/lib/relaton/bib/model/source_locality_stack.rb +14 -0
  51. data/lib/relaton/bib/model/status.rb +27 -0
  52. data/lib/relaton/bib/model/structured_identifier.rb +48 -0
  53. data/lib/relaton/bib/model/subdivision.rb +14 -0
  54. data/lib/relaton/bib/model/technical_committee.rb +14 -0
  55. data/lib/relaton/bib/model/title.rb +18 -0
  56. data/lib/relaton/bib/model/uri.rb +18 -0
  57. data/lib/relaton/bib/model/validity.rb +16 -0
  58. data/lib/relaton/bib/model/version.rb +14 -0
  59. data/lib/relaton/bib/model/workgroup.rb +20 -0
  60. data/lib/relaton/bib/parser/rfc_address.rb +60 -0
  61. data/lib/relaton/bib/parser/rfc_contacts.rb +35 -0
  62. data/lib/relaton/bib/parser/rfc_docidentifier.rb +70 -0
  63. data/lib/relaton/bib/parser/rfc_organization.rb +31 -0
  64. data/lib/relaton/bib/parser/rfc_person.rb +42 -0
  65. data/lib/relaton/bib/parser/rfc_reference.rb +143 -0
  66. data/lib/relaton/bib/parser/rfc_referencegroup.rb +45 -0
  67. data/lib/relaton/bib/parser/rfc_shared.rb +23 -0
  68. data/lib/relaton/bib/renderer/bibtex_builder.rb +348 -0
  69. data/lib/relaton/bib/renderer/rfc.rb +297 -0
  70. data/lib/relaton/bib/util.rb +18 -0
  71. data/lib/relaton/bib/version.rb +5 -0
  72. data/lib/{relaton_bib.rb → relaton/bib.rb} +47 -36
  73. data/lib/{relaton_bib → relaton}/bibtex_parser.rb +24 -27
  74. data/lib/{relaton_bib → relaton}/bibxml_parser.rb +43 -46
  75. data/lib/{relaton_bib → relaton}/hit.rb +3 -3
  76. data/lib/{relaton_bib → relaton}/hit_collection.rb +2 -2
  77. data/lib/{relaton_bib → relaton}/workers_pool.rb +1 -1
  78. data/lib/{relaton_bib → relaton}/xml_parser.rb +49 -51
  79. data/relaton-bib.gemspec +8 -8
  80. metadata +95 -74
  81. data/lib/relaton_bib/bib_item_locality.rb +0 -175
  82. data/lib/relaton_bib/biblio_note.rb +0 -72
  83. data/lib/relaton_bib/biblio_version.rb +0 -46
  84. data/lib/relaton_bib/bibliographic_date.rb +0 -119
  85. data/lib/relaton_bib/bibliographic_item.rb +0 -668
  86. data/lib/relaton_bib/bibliographic_size.rb +0 -103
  87. data/lib/relaton_bib/classification.rb +0 -40
  88. data/lib/relaton_bib/config.rb +0 -16
  89. data/lib/relaton_bib/contribution_info.rb +0 -117
  90. data/lib/relaton_bib/contributor.rb +0 -277
  91. data/lib/relaton_bib/copyright_association.rb +0 -79
  92. data/lib/relaton_bib/document_identifier.rb +0 -118
  93. data/lib/relaton_bib/document_relation.rb +0 -95
  94. data/lib/relaton_bib/document_relation_collection.rb +0 -57
  95. data/lib/relaton_bib/document_status.rb +0 -92
  96. data/lib/relaton_bib/document_type.rb +0 -52
  97. data/lib/relaton_bib/edition.rb +0 -55
  98. data/lib/relaton_bib/editorial_group.rb +0 -41
  99. data/lib/relaton_bib/extent.rb +0 -39
  100. data/lib/relaton_bib/forename.rb +0 -65
  101. data/lib/relaton_bib/formatted_ref.rb +0 -17
  102. data/lib/relaton_bib/formatted_string.rb +0 -133
  103. data/lib/relaton_bib/full_name.rb +0 -108
  104. data/lib/relaton_bib/hash_converter.rb +0 -568
  105. data/lib/relaton_bib/ics.rb +0 -42
  106. data/lib/relaton_bib/image.rb +0 -95
  107. data/lib/relaton_bib/localized_string.rb +0 -149
  108. data/lib/relaton_bib/medium.rb +0 -76
  109. data/lib/relaton_bib/organization.rb +0 -165
  110. data/lib/relaton_bib/person.rb +0 -129
  111. data/lib/relaton_bib/place.rb +0 -203
  112. data/lib/relaton_bib/renderer/bibtex_builder.rb +0 -312
  113. data/lib/relaton_bib/renderer/bibxml.rb +0 -296
  114. data/lib/relaton_bib/series.rb +0 -119
  115. data/lib/relaton_bib/structured_identifier.rb +0 -173
  116. data/lib/relaton_bib/technical_committee.rb +0 -34
  117. data/lib/relaton_bib/typed_title_string.rb +0 -191
  118. data/lib/relaton_bib/typed_uri.rb +0 -57
  119. data/lib/relaton_bib/util.rb +0 -16
  120. data/lib/relaton_bib/validity.rb +0 -52
  121. data/lib/relaton_bib/version.rb +0 -3
  122. data/lib/relaton_bib/workgroup.rb +0 -58
  123. /data/lib/{relaton_bib → relaton}/deep_dup.rb +0 -0
@@ -1,18 +1,28 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
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
3
  <define name="document">
4
+ <a:documentation>Document</a:documentation>
4
5
  <element name="document">
5
6
  <optional>
6
- <attribute name="identifier"/>
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>
7
10
  </optional>
8
- <ref name="bibdata"/>
9
- <ref name="sections"/>
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>
10
17
  <zeroOrMore>
11
- <ref name="references"/>
18
+ <ref name="references">
19
+ <a:documentation>Bibliographic content</a:documentation>
20
+ </ref>
12
21
  </zeroOrMore>
13
22
  </element>
14
23
  </define>
15
24
  <define name="bibdata">
25
+ <a:documentation>Bibliographic description of a document, used as metadata, expressed in the Relaton model</a:documentation>
16
26
  <element name="bibdata">
17
27
  <ref name="BibData"/>
18
28
  </element>
@@ -25,51 +35,71 @@
25
35
  </element>
26
36
  </define>
27
37
  <define name="section">
38
+ <a:documentation>Section: groups of blocks within text, which can also contain other sections</a:documentation>
28
39
  <element name="section">
29
40
  <ref name="Basic-Section"/>
30
41
  <zeroOrMore>
31
- <ref name="section"/>
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>
32
46
  </zeroOrMore>
33
47
  </element>
34
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>
35
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"/>
36
64
  <optional>
37
- <attribute name="id">
38
- <data type="ID"/>
39
- </attribute>
40
- </optional>
41
- <optional>
42
- <attribute name="language"/>
43
- </optional>
44
- <optional>
45
- <attribute name="script"/>
46
- </optional>
47
- <optional>
48
- <ref name="section-title"/>
65
+ <ref name="section-title">
66
+ <a:documentation>Title of the section</a:documentation>
67
+ </ref>
49
68
  </optional>
50
69
  <zeroOrMore>
51
- <ref name="BasicBlock"/>
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>
52
74
  </zeroOrMore>
53
75
  </define>
76
+ <define name="Basic-Section-Attributes">
77
+ <ref name="OptionalId"/>
78
+ <ref name="LocalizedStringAttributes"/>
79
+ </define>
54
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>
55
82
  <element name="references">
83
+ <ref name="OptionalId"/>
56
84
  <optional>
57
- <attribute name="id">
58
- <data type="ID"/>
59
- </attribute>
60
- </optional>
61
- <optional>
62
- <ref name="section-title"/>
85
+ <ref name="section-title">
86
+ <a:documentation>Title of section</a:documentation>
87
+ </ref>
63
88
  </optional>
64
89
  <zeroOrMore>
65
- <ref name="BasicBlock"/>
90
+ <ref name="BasicBlock">
91
+ <a:documentation>Prefatory text</a:documentation>
92
+ </ref>
66
93
  </zeroOrMore>
67
94
  <zeroOrMore>
68
- <ref name="bibitem"/>
95
+ <ref name="bibitem">
96
+ <a:documentation>Bibliographical items included in the References section</a:documentation>
97
+ </ref>
69
98
  </zeroOrMore>
70
99
  </element>
71
100
  </define>
72
101
  <define name="section-title">
102
+ <a:documentation>Title of a section</a:documentation>
73
103
  <element name="title">
74
104
  <zeroOrMore>
75
105
  <ref name="TextElement"/>
@@ -77,6 +107,7 @@
77
107
  </element>
78
108
  </define>
79
109
  <define name="BasicBlock">
110
+ <a:documentation>Block of textual content</a:documentation>
80
111
  <choice>
81
112
  <ref name="paragraph-with-footnote"/>
82
113
  <ref name="table"/>
@@ -98,18 +129,39 @@
98
129
  <ref name="amend"/>
99
130
  </choice>
100
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>
101
155
  <define name="amend">
156
+ <a:documentation>Block describing a change in a document, intended for human readers</a:documentation>
102
157
  <element name="amend">
103
158
  <ref name="AmendType"/>
104
159
  </element>
105
160
  </define>
106
161
  <define name="AmendType">
107
- <optional>
108
- <attribute name="id">
109
- <data type="ID"/>
110
- </attribute>
111
- </optional>
162
+ <ref name="OptionalId"/>
112
163
  <attribute name="change">
164
+ <a:documentation>The type of change described in this block</a:documentation>
113
165
  <choice>
114
166
  <value>add</value>
115
167
  <value>modify</value>
@@ -118,16 +170,26 @@
118
170
  </choice>
119
171
  </attribute>
120
172
  <optional>
121
- <attribute name="path"/>
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>
122
177
  </optional>
123
178
  <optional>
124
- <attribute name="path_end"/>
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>
125
184
  </optional>
126
185
  <optional>
127
- <attribute name="title"/>
186
+ <attribute name="title">
187
+ <a:documentation>Optional caption of this block</a:documentation>
188
+ </attribute>
128
189
  </optional>
129
190
  <optional>
130
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>
131
193
  <zeroOrMore>
132
194
  <choice>
133
195
  <ref name="locality"/>
@@ -138,6 +200,7 @@
138
200
  </optional>
139
201
  <optional>
140
202
  <element name="description">
203
+ <a:documentation>Description of the change described in this block</a:documentation>
141
204
  <zeroOrMore>
142
205
  <ref name="BasicBlock"/>
143
206
  </zeroOrMore>
@@ -145,27 +208,33 @@
145
208
  </optional>
146
209
  <optional>
147
210
  <element name="newcontent">
148
- <optional>
149
- <attribute name="id">
150
- <data type="ID"/>
151
- </attribute>
152
- </optional>
211
+ <a:documentation>New content to be added to the document; applicable to add and modify</a:documentation>
212
+ <ref name="OptionalId"/>
153
213
  <zeroOrMore>
154
214
  <ref name="BasicBlock"/>
155
215
  </zeroOrMore>
156
216
  </element>
157
217
  </optional>
158
218
  <zeroOrMore>
159
- <ref name="classification"/>
219
+ <ref name="classification">
220
+ <a:documentation>Classification of the change</a:documentation>
221
+ </ref>
160
222
  </zeroOrMore>
161
223
  <zeroOrMore>
162
- <ref name="contributor"/>
224
+ <ref name="contributor">
225
+ <a:documentation>Contributor responsible for the change</a:documentation>
226
+ </ref>
163
227
  </zeroOrMore>
164
228
  </define>
165
229
  <define name="classification">
230
+ <a:documentation>Key-value classification of an entity</a:documentation>
166
231
  <element name="classification">
167
- <ref name="classification_tag"/>
168
- <ref name="classification_value"/>
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>
169
238
  </element>
170
239
  </define>
171
240
  <define name="classification_tag">
@@ -179,11 +248,18 @@
179
248
  </element>
180
249
  </define>
181
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>
182
257
  <element name="p">
183
258
  <ref name="ParagraphType"/>
184
259
  </element>
185
260
  </define>
186
261
  <define name="Alignments">
262
+ <a:documentation>The alignment of the paragraph against the margins of the document</a:documentation>
187
263
  <choice>
188
264
  <value>left</value>
189
265
  <value>right</value>
@@ -191,133 +267,298 @@
191
267
  <value>justified</value>
192
268
  </choice>
193
269
  </define>
194
- <define name="ParagraphType">
270
+ <define name="RequiredId">
271
+ <a:documentation>Mandatory anchor of element, to be used for cross-references within the document</a:documentation>
195
272
  <attribute name="id">
196
273
  <data type="ID"/>
197
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">
198
285
  <optional>
199
286
  <attribute name="align">
287
+ <a:documentation>The alignment of the paragraph against the margins of the document</a:documentation>
200
288
  <ref name="Alignments"/>
201
289
  </attribute>
202
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>
203
299
  <zeroOrMore>
204
- <ref name="TextElement"/>
300
+ <ref name="TextElement">
301
+ <a:documentation>Inline elements constituting the content of the paragraph</a:documentation>
302
+ </ref>
205
303
  </zeroOrMore>
206
304
  <zeroOrMore>
207
- <ref name="note"/>
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>
208
326
  </zeroOrMore>
209
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>
210
336
  <define name="paragraph-with-footnote">
337
+ <a:documentation>A paragraph which may contain footnotes.</a:documentation>
211
338
  <element name="p">
212
- <attribute name="id">
213
- <data type="ID"/>
214
- </attribute>
215
- <optional>
216
- <attribute name="align">
217
- <ref name="Alignments"/>
218
- </attribute>
219
- </optional>
220
- <zeroOrMore>
221
- <choice>
222
- <ref name="TextElement"/>
223
- <ref name="fn"/>
224
- </choice>
225
- </zeroOrMore>
226
- <zeroOrMore>
227
- <ref name="note"/>
228
- </zeroOrMore>
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"/>
229
350
  </element>
230
351
  </define>
231
352
  <define name="note">
353
+ <a:documentation>Note block</a:documentation>
232
354
  <element name="note">
233
- <attribute name="id">
234
- <data type="ID"/>
235
- </attribute>
236
- <oneOrMore>
237
- <ref name="paragraph"/>
238
- </oneOrMore>
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"/>
239
366
  </element>
240
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>
241
381
  <define name="review">
382
+ <a:documentation>Block intended to capture reviewer comments about some text in the document</a:documentation>
242
383
  <element name="review">
243
- <attribute name="id">
244
- <data type="ID"/>
384
+ <ref name="RequiredId"/>
385
+ <attribute name="reviewer">
386
+ <a:documentation>The party who has offered the comment</a:documentation>
245
387
  </attribute>
246
- <attribute name="reviewer"/>
247
388
  <optional>
248
- <attribute name="type"/>
389
+ <attribute name="type">
390
+ <a:documentation>The type of reviewer comment</a:documentation>
391
+ </attribute>
249
392
  </optional>
250
393
  <optional>
251
394
  <attribute name="date">
395
+ <a:documentation>The date when the comment was made</a:documentation>
252
396
  <data type="dateTime"/>
253
397
  </attribute>
254
398
  </optional>
255
399
  <optional>
256
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>
257
403
  <data type="IDREF"/>
258
404
  </attribute>
259
405
  </optional>
260
406
  <optional>
261
407
  <attribute name="to">
408
+ <a:documentation>Identifier for the end of the text to which the comment applies</a:documentation>
262
409
  <data type="IDREF"/>
263
410
  </attribute>
264
411
  </optional>
265
412
  <oneOrMore>
266
- <ref name="paragraph"/>
413
+ <ref name="paragraph">
414
+ <a:documentation>Reviewer comments content</a:documentation>
415
+ </ref>
267
416
  </oneOrMore>
268
417
  </element>
269
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>
270
435
  <define name="formula">
436
+ <a:documentation>Block containing a mathematical expression or other formulas</a:documentation>
271
437
  <element name="formula">
272
- <attribute name="id">
273
- <data type="ID"/>
274
- </attribute>
275
- <optional>
276
- <attribute name="unnumbered">
277
- <data type="boolean"/>
278
- </attribute>
279
- </optional>
280
- <optional>
281
- <attribute name="subsequence"/>
282
- </optional>
283
- <optional>
284
- <attribute name="inequality">
285
- <data type="boolean"/>
286
- </attribute>
287
- </optional>
288
- <ref name="stem"/>
289
- <optional>
290
- <ref name="dl"/>
291
- </optional>
292
- <zeroOrMore>
293
- <ref name="note"/>
294
- </zeroOrMore>
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"/>
295
449
  </element>
296
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>
297
490
  <define name="quote">
491
+ <a:documentation>Block quotation, containing extensive textual content originally authored outside of the current document</a:documentation>
298
492
  <element name="quote">
299
- <attribute name="id">
300
- <data type="ID"/>
301
- </attribute>
302
- <optional>
303
- <attribute name="alignment">
304
- <ref name="Alignments"/>
305
- </attribute>
306
- </optional>
307
- <optional>
308
- <ref name="quote-source"/>
309
- </optional>
310
- <optional>
311
- <ref name="quote-author"/>
312
- </optional>
313
- <oneOrMore>
314
- <ref name="paragraph-with-footnote"/>
315
- </oneOrMore>
316
- <zeroOrMore>
317
- <ref name="note"/>
318
- </zeroOrMore>
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"/>
319
504
  </element>
320
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>
321
562
  <define name="quote-source">
322
563
  <element name="source">
323
564
  <ref name="erefType"/>
@@ -329,110 +570,243 @@
329
570
  </element>
330
571
  </define>
331
572
  <define name="sourcecode">
573
+ <a:documentation>Block containing computer code or comparable text</a:documentation>
332
574
  <element name="sourcecode">
333
- <attribute name="id">
334
- <data type="ID"/>
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>
335
593
  </attribute>
336
- <optional>
337
- <attribute name="unnumbered">
338
- <data type="boolean"/>
339
- </attribute>
340
- </optional>
341
- <optional>
342
- <attribute name="subsequence"/>
343
- </optional>
344
- <optional>
345
- <attribute name="lang"/>
346
- </optional>
347
- <optional>
348
- <ref name="tname"/>
349
- </optional>
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">
350
642
  <oneOrMore>
351
643
  <choice>
352
644
  <text/>
353
- <ref name="callout"/>
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>
354
648
  </choice>
355
649
  </oneOrMore>
356
- <zeroOrMore>
357
- <ref name="annotation"/>
358
- </zeroOrMore>
359
- <zeroOrMore>
360
- <ref name="note"/>
361
- </zeroOrMore>
362
650
  </element>
363
651
  </define>
364
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>
365
657
  <element name="pre">
366
- <attribute name="id">
367
- <data type="ID"/>
368
- </attribute>
369
- <optional>
370
- <attribute name="alt"/>
371
- </optional>
372
- <optional>
373
- <ref name="tname"/>
374
- </optional>
375
- <text/>
376
- <zeroOrMore>
377
- <ref name="note"/>
378
- </zeroOrMore>
658
+ <ref name="RequiredId"/>
659
+ <ref name="PreAttributes"/>
660
+ <ref name="PreBody"/>
379
661
  </element>
380
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>
381
708
  <define name="table">
709
+ <a:documentation>Tabular arrangement of text</a:documentation>
382
710
  <element name="table">
383
- <attribute name="id">
384
- <data type="ID"/>
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>
385
729
  </attribute>
386
- <optional>
387
- <attribute name="unnumbered">
388
- <data type="boolean"/>
389
- </attribute>
390
- </optional>
391
- <optional>
392
- <attribute name="subsequence"/>
393
- </optional>
394
- <optional>
395
- <attribute name="alt"/>
396
- </optional>
397
- <optional>
398
- <attribute name="summary"/>
399
- </optional>
400
- <optional>
401
- <attribute name="uri">
402
- <data type="anyURI"/>
403
- </attribute>
404
- </optional>
405
- <optional>
406
- <ref name="tname"/>
407
- </optional>
408
- <optional>
409
- <ref name="thead"/>
410
- </optional>
411
- <ref name="tbody"/>
412
- <optional>
413
- <ref name="tfoot"/>
414
- </optional>
415
- <zeroOrMore>
416
- <ref name="table-note"/>
417
- </zeroOrMore>
418
- <optional>
419
- <ref name="dl"/>
420
- </optional>
421
- </element>
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>
422
805
  </define>
423
806
  <define name="tname">
424
807
  <element name="name">
425
808
  <oneOrMore>
426
- <choice>
427
- <ref name="PureTextElement"/>
428
- <ref name="eref"/>
429
- <ref name="stem"/>
430
- <ref name="keyword"/>
431
- <ref name="xref"/>
432
- <ref name="hyperlink"/>
433
- <ref name="index"/>
434
- <ref name="index-xref"/>
435
- </choice>
809
+ <ref name="NestedTextElement"/>
436
810
  </oneOrMore>
437
811
  </element>
438
812
  </define>
@@ -441,11 +815,21 @@
441
815
  <ref name="tr"/>
442
816
  </element>
443
817
  </define>
818
+ <define name="thead-no-id">
819
+ <element name="thead">
820
+ <ref name="tr-no-id"/>
821
+ </element>
822
+ </define>
444
823
  <define name="tfoot">
445
824
  <element name="tfoot">
446
825
  <ref name="tr"/>
447
826
  </element>
448
827
  </define>
828
+ <define name="tfoot-no-id">
829
+ <element name="tfoot">
830
+ <ref name="tr-no-id"/>
831
+ </element>
832
+ </define>
449
833
  <define name="tbody">
450
834
  <element name="tbody">
451
835
  <oneOrMore>
@@ -453,209 +837,409 @@
453
837
  </oneOrMore>
454
838
  </element>
455
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>
456
847
  <define name="table-note">
457
848
  <element name="note">
458
849
  <ref name="paragraph"/>
459
850
  </element>
460
851
  </define>
852
+ <define name="table-note-no-id">
853
+ <element name="note">
854
+ <ref name="paragraph-no-id"/>
855
+ </element>
856
+ </define>
461
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>
462
874
  <element name="tr">
463
875
  <oneOrMore>
464
876
  <choice>
465
- <ref name="td"/>
466
- <ref name="th"/>
877
+ <ref name="td-no-id"/>
878
+ <ref name="th-no-id"/>
467
879
  </choice>
468
880
  </oneOrMore>
469
881
  </element>
470
882
  </define>
471
883
  <define name="td">
884
+ <a:documentation>Textual content constituting a basic building block of a table: data cell</a:documentation>
472
885
  <element name="td">
473
- <optional>
474
- <attribute name="colspan"/>
475
- </optional>
476
- <optional>
477
- <attribute name="rowspan"/>
478
- </optional>
479
- <optional>
480
- <attribute name="align">
481
- <choice>
482
- <value>left</value>
483
- <value>right</value>
484
- <value>center</value>
485
- </choice>
486
- </attribute>
487
- </optional>
488
- <optional>
489
- <attribute name="valign">
490
- <choice>
491
- <value>top</value>
492
- <value>middle</value>
493
- <value>bottom</value>
494
- <value>baseline</value>
495
- </choice>
496
- </attribute>
497
- </optional>
498
- <choice>
499
- <zeroOrMore>
500
- <ref name="TextElement"/>
501
- </zeroOrMore>
502
- <oneOrMore>
503
- <ref name="paragraph-with-footnote"/>
504
- </oneOrMore>
505
- </choice>
886
+ <ref name="TdAttributes"/>
887
+ <ref name="TdBody"/>
506
888
  </element>
507
889
  </define>
508
- <define name="th">
509
- <element name="th">
510
- <optional>
511
- <attribute name="colspan"/>
512
- </optional>
513
- <optional>
514
- <attribute name="rowspan"/>
515
- </optional>
516
- <optional>
517
- <attribute name="align">
518
- <choice>
519
- <value>left</value>
520
- <value>right</value>
521
- <value>center</value>
522
- </choice>
523
- </attribute>
524
- </optional>
525
- <optional>
526
- <attribute name="valign">
527
- <choice>
528
- <value>top</value>
529
- <value>middle</value>
530
- <value>bottom</value>
531
- <value>baseline</value>
532
- </choice>
533
- </attribute>
534
- </optional>
535
- <choice>
536
- <zeroOrMore>
537
- <ref name="TextElement"/>
538
- </zeroOrMore>
539
- <oneOrMore>
540
- <ref name="paragraph-with-footnote"/>
541
- </oneOrMore>
542
- </choice>
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"/>
543
895
  </element>
544
896
  </define>
545
- <define name="example">
546
- <element name="example">
547
- <attribute name="id">
548
- <data type="ID"/>
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>
549
901
  </attribute>
550
- <optional>
551
- <attribute name="unnumbered">
552
- <data type="boolean"/>
553
- </attribute>
554
- </optional>
555
- <optional>
556
- <attribute name="subsequence"/>
557
- </optional>
558
- <optional>
559
- <ref name="tname"/>
560
- </optional>
561
- <oneOrMore>
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>
562
921
  <choice>
563
- <ref name="formula"/>
564
- <ref name="ul"/>
565
- <ref name="ol"/>
566
- <ref name="dl"/>
567
- <ref name="quote"/>
568
- <ref name="sourcecode"/>
569
- <ref name="paragraph-with-footnote"/>
922
+ <value>top</value>
923
+ <value>middle</value>
924
+ <value>bottom</value>
925
+ <value>baseline</value>
570
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>
571
942
  </oneOrMore>
943
+ </choice>
944
+ </define>
945
+ <define name="TdNoIdBody">
946
+ <choice>
572
947
  <zeroOrMore>
573
- <ref name="note"/>
948
+ <group>
949
+ <a:documentation>Table cell is a block</a:documentation>
950
+ <ref name="TextElement"/>
951
+ </group>
574
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"/>
575
972
  </element>
576
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>
577
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>
578
1052
  <element name="admonition">
579
- <attribute name="type">
580
- <ref name="AdmonitionType"/>
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>
581
1077
  </attribute>
582
- <optional>
583
- <attribute name="class"/>
584
- </optional>
585
- <attribute name="id">
586
- <data type="ID"/>
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"/>
587
1083
  </attribute>
588
- <optional>
589
- <attribute name="uri">
590
- <data type="anyURI"/>
591
- </attribute>
592
- </optional>
593
- <optional>
594
- <ref name="tname"/>
595
- </optional>
596
- <zeroOrMore>
597
- <ref name="paragraph-with-footnote"/>
598
- </zeroOrMore>
599
- <zeroOrMore>
600
- <ref name="note"/>
601
- </zeroOrMore>
602
- </element>
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>
603
1119
  </define>
604
1120
  <define name="AdmonitionType">
1121
+ <a:documentation>Subclass of admonition determining how it is to be rendered</a:documentation>
605
1122
  <choice>
606
1123
  <value>warning</value>
1124
+ <a:documentation>Warning to reader, note of risk to be avoided</a:documentation>
607
1125
  <value>note</value>
1126
+ <a:documentation>Supplementary, explanatory information</a:documentation>
608
1127
  <value>tip</value>
1128
+ <a:documentation>Instructive information to assist in the fulfilment of tasks related to content</a:documentation>
609
1129
  <value>important</value>
1130
+ <a:documentation>Note to reader of something crucial to be borne in mind</a:documentation>
610
1131
  <value>caution</value>
1132
+ <a:documentation>Caution to reader, note of potential surprise or difficulty</a:documentation>
611
1133
  </choice>
612
1134
  </define>
613
1135
  <define name="figure">
1136
+ <a:documentation>Block containing a figure: a visual rather than textual asset, possibly with accompanying text</a:documentation>
614
1137
  <element name="figure">
615
- <attribute name="id">
616
- <data type="ID"/>
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>
617
1157
  </attribute>
618
- <optional>
619
- <attribute name="unnumbered">
620
- <data type="boolean"/>
621
- </attribute>
622
- </optional>
623
- <optional>
624
- <attribute name="subsequence"/>
625
- </optional>
626
- <optional>
627
- <attribute name="class"/>
628
- </optional>
629
- <optional>
630
- <ref name="source"/>
631
- </optional>
632
- <optional>
633
- <ref name="tname"/>
634
- </optional>
635
- <choice>
636
- <ref name="image"/>
637
- <ref name="video"/>
638
- <ref name="audio"/>
639
- <ref name="pre"/>
640
- <oneOrMore>
641
- <ref name="paragraph-with-footnote"/>
642
- </oneOrMore>
643
- <zeroOrMore>
644
- <ref name="figure"/>
645
- </zeroOrMore>
646
- </choice>
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>
647
1175
  <zeroOrMore>
648
- <ref name="fn"/>
1176
+ <ref name="figure"/>
649
1177
  </zeroOrMore>
650
- <optional>
651
- <ref name="dl"/>
652
- </optional>
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>
653
1220
  <zeroOrMore>
654
- <ref name="note"/>
1221
+ <ref name="figure-no-id"/>
655
1222
  </zeroOrMore>
656
- </element>
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>
657
1239
  </define>
658
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>
659
1243
  <choice>
660
1244
  <text/>
661
1245
  <ref name="em"/>
@@ -682,69 +1266,91 @@
682
1266
  </choice>
683
1267
  </define>
684
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>
685
1272
  <choice>
686
1273
  <text/>
687
- <ref name="em"/>
688
- <ref name="strong"/>
1274
+ <ref name="pure_em"/>
1275
+ <ref name="pure_strong"/>
689
1276
  <ref name="sub"/>
690
1277
  <ref name="sup"/>
691
- <ref name="tt"/>
692
- <ref name="underline"/>
693
- <ref name="strike"/>
694
- <ref name="smallcap"/>
1278
+ <ref name="pure_tt"/>
1279
+ <ref name="pure_underline"/>
1280
+ <ref name="pure_strike"/>
1281
+ <ref name="pure_smallcap"/>
695
1282
  <ref name="br"/>
696
1283
  </choice>
697
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>
698
1299
  <define name="source">
699
1300
  <element name="source">
700
1301
  <ref name="TypedUri"/>
701
1302
  </element>
702
1303
  </define>
703
1304
  <define name="em">
1305
+ <a:documentation>Emphasised text. Corresponds to HTML `em`, `i`</a:documentation>
704
1306
  <element name="em">
705
1307
  <zeroOrMore>
706
- <choice>
707
- <ref name="PureTextElement"/>
708
- <ref name="stem"/>
709
- <ref name="eref"/>
710
- <ref name="xref"/>
711
- <ref name="hyperlink"/>
712
- <ref name="index"/>
713
- <ref name="index-xref"/>
714
- </choice>
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"/>
715
1317
  </zeroOrMore>
716
1318
  </element>
717
1319
  </define>
718
1320
  <define name="strong">
1321
+ <a:documentation>Strong text. Corresponds to HTML `strong`, `b`</a:documentation>
719
1322
  <element name="strong">
720
1323
  <zeroOrMore>
721
- <choice>
722
- <ref name="PureTextElement"/>
723
- <ref name="stem"/>
724
- <ref name="eref"/>
725
- <ref name="xref"/>
726
- <ref name="hyperlink"/>
727
- <ref name="index"/>
728
- <ref name="index-xref"/>
729
- </choice>
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"/>
730
1333
  </zeroOrMore>
731
1334
  </element>
732
1335
  </define>
733
1336
  <define name="tt">
1337
+ <a:documentation>Monospace text. Corresponds to HTML `tt`, `code`</a:documentation>
734
1338
  <element name="tt">
735
1339
  <zeroOrMore>
736
- <choice>
737
- <ref name="PureTextElement"/>
738
- <ref name="eref"/>
739
- <ref name="xref"/>
740
- <ref name="hyperlink"/>
741
- <ref name="index"/>
742
- <ref name="index-xref"/>
743
- </choice>
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"/>
744
1349
  </zeroOrMore>
745
1350
  </element>
746
1351
  </define>
747
1352
  <define name="keyword">
1353
+ <a:documentation>Keyword text</a:documentation>
748
1354
  <element name="keyword">
749
1355
  <zeroOrMore>
750
1356
  <choice>
@@ -756,6 +1362,7 @@
756
1362
  </element>
757
1363
  </define>
758
1364
  <define name="sub">
1365
+ <a:documentation>Subscript text. Corresponds to HTML `sub`</a:documentation>
759
1366
  <element name="sub">
760
1367
  <zeroOrMore>
761
1368
  <ref name="PureTextElement"/>
@@ -763,6 +1370,7 @@
763
1370
  </element>
764
1371
  </define>
765
1372
  <define name="sup">
1373
+ <a:documentation>Superscript text. Corresponds to HTML `sup`</a:documentation>
766
1374
  <element name="sup">
767
1375
  <zeroOrMore>
768
1376
  <ref name="PureTextElement"/>
@@ -770,17 +1378,36 @@
770
1378
  </element>
771
1379
  </define>
772
1380
  <define name="strike">
1381
+ <a:documentation>Strikethrough text. Corresponds to HTML 4 `s`</a:documentation>
773
1382
  <element name="strike">
774
1383
  <zeroOrMore>
775
- <choice>
776
- <ref name="PureTextElement"/>
777
- <ref name="index"/>
778
- <ref name="index-xref"/>
779
- </choice>
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"/>
780
1393
  </zeroOrMore>
781
1394
  </element>
782
1395
  </define>
783
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>
784
1411
  <element name="underline">
785
1412
  <optional>
786
1413
  <attribute name="style"/>
@@ -791,6 +1418,15 @@
791
1418
  </element>
792
1419
  </define>
793
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>
794
1430
  <element name="smallcap">
795
1431
  <zeroOrMore>
796
1432
  <ref name="PureTextElement"/>
@@ -798,252 +1434,327 @@
798
1434
  </element>
799
1435
  </define>
800
1436
  <define name="ruby">
1437
+ <a:documentation>Text with Ruby annotations in East Asian languages. Corresponds to HTML `ruby`</a:documentation>
801
1438
  <element name="ruby">
802
1439
  <choice>
803
- <ref name="ruby_pronunciation"/>
804
- <ref name="ruby_annotation"/>
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>
805
1446
  </choice>
806
1447
  <choice>
807
- <text/>
808
- <ref name="ruby"/>
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>
809
1454
  </choice>
810
1455
  </element>
811
1456
  </define>
812
1457
  <define name="ruby_pronunciation">
1458
+ <a:documentation>Ruby annotation giving pronunciation of text</a:documentation>
813
1459
  <element name="pronunciation">
814
- <attribute name="value"/>
815
- <optional>
816
- <attribute name="script"/>
817
- </optional>
818
- <optional>
819
- <attribute name="lang"/>
820
- </optional>
1460
+ <attribute name="value">
1461
+ <a:documentation>Ruby annotation value</a:documentation>
1462
+ </attribute>
1463
+ <ref name="LocalizedStringAttributes"/>
821
1464
  </element>
822
1465
  </define>
823
1466
  <define name="ruby_annotation">
1467
+ <a:documentation>Ruby annotation giving information other than pronunciation of text</a:documentation>
824
1468
  <element name="annotation">
825
- <attribute name="value"/>
826
- <optional>
827
- <attribute name="script"/>
828
- </optional>
829
- <optional>
830
- <attribute name="lang"/>
831
- </optional>
1469
+ <attribute name="value">
1470
+ <a:documentation>Ruby annotation value</a:documentation>
1471
+ </attribute>
1472
+ <ref name="LocalizedStringAttributes"/>
832
1473
  </element>
833
1474
  </define>
834
1475
  <define name="br">
1476
+ <a:documentation>Line break</a:documentation>
835
1477
  <element name="br">
836
1478
  <empty/>
837
1479
  </element>
838
1480
  </define>
839
1481
  <define name="hr">
1482
+ <a:documentation>Horizontal rule</a:documentation>
840
1483
  <element name="hr">
841
1484
  <empty/>
842
1485
  </element>
843
1486
  </define>
844
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>
845
1489
  <element name="pagebreak">
846
1490
  <empty/>
847
1491
  </element>
848
1492
  </define>
849
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>
850
1495
  <element name="index">
851
1496
  <optional>
852
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>
853
1500
  <data type="IDREF"/>
854
1501
  </attribute>
855
1502
  </optional>
856
- <element name="primary">
857
- <oneOrMore>
858
- <ref name="PureTextElement"/>
859
- </oneOrMore>
860
- </element>
861
- <optional>
862
- <element name="secondary">
863
- <oneOrMore>
864
- <ref name="PureTextElement"/>
865
- </oneOrMore>
866
- </element>
867
- </optional>
868
- <optional>
869
- <element name="tertiary">
870
- <oneOrMore>
871
- <ref name="PureTextElement"/>
872
- </oneOrMore>
873
- </element>
874
- </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>
875
1512
  </element>
876
1513
  </define>
877
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>
878
1518
  <element name="index-xref">
879
1519
  <attribute name="also">
1520
+ <a:documentation>The cross-reference is to be treated as "see also" rather than as "see"</a:documentation>
880
1521
  <data type="boolean"/>
881
1522
  </attribute>
882
- <element name="primary">
883
- <oneOrMore>
884
- <ref name="PureTextElement"/>
885
- </oneOrMore>
886
- </element>
887
- <optional>
888
- <element name="secondary">
889
- <oneOrMore>
890
- <ref name="PureTextElement"/>
891
- </oneOrMore>
892
- </element>
893
- </optional>
894
- <optional>
895
- <element name="tertiary">
896
- <oneOrMore>
897
- <ref name="PureTextElement"/>
898
- </oneOrMore>
899
- </element>
900
- </optional>
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>
901
1532
  <element name="target">
1533
+ <a:documentation>The index term to be cross-referenced to</a:documentation>
902
1534
  <oneOrMore>
903
1535
  <ref name="PureTextElement"/>
904
1536
  </oneOrMore>
905
1537
  </element>
906
1538
  </element>
907
1539
  </define>
908
- <!-- bare ID element, used for referencing arbitrary spans of text -->
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>
909
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>
910
1565
  <element name="bookmark">
911
- <attribute name="id">
912
- <data type="ID"/>
913
- </attribute>
1566
+ <ref name="RequiredId"/>
914
1567
  <empty/>
915
1568
  </element>
916
1569
  </define>
917
1570
  <define name="ReferenceFormat">
1571
+ <a:documentation>The type of Reference Element, prescribing how it is to be rendered</a:documentation>
918
1572
  <choice>
919
1573
  <value>external</value>
1574
+ <a:documentation>Reference to an external document</a:documentation>
920
1575
  <value>inline</value>
1576
+ <a:documentation>Reference to another element in the same document</a:documentation>
921
1577
  <value>footnote</value>
1578
+ <a:documentation>Inline reference to a block to be rendered as a footnote</a:documentation>
922
1579
  <value>callout</value>
1580
+ <a:documentation>Inline reference to a block to be referenced as a sourcecode callout</a:documentation>
923
1581
  </choice>
924
1582
  </define>
925
1583
  <define name="eref">
1584
+ <a:documentation>An external reference to a bibliographic entity</a:documentation>
926
1585
  <element name="eref">
927
1586
  <ref name="erefType"/>
928
1587
  </element>
929
1588
  </define>
930
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">
931
1599
  <optional>
932
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>
933
1602
  <data type="boolean"/>
934
1603
  </attribute>
935
1604
  </optional>
936
- <attribute name="citeas"/>
937
- <attribute name="type">
938
- <ref name="ReferenceFormat"/>
1605
+ <attribute name="citeas">
1606
+ <a:documentation>Form that the bibliographic citation should take when it is rendered</a:documentation>
939
1607
  </attribute>
940
1608
  <optional>
941
- <attribute name="alt"/>
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>
942
1618
  </optional>
943
- <ref name="CitationType"/>
944
- <oneOrMore>
945
- <ref name="PureTextElement"/>
946
- </oneOrMore>
947
1619
  </define>
948
1620
  <define name="hyperlink">
1621
+ <a:documentation>A reference to an external document or resource</a:documentation>
949
1622
  <element name="link">
950
- <attribute name="target">
951
- <data type="anyURI"/>
952
- </attribute>
953
- <attribute name="type">
954
- <ref name="ReferenceFormat"/>
955
- </attribute>
956
- <optional>
957
- <attribute name="alt"/>
958
- </optional>
1623
+ <ref name="HyperlinkAttributes"/>
959
1624
  <oneOrMore>
960
- <ref name="PureTextElement"/>
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>
961
1628
  </oneOrMore>
962
1629
  </element>
963
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>
964
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>
965
1650
  <element name="xref">
966
- <attribute name="target">
967
- <data type="IDREF"/>
968
- </attribute>
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>
969
1661
  <attribute name="type">
1662
+ <a:documentation>The type of Reference Element, prescribing how it is to be rendered</a:documentation>
970
1663
  <ref name="ReferenceFormat"/>
971
1664
  </attribute>
972
- <optional>
973
- <attribute name="alt"/>
974
- </optional>
975
- <oneOrMore>
976
- <ref name="PureTextElement"/>
977
- </oneOrMore>
978
- </element>
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>
979
1692
  </define>
980
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>
981
1696
  <element name="fn">
982
- <attribute name="reference"/>
1697
+ <attribute name="reference">
1698
+ <a:documentation>The number of the footnote, used to identify it visually</a:documentation>
1699
+ </attribute>
983
1700
  <oneOrMore>
984
- <ref name="paragraph"/>
1701
+ <ref name="paragraph">
1702
+ <a:documentation>The content of the footnote</a:documentation>
1703
+ </ref>
985
1704
  </oneOrMore>
986
1705
  </element>
987
1706
  </define>
988
- <!--
989
- This is xref with fixed @type="footnote", and @target built in as paragraph+
990
- @reference replaces ReferenceElement/text
991
- so <fn reference="2"><p>This is a footnote</p></fn>
992
- corresponds to
993
- <eref type="footnote" target="fn2">2</xref> <p id="fn2">This is a footnote</p>
994
- -->
995
1707
  <define name="callout">
1708
+ <a:documentation>Inline reference to a paragraph or paragraphs, appearing as annotation of source code</a:documentation>
996
1709
  <element name="callout">
997
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>
998
1713
  <data type="IDREF"/>
999
1714
  </attribute>
1000
- <text/>
1715
+ <text>
1716
+ <a:documentation>The label of the callout, used to identify its target within the source code</a:documentation>
1717
+ </text>
1001
1718
  </element>
1002
1719
  </define>
1003
- <!--
1004
- This is xref with fixed @type="callout"; the target by convention is in an annotation in the same source code snippet
1005
- so <callout target="xyz">1</callout>
1006
- corresponds to <xref type="callout" target="xyz">1</xref>
1007
- -->
1008
1720
  <define name="image">
1721
+ <a:documentation>Container for image content</a:documentation>
1009
1722
  <element name="image">
1010
- <ref name="Image"/>
1723
+ <ref name="RequiredId"/>
1724
+ <ref name="ImageAttributes"/>
1011
1725
  </element>
1012
1726
  </define>
1013
- <define name="Image">
1014
- <attribute name="id">
1015
- <data type="ID"/>
1016
- </attribute>
1017
- <attribute name="src">
1018
- <data type="anyURI"/>
1019
- </attribute>
1020
- <attribute name="mimetype"/>
1021
- <optional>
1022
- <attribute name="filename"/>
1023
- </optional>
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"/>
1024
1737
  <optional>
1025
1738
  <attribute name="width">
1739
+ <a:documentation>Height of image</a:documentation>
1026
1740
  <ref name="ImageSize"/>
1027
1741
  </attribute>
1028
1742
  </optional>
1029
1743
  <optional>
1030
1744
  <attribute name="height">
1745
+ <a:documentation>Width of image</a:documentation>
1031
1746
  <ref name="ImageSize"/>
1032
1747
  </attribute>
1033
1748
  </optional>
1034
- <optional>
1035
- <attribute name="alt"/>
1036
- </optional>
1037
- <optional>
1038
- <attribute name="title"/>
1039
- </optional>
1040
- <optional>
1041
- <attribute name="longdesc">
1042
- <data type="anyURI"/>
1043
- </attribute>
1044
- </optional>
1749
+ </define>
1750
+ <define name="MIMEType">
1751
+ <a:documentation>MIME encoding of media type</a:documentation>
1752
+ <text/>
1045
1753
  </define>
1046
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>
1047
1758
  <choice>
1048
1759
  <data type="string">
1049
1760
  <param name="pattern">\d+([.]\d+)?(%?)</param>
@@ -1052,177 +1763,328 @@
1052
1763
  </choice>
1053
1764
  </define>
1054
1765
  <define name="video">
1766
+ <a:documentation>Container for video content</a:documentation>
1055
1767
  <element name="video">
1056
- <attribute name="id">
1057
- <data type="ID"/>
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"/>
1058
1788
  </attribute>
1059
- <attribute name="src">
1060
- <data type="anyURI"/>
1789
+ </optional>
1790
+ <optional>
1791
+ <attribute name="height">
1792
+ <a:documentation>Height of video</a:documentation>
1793
+ <ref name="ImageSize"/>
1061
1794
  </attribute>
1062
- <attribute name="mimetype"/>
1063
- <optional>
1064
- <attribute name="filename"/>
1065
- </optional>
1066
- <optional>
1067
- <attribute name="width">
1068
- <choice>
1069
- <data type="int"/>
1070
- <value>auto</value>
1071
- </choice>
1072
- </attribute>
1073
- </optional>
1074
- <optional>
1075
- <attribute name="height">
1076
- <choice>
1077
- <data type="int"/>
1078
- <value>auto</value>
1079
- </choice>
1080
- </attribute>
1081
- </optional>
1082
- <optional>
1083
- <attribute name="alt"/>
1084
- </optional>
1085
- <optional>
1086
- <attribute name="title"/>
1087
- </optional>
1088
- <optional>
1089
- <attribute name="longdesc">
1090
- <data type="anyURI"/>
1091
- </attribute>
1092
- </optional>
1093
- <zeroOrMore>
1094
- <ref name="altsource"/>
1095
- </zeroOrMore>
1096
- </element>
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>
1097
1803
  </define>
1098
1804
  <define name="audio">
1805
+ <a:documentation>Container for audio content</a:documentation>
1099
1806
  <element name="audio">
1100
- <attribute name="id">
1101
- <data type="ID"/>
1102
- </attribute>
1103
- <attribute name="src">
1104
- <data type="anyURI"/>
1105
- </attribute>
1106
- <attribute name="mimetype"/>
1107
- <optional>
1108
- <attribute name="filename"/>
1109
- </optional>
1110
- <optional>
1111
- <attribute name="alt"/>
1112
- </optional>
1113
- <optional>
1114
- <attribute name="title"/>
1115
- </optional>
1116
- <optional>
1117
- <attribute name="longdesc">
1118
- <data type="anyURI"/>
1119
- </attribute>
1120
- </optional>
1121
- <zeroOrMore>
1122
- <ref name="altsource"/>
1123
- </zeroOrMore>
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"/>
1124
1818
  </element>
1125
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>
1126
1831
  <define name="altsource">
1832
+ <a:documentation>Alternative file to use as media</a:documentation>
1127
1833
  <element name="altsource">
1128
- <attribute name="src">
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>
1129
1867
  <data type="anyURI"/>
1130
1868
  </attribute>
1131
- <attribute name="mimetype"/>
1132
- <optional>
1133
- <attribute name="filename"/>
1134
- </optional>
1135
- </element>
1869
+ </optional>
1136
1870
  </define>
1137
1871
  <define name="stem">
1872
+ <a:documentation>Mathematically formatted text</a:documentation>
1138
1873
  <element name="stem">
1139
- <attribute name="type">
1140
- <choice>
1141
- <value>MathML</value>
1142
- <value>AsciiMath</value>
1143
- </choice>
1144
- </attribute>
1874
+ <ref name="StemAttributes"/>
1145
1875
  <oneOrMore>
1146
1876
  <choice>
1877
+ <a:documentation>The content of the mathematically formatted text</a:documentation>
1147
1878
  <text/>
1148
1879
  <ref name="AnyElement"/>
1149
1880
  </choice>
1150
1881
  </oneOrMore>
1151
1882
  </element>
1152
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>
1153
1894
  <define name="annotation">
1154
1895
  <element name="annotation">
1155
- <attribute name="id">
1156
- <data type="ID"/>
1157
- </attribute>
1158
- <ref name="paragraph"/>
1896
+ <ref name="RequiredId"/>
1897
+ <oneOrMore>
1898
+ <ref name="paragraph"/>
1899
+ </oneOrMore>
1159
1900
  </element>
1160
1901
  </define>
1161
1902
  <define name="ul">
1903
+ <a:documentation>Unordered list block</a:documentation>
1162
1904
  <element name="ul">
1163
- <attribute name="id">
1164
- <data type="ID"/>
1165
- </attribute>
1166
- <oneOrMore>
1167
- <ref name="li"/>
1168
- </oneOrMore>
1169
- <zeroOrMore>
1170
- <ref name="note"/>
1171
- </zeroOrMore>
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"/>
1172
1916
  </element>
1173
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>
1174
1945
  <define name="li">
1946
+ <a:documentation>Item in a list block</a:documentation>
1175
1947
  <element name="li">
1176
- <optional>
1177
- <attribute name="id">
1178
- <data type="ID"/>
1179
- </attribute>
1180
- </optional>
1181
- <oneOrMore>
1182
- <ref name="paragraph-with-footnote"/>
1183
- </oneOrMore>
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"/>
1184
1959
  </element>
1185
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>
1186
1974
  <define name="ol">
1975
+ <a:documentation>Ordered list, with numbering applied to the list items</a:documentation>
1187
1976
  <element name="ol">
1188
- <attribute name="id">
1189
- <data type="ID"/>
1190
- </attribute>
1191
- <attribute name="type">
1192
- <choice>
1193
- <value>roman</value>
1194
- <value>alphabet</value>
1195
- <value>arabic</value>
1196
- <value>roman_upper</value>
1197
- <value>alphabet_upper</value>
1198
- </choice>
1199
- </attribute>
1200
- <optional>
1201
- <attribute name="start"/>
1202
- </optional>
1203
- <oneOrMore>
1204
- <ref name="li"/>
1205
- </oneOrMore>
1206
- <zeroOrMore>
1207
- <ref name="note"/>
1208
- </zeroOrMore>
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"/>
1209
1988
  </element>
1210
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>
1211
2032
  <define name="dl">
2033
+ <a:documentation>Definition list, composed of definitions rather than list items</a:documentation>
1212
2034
  <element name="dl">
1213
- <attribute name="id">
1214
- <data type="ID"/>
1215
- </attribute>
1216
- <oneOrMore>
1217
- <ref name="dt"/>
1218
- <ref name="dd"/>
1219
- </oneOrMore>
1220
- <zeroOrMore>
1221
- <ref name="note"/>
1222
- </zeroOrMore>
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"/>
1223
2045
  </element>
1224
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>
1225
2086
  <define name="dt">
2087
+ <a:documentation>Entry in a definition list</a:documentation>
1226
2088
  <element name="dt">
1227
2089
  <zeroOrMore>
1228
2090
  <ref name="TextElement"/>
@@ -1230,10 +2092,19 @@
1230
2092
  </element>
1231
2093
  </define>
1232
2094
  <define name="dd">
2095
+ <a:documentation>Definition in a definition list</a:documentation>
1233
2096
  <element name="dd">
1234
2097
  <zeroOrMore>
1235
2098
  <ref name="paragraph-with-footnote"/>
1236
2099
  </zeroOrMore>
1237
2100
  </element>
1238
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>
1239
2110
  </grammar>