metanorma-standoc 3.4.8 → 3.4.9
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +9 -0
- data/Gemfile +6 -1
- data/lib/isodoc/html/htmlstyle.css +5 -0
- data/lib/metanorma/cleanup/bibdata.rb +11 -3
- data/lib/metanorma/cleanup/cleanup.rb +1 -1
- data/lib/metanorma/cleanup/ref.rb +71 -0
- data/lib/metanorma/cleanup/term_lookup.rb +1 -0
- data/lib/metanorma/converter/converter.rb +2 -1
- data/lib/metanorma/converter/init.rb +29 -4
- data/lib/metanorma/converter/lists.rb +1 -0
- data/lib/metanorma/converter/macros.rb +13 -6
- data/lib/metanorma/standoc/version.rb +1 -1
- data/lib/metanorma/validate/basicdoc.rng +1 -1
- data/lib/metanorma/validate/{mathml3-content.rng → mathml4-content.rng} +104 -80
- data/lib/metanorma/validate/mathml4-core.rng +1041 -0
- data/lib/metanorma/validate/{mathml3-presentation.rng → mathml4-presentation.rng} +184 -1060
- data/lib/metanorma/validate/{mathml3-strict-content.rng → mathml4-strict-content.rng} +92 -8
- data/lib/metanorma/validate/mathml4.rng +30 -0
- data/lib/metanorma/validate/metanorma-mathml.rng +22 -8
- data/lib/metanorma/validate/validate.rb +1 -1
- data/metanorma-standoc.gemspec +1 -1
- metadata +8 -9
- data/.hound.yml +0 -5
- data/lib/metanorma/validate/mathml3-common.rng +0 -257
- data/lib/metanorma/validate/mathml3.rng +0 -23
|
@@ -0,0 +1,1041 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<!--
|
|
3
|
+
MathML 4 (Core Level 1)
|
|
4
|
+
#######################
|
|
5
|
+
-->
|
|
6
|
+
<!--
|
|
7
|
+
Copyright 1998-2026 W3C (MIT, ERCIM, Keio, Beihang)
|
|
8
|
+
|
|
9
|
+
Use and distribution of this code are permitted under the terms
|
|
10
|
+
W3C Software Notice and License
|
|
11
|
+
http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
|
|
12
|
+
-->
|
|
13
|
+
<grammar ns="http://www.w3.org/1998/Math/MathML" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
|
14
|
+
<start combine="choice">
|
|
15
|
+
<ref name="math"/>
|
|
16
|
+
</start>
|
|
17
|
+
<define name="math">
|
|
18
|
+
<element name="math">
|
|
19
|
+
<ref name="math.attributes"/>
|
|
20
|
+
<ref name="ImpliedMrow"/>
|
|
21
|
+
</element>
|
|
22
|
+
</define>
|
|
23
|
+
<define name="MathMLoneventAttributes">
|
|
24
|
+
<optional>
|
|
25
|
+
<attribute name="onabort"/>
|
|
26
|
+
</optional>
|
|
27
|
+
<optional>
|
|
28
|
+
<attribute name="onauxclick"/>
|
|
29
|
+
</optional>
|
|
30
|
+
<optional>
|
|
31
|
+
<attribute name="onblur"/>
|
|
32
|
+
</optional>
|
|
33
|
+
<optional>
|
|
34
|
+
<attribute name="oncancel"/>
|
|
35
|
+
</optional>
|
|
36
|
+
<optional>
|
|
37
|
+
<attribute name="oncanplay"/>
|
|
38
|
+
</optional>
|
|
39
|
+
<optional>
|
|
40
|
+
<attribute name="oncanplaythrough"/>
|
|
41
|
+
</optional>
|
|
42
|
+
<optional>
|
|
43
|
+
<attribute name="onchange"/>
|
|
44
|
+
</optional>
|
|
45
|
+
<optional>
|
|
46
|
+
<attribute name="onclick"/>
|
|
47
|
+
</optional>
|
|
48
|
+
<optional>
|
|
49
|
+
<attribute name="onclose"/>
|
|
50
|
+
</optional>
|
|
51
|
+
<optional>
|
|
52
|
+
<attribute name="oncontextlost"/>
|
|
53
|
+
</optional>
|
|
54
|
+
<optional>
|
|
55
|
+
<attribute name="oncontextmenu"/>
|
|
56
|
+
</optional>
|
|
57
|
+
<optional>
|
|
58
|
+
<attribute name="oncontextrestored"/>
|
|
59
|
+
</optional>
|
|
60
|
+
<optional>
|
|
61
|
+
<attribute name="oncuechange"/>
|
|
62
|
+
</optional>
|
|
63
|
+
<optional>
|
|
64
|
+
<attribute name="ondblclick"/>
|
|
65
|
+
</optional>
|
|
66
|
+
<optional>
|
|
67
|
+
<attribute name="ondrag"/>
|
|
68
|
+
</optional>
|
|
69
|
+
<optional>
|
|
70
|
+
<attribute name="ondragend"/>
|
|
71
|
+
</optional>
|
|
72
|
+
<optional>
|
|
73
|
+
<attribute name="ondragenter"/>
|
|
74
|
+
</optional>
|
|
75
|
+
<optional>
|
|
76
|
+
<attribute name="ondragleave"/>
|
|
77
|
+
</optional>
|
|
78
|
+
<optional>
|
|
79
|
+
<attribute name="ondragover"/>
|
|
80
|
+
</optional>
|
|
81
|
+
<optional>
|
|
82
|
+
<attribute name="ondragstart"/>
|
|
83
|
+
</optional>
|
|
84
|
+
<optional>
|
|
85
|
+
<attribute name="ondrop"/>
|
|
86
|
+
</optional>
|
|
87
|
+
<optional>
|
|
88
|
+
<attribute name="ondurationchange"/>
|
|
89
|
+
</optional>
|
|
90
|
+
<optional>
|
|
91
|
+
<attribute name="onemptied"/>
|
|
92
|
+
</optional>
|
|
93
|
+
<optional>
|
|
94
|
+
<attribute name="onended"/>
|
|
95
|
+
</optional>
|
|
96
|
+
<optional>
|
|
97
|
+
<attribute name="onerror"/>
|
|
98
|
+
</optional>
|
|
99
|
+
<optional>
|
|
100
|
+
<attribute name="onfocus"/>
|
|
101
|
+
</optional>
|
|
102
|
+
<optional>
|
|
103
|
+
<attribute name="onformdata"/>
|
|
104
|
+
</optional>
|
|
105
|
+
<optional>
|
|
106
|
+
<attribute name="oninput"/>
|
|
107
|
+
</optional>
|
|
108
|
+
<optional>
|
|
109
|
+
<attribute name="oninvalid"/>
|
|
110
|
+
</optional>
|
|
111
|
+
<optional>
|
|
112
|
+
<attribute name="onkeydown"/>
|
|
113
|
+
</optional>
|
|
114
|
+
<optional>
|
|
115
|
+
<attribute name="onkeypress"/>
|
|
116
|
+
</optional>
|
|
117
|
+
<optional>
|
|
118
|
+
<attribute name="onkeyup"/>
|
|
119
|
+
</optional>
|
|
120
|
+
<optional>
|
|
121
|
+
<attribute name="onload"/>
|
|
122
|
+
</optional>
|
|
123
|
+
<optional>
|
|
124
|
+
<attribute name="onloadeddata"/>
|
|
125
|
+
</optional>
|
|
126
|
+
<optional>
|
|
127
|
+
<attribute name="onloadedmetadata"/>
|
|
128
|
+
</optional>
|
|
129
|
+
<optional>
|
|
130
|
+
<attribute name="onloadstart"/>
|
|
131
|
+
</optional>
|
|
132
|
+
<optional>
|
|
133
|
+
<attribute name="onmousedown"/>
|
|
134
|
+
</optional>
|
|
135
|
+
<optional>
|
|
136
|
+
<attribute name="onmouseenter"/>
|
|
137
|
+
</optional>
|
|
138
|
+
<optional>
|
|
139
|
+
<attribute name="onmouseleave"/>
|
|
140
|
+
</optional>
|
|
141
|
+
<optional>
|
|
142
|
+
<attribute name="onmousemove"/>
|
|
143
|
+
</optional>
|
|
144
|
+
<optional>
|
|
145
|
+
<attribute name="onmouseout"/>
|
|
146
|
+
</optional>
|
|
147
|
+
<optional>
|
|
148
|
+
<attribute name="onmouseover"/>
|
|
149
|
+
</optional>
|
|
150
|
+
<optional>
|
|
151
|
+
<attribute name="onmouseup"/>
|
|
152
|
+
</optional>
|
|
153
|
+
<optional>
|
|
154
|
+
<attribute name="onpause"/>
|
|
155
|
+
</optional>
|
|
156
|
+
<optional>
|
|
157
|
+
<attribute name="onplay"/>
|
|
158
|
+
</optional>
|
|
159
|
+
<optional>
|
|
160
|
+
<attribute name="onplaying"/>
|
|
161
|
+
</optional>
|
|
162
|
+
<optional>
|
|
163
|
+
<attribute name="onprogress"/>
|
|
164
|
+
</optional>
|
|
165
|
+
<optional>
|
|
166
|
+
<attribute name="onratechange"/>
|
|
167
|
+
</optional>
|
|
168
|
+
<optional>
|
|
169
|
+
<attribute name="onreset"/>
|
|
170
|
+
</optional>
|
|
171
|
+
<optional>
|
|
172
|
+
<attribute name="onresize"/>
|
|
173
|
+
</optional>
|
|
174
|
+
<optional>
|
|
175
|
+
<attribute name="onscroll"/>
|
|
176
|
+
</optional>
|
|
177
|
+
<optional>
|
|
178
|
+
<attribute name="onsecuritypolicyviolation"/>
|
|
179
|
+
</optional>
|
|
180
|
+
<optional>
|
|
181
|
+
<attribute name="onseeked"/>
|
|
182
|
+
</optional>
|
|
183
|
+
<optional>
|
|
184
|
+
<attribute name="onseeking"/>
|
|
185
|
+
</optional>
|
|
186
|
+
<optional>
|
|
187
|
+
<attribute name="onselect"/>
|
|
188
|
+
</optional>
|
|
189
|
+
<optional>
|
|
190
|
+
<attribute name="onslotchange"/>
|
|
191
|
+
</optional>
|
|
192
|
+
<optional>
|
|
193
|
+
<attribute name="onstalled"/>
|
|
194
|
+
</optional>
|
|
195
|
+
<optional>
|
|
196
|
+
<attribute name="onsubmit"/>
|
|
197
|
+
</optional>
|
|
198
|
+
<optional>
|
|
199
|
+
<attribute name="onsuspend"/>
|
|
200
|
+
</optional>
|
|
201
|
+
<optional>
|
|
202
|
+
<attribute name="ontimeupdate"/>
|
|
203
|
+
</optional>
|
|
204
|
+
<optional>
|
|
205
|
+
<attribute name="ontoggle"/>
|
|
206
|
+
</optional>
|
|
207
|
+
<optional>
|
|
208
|
+
<attribute name="onvolumechange"/>
|
|
209
|
+
</optional>
|
|
210
|
+
<optional>
|
|
211
|
+
<attribute name="onwaiting"/>
|
|
212
|
+
</optional>
|
|
213
|
+
<optional>
|
|
214
|
+
<attribute name="onwebkitanimationend"/>
|
|
215
|
+
</optional>
|
|
216
|
+
<optional>
|
|
217
|
+
<attribute name="onwebkitanimationiteration"/>
|
|
218
|
+
</optional>
|
|
219
|
+
<optional>
|
|
220
|
+
<attribute name="onwebkitanimationstart"/>
|
|
221
|
+
</optional>
|
|
222
|
+
<optional>
|
|
223
|
+
<attribute name="onwebkittransitionend"/>
|
|
224
|
+
</optional>
|
|
225
|
+
<optional>
|
|
226
|
+
<attribute name="onwheel"/>
|
|
227
|
+
</optional>
|
|
228
|
+
<optional>
|
|
229
|
+
<attribute name="onafterprint"/>
|
|
230
|
+
</optional>
|
|
231
|
+
<optional>
|
|
232
|
+
<attribute name="onbeforeprint"/>
|
|
233
|
+
</optional>
|
|
234
|
+
<optional>
|
|
235
|
+
<attribute name="onbeforeunload"/>
|
|
236
|
+
</optional>
|
|
237
|
+
<optional>
|
|
238
|
+
<attribute name="onhashchange"/>
|
|
239
|
+
</optional>
|
|
240
|
+
<optional>
|
|
241
|
+
<attribute name="onlanguagechange"/>
|
|
242
|
+
</optional>
|
|
243
|
+
<optional>
|
|
244
|
+
<attribute name="onmessage"/>
|
|
245
|
+
</optional>
|
|
246
|
+
<optional>
|
|
247
|
+
<attribute name="onmessageerror"/>
|
|
248
|
+
</optional>
|
|
249
|
+
<optional>
|
|
250
|
+
<attribute name="onoffline"/>
|
|
251
|
+
</optional>
|
|
252
|
+
<optional>
|
|
253
|
+
<attribute name="ononline"/>
|
|
254
|
+
</optional>
|
|
255
|
+
<optional>
|
|
256
|
+
<attribute name="onpagehide"/>
|
|
257
|
+
</optional>
|
|
258
|
+
<optional>
|
|
259
|
+
<attribute name="onpageshow"/>
|
|
260
|
+
</optional>
|
|
261
|
+
<optional>
|
|
262
|
+
<attribute name="onpopstate"/>
|
|
263
|
+
</optional>
|
|
264
|
+
<optional>
|
|
265
|
+
<attribute name="onrejectionhandled"/>
|
|
266
|
+
</optional>
|
|
267
|
+
<optional>
|
|
268
|
+
<attribute name="onstorage"/>
|
|
269
|
+
</optional>
|
|
270
|
+
<optional>
|
|
271
|
+
<attribute name="onunhandledrejection"/>
|
|
272
|
+
</optional>
|
|
273
|
+
<optional>
|
|
274
|
+
<attribute name="onunload"/>
|
|
275
|
+
</optional>
|
|
276
|
+
<optional>
|
|
277
|
+
<attribute name="oncopy"/>
|
|
278
|
+
</optional>
|
|
279
|
+
<optional>
|
|
280
|
+
<attribute name="oncut"/>
|
|
281
|
+
</optional>
|
|
282
|
+
<optional>
|
|
283
|
+
<attribute name="onpaste"/>
|
|
284
|
+
</optional>
|
|
285
|
+
</define>
|
|
286
|
+
<define name="MathMLlink.attributes">
|
|
287
|
+
<optional>
|
|
288
|
+
<attribute name="attributionsrc"/>
|
|
289
|
+
</optional>
|
|
290
|
+
<optional>
|
|
291
|
+
<attribute name="download">
|
|
292
|
+
<ref name="mathml-boolean"/>
|
|
293
|
+
</attribute>
|
|
294
|
+
</optional>
|
|
295
|
+
<optional>
|
|
296
|
+
<attribute name="filename"/>
|
|
297
|
+
</optional>
|
|
298
|
+
<optional>
|
|
299
|
+
<!--
|
|
300
|
+
METANORMA MODIFICATION (basicdoc-models#39): `attribute href` removed
|
|
301
|
+
here — the full profile adds href to MathMLPGlobalAttributes
|
|
302
|
+
(mathml4-presentation.rnc), so the <a> element (mrow.attributes +
|
|
303
|
+
MathMLlink.attributes) would carry it twice, which RELAX NG's
|
|
304
|
+
duplicate-attribute restriction forbids (jing: 'duplicate attribute
|
|
305
|
+
"href"'). href remains available on <a> via the global set.
|
|
306
|
+
-->
|
|
307
|
+
<attribute name="hreflang"/>
|
|
308
|
+
</optional>
|
|
309
|
+
<optional>
|
|
310
|
+
<attribute name="referrerpolicy"/>
|
|
311
|
+
</optional>
|
|
312
|
+
<optional>
|
|
313
|
+
<attribute name="rel"/>
|
|
314
|
+
</optional>
|
|
315
|
+
<optional>
|
|
316
|
+
<attribute name="target"/>
|
|
317
|
+
</optional>
|
|
318
|
+
<optional>
|
|
319
|
+
<attribute name="type"/>
|
|
320
|
+
</optional>
|
|
321
|
+
</define>
|
|
322
|
+
<!--
|
|
323
|
+
Sample set. May need preprocessing
|
|
324
|
+
or schema extension to allow more see MathML Core (and HTML) spec
|
|
325
|
+
-->
|
|
326
|
+
<define name="MathMLDataAttributes">
|
|
327
|
+
<!--
|
|
328
|
+
METANORMA MODIFICATION (basicdoc-models#39): upstream places a literal
|
|
329
|
+
`attribute data-other {text}?` here as an admitted placeholder for
|
|
330
|
+
data-* ("Sample set. May need preprocessing"). In the full-MathML
|
|
331
|
+
profile it duplicates the NonMathMLAtt any-attribute wildcard
|
|
332
|
+
(mathml4-presentation.rnc), which RELAX NG forbids (jing: 'duplicate
|
|
333
|
+
attribute "data-other"'). The wildcard subsumes data-*; the literal is
|
|
334
|
+
dropped.
|
|
335
|
+
-->
|
|
336
|
+
<empty/>
|
|
337
|
+
</define>
|
|
338
|
+
<!-- sample set, like data- may need preprocessing to allow more -->
|
|
339
|
+
<define name="MathMLARIAattributes">
|
|
340
|
+
<optional>
|
|
341
|
+
<attribute name="aria-label"/>
|
|
342
|
+
</optional>
|
|
343
|
+
<optional>
|
|
344
|
+
<attribute name="aria-describedby"/>
|
|
345
|
+
</optional>
|
|
346
|
+
<optional>
|
|
347
|
+
<attribute name="aria-description"/>
|
|
348
|
+
</optional>
|
|
349
|
+
<optional>
|
|
350
|
+
<attribute name="aria-details"/>
|
|
351
|
+
</optional>
|
|
352
|
+
</define>
|
|
353
|
+
<define name="MathMLintentAttributes">
|
|
354
|
+
<optional>
|
|
355
|
+
<attribute name="intent"/>
|
|
356
|
+
</optional>
|
|
357
|
+
<optional>
|
|
358
|
+
<attribute name="arg">
|
|
359
|
+
<data type="NCName"/>
|
|
360
|
+
</attribute>
|
|
361
|
+
</optional>
|
|
362
|
+
</define>
|
|
363
|
+
<define name="MathMLPGlobalAttributes">
|
|
364
|
+
<optional>
|
|
365
|
+
<attribute name="id">
|
|
366
|
+
<data type="ID"/>
|
|
367
|
+
</attribute>
|
|
368
|
+
</optional>
|
|
369
|
+
<optional>
|
|
370
|
+
<attribute name="class">
|
|
371
|
+
<data type="NCName"/>
|
|
372
|
+
</attribute>
|
|
373
|
+
</optional>
|
|
374
|
+
<optional>
|
|
375
|
+
<attribute name="style">
|
|
376
|
+
<data type="string"/>
|
|
377
|
+
</attribute>
|
|
378
|
+
</optional>
|
|
379
|
+
<optional>
|
|
380
|
+
<attribute name="dir">
|
|
381
|
+
<choice>
|
|
382
|
+
<value>ltr</value>
|
|
383
|
+
<value>rtl</value>
|
|
384
|
+
</choice>
|
|
385
|
+
</attribute>
|
|
386
|
+
</optional>
|
|
387
|
+
<optional>
|
|
388
|
+
<attribute name="mathbackground">
|
|
389
|
+
<ref name="color"/>
|
|
390
|
+
</attribute>
|
|
391
|
+
</optional>
|
|
392
|
+
<optional>
|
|
393
|
+
<attribute name="mathcolor">
|
|
394
|
+
<ref name="color"/>
|
|
395
|
+
</attribute>
|
|
396
|
+
</optional>
|
|
397
|
+
<optional>
|
|
398
|
+
<attribute name="mathsize">
|
|
399
|
+
<ref name="length-percentage"/>
|
|
400
|
+
</attribute>
|
|
401
|
+
</optional>
|
|
402
|
+
<optional>
|
|
403
|
+
<attribute name="mathvariant">
|
|
404
|
+
<data type="string">
|
|
405
|
+
<param name="pattern">\s*([Nn][Oo][Rr][Mm][Aa][Ll]|[Bb][Oo][Ll][Dd]|[Ii][Tt][Aa][Ll][Ii][Cc]|[Bb][Oo][Ll][Dd]-[Ii][Tt][Aa][Ll][Ii][Cc]|[Dd][Oo][Uu][Bb][Ll][Ee]-[Ss][Tt][Rr][Uu][Cc][Kk]|[Bb][Oo][Ll][Dd]-[Ff][Rr][Aa][Kk][Tt][Uu][Rr]|[Ss][Cc][Rr][Ii][Pp][Tt]|[Bb][Oo][Ll][Dd]-[Ss][Cc][Rr][Ii][Pp][Tt]|[Ff][Rr][Aa][Kk][Tt][Uu][Rr]|[Ss][Aa][Nn][Ss]-[Ss][Ee][Rr][Ii][Ff]|[Bb][Oo][Ll][Dd]-[Ss][Aa][Nn][Ss]-[Ss][Ee][Rr][Ii][Ff]|[Ss][Aa][Nn][Ss]-[Ss][Ee][Rr][Ii][Ff]-[Ii][Tt][Aa][Ll][Ii][Cc]|[Ss][Aa][Nn][Ss]-[Ss][Ee][Rr][Ii][Ff]-[Bb][Oo][Ll][Dd]-[Ii][Tt][Aa][Ll][Ii][Cc]|[Mm][Oo][Nn][Oo][Ss][Pp][Aa][Cc][Ee]|[Ii][Nn][Ii][Tt][Ii][Aa][Ll]|[Tt][Aa][Ii][Ll][Ee][Dd]|[Ll][Oo][Oo][Pp][Ee][Dd]|[Ss][Tt][Rr][Ee][Tt][Cc][Hh][Ee][Dd])\s*</param>
|
|
406
|
+
</data>
|
|
407
|
+
</attribute>
|
|
408
|
+
</optional>
|
|
409
|
+
<optional>
|
|
410
|
+
<attribute name="displaystyle">
|
|
411
|
+
<ref name="mathml-boolean"/>
|
|
412
|
+
</attribute>
|
|
413
|
+
</optional>
|
|
414
|
+
<optional>
|
|
415
|
+
<attribute name="scriptlevel">
|
|
416
|
+
<data type="integer"/>
|
|
417
|
+
</attribute>
|
|
418
|
+
</optional>
|
|
419
|
+
<optional>
|
|
420
|
+
<attribute name="autofocus">
|
|
421
|
+
<ref name="mathml-boolean"/>
|
|
422
|
+
</attribute>
|
|
423
|
+
</optional>
|
|
424
|
+
<optional>
|
|
425
|
+
<attribute name="tabindex">
|
|
426
|
+
<data type="integer"/>
|
|
427
|
+
</attribute>
|
|
428
|
+
</optional>
|
|
429
|
+
<optional>
|
|
430
|
+
<attribute name="nonce"/>
|
|
431
|
+
</optional>
|
|
432
|
+
<ref name="MathMLoneventAttributes"/>
|
|
433
|
+
<!-- Extension attributes, no defined behavior -->
|
|
434
|
+
<ref name="MathMLDataAttributes"/>
|
|
435
|
+
<!-- No specified behavior in Core, see MathML4 -->
|
|
436
|
+
<ref name="MathMLintentAttributes"/>
|
|
437
|
+
<!-- No specified behavior in Core, see WAI-ARIA -->
|
|
438
|
+
<ref name="MathMLARIAattributes"/>
|
|
439
|
+
</define>
|
|
440
|
+
<define name="math.attributes">
|
|
441
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
442
|
+
<optional>
|
|
443
|
+
<attribute name="display">
|
|
444
|
+
<choice>
|
|
445
|
+
<value>block</value>
|
|
446
|
+
<value>inline</value>
|
|
447
|
+
</choice>
|
|
448
|
+
</attribute>
|
|
449
|
+
</optional>
|
|
450
|
+
<optional>
|
|
451
|
+
<!-- No specified behavior in Core, see MathML4 -->
|
|
452
|
+
<attribute name="alttext"/>
|
|
453
|
+
</optional>
|
|
454
|
+
</define>
|
|
455
|
+
<define name="annotation">
|
|
456
|
+
<element name="annotation">
|
|
457
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
458
|
+
<optional>
|
|
459
|
+
<ref name="encoding"/>
|
|
460
|
+
</optional>
|
|
461
|
+
<text/>
|
|
462
|
+
</element>
|
|
463
|
+
</define>
|
|
464
|
+
<define name="anyElement">
|
|
465
|
+
<element>
|
|
466
|
+
<anyName/>
|
|
467
|
+
<zeroOrMore>
|
|
468
|
+
<choice>
|
|
469
|
+
<attribute>
|
|
470
|
+
<anyName/>
|
|
471
|
+
</attribute>
|
|
472
|
+
<text/>
|
|
473
|
+
<ref name="anyElement"/>
|
|
474
|
+
</choice>
|
|
475
|
+
</zeroOrMore>
|
|
476
|
+
</element>
|
|
477
|
+
</define>
|
|
478
|
+
<define name="annotation-xml">
|
|
479
|
+
<element name="annotation-xml">
|
|
480
|
+
<ref name="annotation-xml.attributes"/>
|
|
481
|
+
<choice>
|
|
482
|
+
<zeroOrMore>
|
|
483
|
+
<ref name="MathExpression"/>
|
|
484
|
+
</zeroOrMore>
|
|
485
|
+
<zeroOrMore>
|
|
486
|
+
<ref name="anyElement"/>
|
|
487
|
+
</zeroOrMore>
|
|
488
|
+
</choice>
|
|
489
|
+
</element>
|
|
490
|
+
</define>
|
|
491
|
+
<define name="annotation-xml.attributes">
|
|
492
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
493
|
+
<optional>
|
|
494
|
+
<ref name="encoding"/>
|
|
495
|
+
</optional>
|
|
496
|
+
</define>
|
|
497
|
+
<define name="encoding">
|
|
498
|
+
<optional>
|
|
499
|
+
<attribute name="encoding">
|
|
500
|
+
<data type="string"/>
|
|
501
|
+
</attribute>
|
|
502
|
+
</optional>
|
|
503
|
+
</define>
|
|
504
|
+
<define name="semantics">
|
|
505
|
+
<element name="semantics">
|
|
506
|
+
<ref name="semantics.attributes"/>
|
|
507
|
+
<ref name="MathExpression"/>
|
|
508
|
+
<zeroOrMore>
|
|
509
|
+
<choice>
|
|
510
|
+
<ref name="annotation"/>
|
|
511
|
+
<ref name="annotation-xml"/>
|
|
512
|
+
</choice>
|
|
513
|
+
</zeroOrMore>
|
|
514
|
+
</element>
|
|
515
|
+
</define>
|
|
516
|
+
<define name="semantics.attributes">
|
|
517
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
518
|
+
</define>
|
|
519
|
+
<define name="mathml-boolean">
|
|
520
|
+
<data type="string">
|
|
521
|
+
<param name="pattern">\s*([Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee])\s*</param>
|
|
522
|
+
</data>
|
|
523
|
+
</define>
|
|
524
|
+
<define name="length-percentage">
|
|
525
|
+
<data type="string">
|
|
526
|
+
<param name="pattern">\s*((-?[0-9]*([0-9]\.?|\.[0-9])[0-9]*(r?em|ex|in|cm|mm|p[xtc]|Q|v[hw]|vmin|vmax|%))|0)\s*</param>
|
|
527
|
+
</data>
|
|
528
|
+
</define>
|
|
529
|
+
<define name="MathExpression">
|
|
530
|
+
<choice>
|
|
531
|
+
<ref name="TokenExpression"/>
|
|
532
|
+
<ref name="mrow"/>
|
|
533
|
+
<ref name="a"/>
|
|
534
|
+
<ref name="mfrac"/>
|
|
535
|
+
<ref name="msqrt"/>
|
|
536
|
+
<ref name="mroot"/>
|
|
537
|
+
<ref name="mstyle"/>
|
|
538
|
+
<ref name="merror"/>
|
|
539
|
+
<ref name="mpadded"/>
|
|
540
|
+
<ref name="mphantom"/>
|
|
541
|
+
<ref name="msub"/>
|
|
542
|
+
<ref name="msup"/>
|
|
543
|
+
<ref name="msubsup"/>
|
|
544
|
+
<ref name="munder"/>
|
|
545
|
+
<ref name="mover"/>
|
|
546
|
+
<ref name="munderover"/>
|
|
547
|
+
<ref name="mmultiscripts"/>
|
|
548
|
+
<ref name="mtable"/>
|
|
549
|
+
<ref name="maction"/>
|
|
550
|
+
<ref name="semantics"/>
|
|
551
|
+
</choice>
|
|
552
|
+
</define>
|
|
553
|
+
<define name="MathMalignExpression">
|
|
554
|
+
<ref name="MathExpression"/>
|
|
555
|
+
</define>
|
|
556
|
+
<define name="ImpliedMrow">
|
|
557
|
+
<zeroOrMore>
|
|
558
|
+
<ref name="MathMalignExpression"/>
|
|
559
|
+
</zeroOrMore>
|
|
560
|
+
</define>
|
|
561
|
+
<define name="TableRowExpression">
|
|
562
|
+
<ref name="mtr"/>
|
|
563
|
+
</define>
|
|
564
|
+
<define name="MultiScriptExpression">
|
|
565
|
+
<choice>
|
|
566
|
+
<ref name="MathExpression"/>
|
|
567
|
+
<ref name="none"/>
|
|
568
|
+
</choice>
|
|
569
|
+
<choice>
|
|
570
|
+
<ref name="MathExpression"/>
|
|
571
|
+
<ref name="none"/>
|
|
572
|
+
</choice>
|
|
573
|
+
</define>
|
|
574
|
+
<define name="color">
|
|
575
|
+
<data type="string">
|
|
576
|
+
<param name="pattern">\s*((#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?)|[a-zA-Z]+|[a-zA-Z]+\s*\([0-9, %.]+\))\s*</param>
|
|
577
|
+
</data>
|
|
578
|
+
</define>
|
|
579
|
+
<define name="TokenExpression">
|
|
580
|
+
<choice>
|
|
581
|
+
<ref name="mi"/>
|
|
582
|
+
<ref name="mn"/>
|
|
583
|
+
<ref name="mo"/>
|
|
584
|
+
<ref name="mtext"/>
|
|
585
|
+
<ref name="mspace"/>
|
|
586
|
+
<ref name="ms"/>
|
|
587
|
+
</choice>
|
|
588
|
+
</define>
|
|
589
|
+
<!--
|
|
590
|
+
METANORMA MODIFICATION (basicdoc-models#39): upstream admits embedded
|
|
591
|
+
XHTML (h:*) and svg:svg inside token elements. libxml2's RELAX NG rejects
|
|
592
|
+
the compiled grammar outright on the svg branch ("Element svg attributes
|
|
593
|
+
have a content type error", wildcard-attribute constructs), which breaks
|
|
594
|
+
every passthrough validation in metanorma-standoc; and metanorma's
|
|
595
|
+
serialiser never emits embedded HTML/SVG in math tokens (the wrapper bans
|
|
596
|
+
foreign markup generally). Both foreign branches are removed.
|
|
597
|
+
Upstream text was:
|
|
598
|
+
textorHTML = text | math | element (h:*) {attribute * {text}*,(textorHTML)*} | element svg:svg {attribute * {text}*, anyElement*}
|
|
599
|
+
-->
|
|
600
|
+
<define name="textorHTML">
|
|
601
|
+
<choice>
|
|
602
|
+
<text/>
|
|
603
|
+
<ref name="math"/>
|
|
604
|
+
</choice>
|
|
605
|
+
</define>
|
|
606
|
+
<define name="token.content">
|
|
607
|
+
<zeroOrMore>
|
|
608
|
+
<ref name="textorHTML"/>
|
|
609
|
+
</zeroOrMore>
|
|
610
|
+
</define>
|
|
611
|
+
<define name="mi">
|
|
612
|
+
<element name="mi">
|
|
613
|
+
<ref name="mi.attributes"/>
|
|
614
|
+
<ref name="token.content"/>
|
|
615
|
+
</element>
|
|
616
|
+
</define>
|
|
617
|
+
<define name="mi.attributes">
|
|
618
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
619
|
+
</define>
|
|
620
|
+
<define name="mn">
|
|
621
|
+
<element name="mn">
|
|
622
|
+
<ref name="mn.attributes"/>
|
|
623
|
+
<ref name="token.content"/>
|
|
624
|
+
</element>
|
|
625
|
+
</define>
|
|
626
|
+
<define name="mn.attributes">
|
|
627
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
628
|
+
</define>
|
|
629
|
+
<define name="mo">
|
|
630
|
+
<element name="mo">
|
|
631
|
+
<ref name="mo.attributes"/>
|
|
632
|
+
<ref name="token.content"/>
|
|
633
|
+
</element>
|
|
634
|
+
</define>
|
|
635
|
+
<define name="mo.attributes">
|
|
636
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
637
|
+
<optional>
|
|
638
|
+
<attribute name="form">
|
|
639
|
+
<choice>
|
|
640
|
+
<value>prefix</value>
|
|
641
|
+
<value>infix</value>
|
|
642
|
+
<value>postfix</value>
|
|
643
|
+
</choice>
|
|
644
|
+
</attribute>
|
|
645
|
+
</optional>
|
|
646
|
+
<optional>
|
|
647
|
+
<attribute name="lspace">
|
|
648
|
+
<ref name="length-percentage"/>
|
|
649
|
+
</attribute>
|
|
650
|
+
</optional>
|
|
651
|
+
<optional>
|
|
652
|
+
<attribute name="rspace">
|
|
653
|
+
<ref name="length-percentage"/>
|
|
654
|
+
</attribute>
|
|
655
|
+
</optional>
|
|
656
|
+
<optional>
|
|
657
|
+
<attribute name="stretchy">
|
|
658
|
+
<ref name="mathml-boolean"/>
|
|
659
|
+
</attribute>
|
|
660
|
+
</optional>
|
|
661
|
+
<optional>
|
|
662
|
+
<attribute name="symmetric">
|
|
663
|
+
<ref name="mathml-boolean"/>
|
|
664
|
+
</attribute>
|
|
665
|
+
</optional>
|
|
666
|
+
<optional>
|
|
667
|
+
<!--
|
|
668
|
+
METANORMA MODIFICATION (basicdoc-models#39): value space merged with the
|
|
669
|
+
presentation profile's `maxsize {"infinity"}` re-declaration, which RELAX
|
|
670
|
+
NG's duplicate-attribute restriction forbids as a separate attribute.
|
|
671
|
+
-->
|
|
672
|
+
<attribute name="maxsize">
|
|
673
|
+
<choice>
|
|
674
|
+
<ref name="length-percentage"/>
|
|
675
|
+
<value>infinity</value>
|
|
676
|
+
</choice>
|
|
677
|
+
</attribute>
|
|
678
|
+
</optional>
|
|
679
|
+
<optional>
|
|
680
|
+
<attribute name="minsize">
|
|
681
|
+
<ref name="length-percentage"/>
|
|
682
|
+
</attribute>
|
|
683
|
+
</optional>
|
|
684
|
+
<optional>
|
|
685
|
+
<attribute name="largeop">
|
|
686
|
+
<ref name="mathml-boolean"/>
|
|
687
|
+
</attribute>
|
|
688
|
+
</optional>
|
|
689
|
+
<optional>
|
|
690
|
+
<attribute name="movablelimits">
|
|
691
|
+
<ref name="mathml-boolean"/>
|
|
692
|
+
</attribute>
|
|
693
|
+
</optional>
|
|
694
|
+
</define>
|
|
695
|
+
<define name="mtext">
|
|
696
|
+
<element name="mtext">
|
|
697
|
+
<ref name="mtext.attributes"/>
|
|
698
|
+
<ref name="token.content"/>
|
|
699
|
+
</element>
|
|
700
|
+
</define>
|
|
701
|
+
<define name="mtext.attributes">
|
|
702
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
703
|
+
</define>
|
|
704
|
+
<define name="mspace">
|
|
705
|
+
<element name="mspace">
|
|
706
|
+
<ref name="mspace.attributes"/>
|
|
707
|
+
<empty/>
|
|
708
|
+
</element>
|
|
709
|
+
</define>
|
|
710
|
+
<define name="mspace.attributes">
|
|
711
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
712
|
+
<optional>
|
|
713
|
+
<attribute name="width">
|
|
714
|
+
<ref name="length-percentage"/>
|
|
715
|
+
</attribute>
|
|
716
|
+
</optional>
|
|
717
|
+
<optional>
|
|
718
|
+
<attribute name="height">
|
|
719
|
+
<ref name="length-percentage"/>
|
|
720
|
+
</attribute>
|
|
721
|
+
</optional>
|
|
722
|
+
<optional>
|
|
723
|
+
<attribute name="depth">
|
|
724
|
+
<ref name="length-percentage"/>
|
|
725
|
+
</attribute>
|
|
726
|
+
</optional>
|
|
727
|
+
</define>
|
|
728
|
+
<define name="ms">
|
|
729
|
+
<element name="ms">
|
|
730
|
+
<ref name="ms.attributes"/>
|
|
731
|
+
<ref name="token.content"/>
|
|
732
|
+
</element>
|
|
733
|
+
</define>
|
|
734
|
+
<define name="ms.attributes">
|
|
735
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
736
|
+
</define>
|
|
737
|
+
<define name="none">
|
|
738
|
+
<element name="none">
|
|
739
|
+
<ref name="none.attributes"/>
|
|
740
|
+
<empty/>
|
|
741
|
+
</element>
|
|
742
|
+
</define>
|
|
743
|
+
<define name="none.attributes">
|
|
744
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
745
|
+
</define>
|
|
746
|
+
<define name="mprescripts">
|
|
747
|
+
<element name="mprescripts">
|
|
748
|
+
<ref name="mprescripts.attributes"/>
|
|
749
|
+
<empty/>
|
|
750
|
+
</element>
|
|
751
|
+
</define>
|
|
752
|
+
<define name="mprescripts.attributes">
|
|
753
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
754
|
+
</define>
|
|
755
|
+
<define name="mrow">
|
|
756
|
+
<element name="mrow">
|
|
757
|
+
<ref name="mrow.attributes"/>
|
|
758
|
+
<ref name="ImpliedMrow"/>
|
|
759
|
+
</element>
|
|
760
|
+
</define>
|
|
761
|
+
<define name="mrow.attributes">
|
|
762
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
763
|
+
</define>
|
|
764
|
+
<!--
|
|
765
|
+
METANORMA MODIFICATION (basicdoc-models#39): upstream composes
|
|
766
|
+
`mrow.attributes, MathMLlink.attributes` on <a>, but the full profile
|
|
767
|
+
already augments mrow.attributes with MathMLlink.attributes
|
|
768
|
+
(mathml4-presentation.rnc), so every link attribute would appear twice on
|
|
769
|
+
<a>, which RELAX NG's duplicate-attribute restriction forbids (jing:
|
|
770
|
+
'duplicate attribute "attributionsrc"').
|
|
771
|
+
Upstream text was:
|
|
772
|
+
a = element a {mrow.attributes, MathMLlink.attributes, ImpliedMrow}
|
|
773
|
+
-->
|
|
774
|
+
<define name="a">
|
|
775
|
+
<element name="a">
|
|
776
|
+
<ref name="mrow.attributes"/>
|
|
777
|
+
<ref name="ImpliedMrow"/>
|
|
778
|
+
</element>
|
|
779
|
+
</define>
|
|
780
|
+
<define name="mfrac">
|
|
781
|
+
<element name="mfrac">
|
|
782
|
+
<ref name="mfrac.attributes"/>
|
|
783
|
+
<ref name="MathExpression"/>
|
|
784
|
+
<ref name="MathExpression"/>
|
|
785
|
+
</element>
|
|
786
|
+
</define>
|
|
787
|
+
<define name="mfrac.attributes">
|
|
788
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
789
|
+
<optional>
|
|
790
|
+
<attribute name="linethickness">
|
|
791
|
+
<ref name="length-percentage"/>
|
|
792
|
+
</attribute>
|
|
793
|
+
</optional>
|
|
794
|
+
</define>
|
|
795
|
+
<define name="msqrt">
|
|
796
|
+
<element name="msqrt">
|
|
797
|
+
<ref name="msqrt.attributes"/>
|
|
798
|
+
<ref name="ImpliedMrow"/>
|
|
799
|
+
</element>
|
|
800
|
+
</define>
|
|
801
|
+
<define name="msqrt.attributes">
|
|
802
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
803
|
+
</define>
|
|
804
|
+
<define name="mroot">
|
|
805
|
+
<element name="mroot">
|
|
806
|
+
<ref name="mroot.attributes"/>
|
|
807
|
+
<ref name="MathExpression"/>
|
|
808
|
+
<ref name="MathExpression"/>
|
|
809
|
+
</element>
|
|
810
|
+
</define>
|
|
811
|
+
<define name="mroot.attributes">
|
|
812
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
813
|
+
</define>
|
|
814
|
+
<define name="mstyle">
|
|
815
|
+
<element name="mstyle">
|
|
816
|
+
<ref name="mstyle.attributes"/>
|
|
817
|
+
<ref name="ImpliedMrow"/>
|
|
818
|
+
</element>
|
|
819
|
+
</define>
|
|
820
|
+
<define name="mstyle.attributes">
|
|
821
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
822
|
+
</define>
|
|
823
|
+
<define name="merror">
|
|
824
|
+
<element name="merror">
|
|
825
|
+
<ref name="merror.attributes"/>
|
|
826
|
+
<ref name="ImpliedMrow"/>
|
|
827
|
+
</element>
|
|
828
|
+
</define>
|
|
829
|
+
<define name="merror.attributes">
|
|
830
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
831
|
+
</define>
|
|
832
|
+
<define name="mpadded">
|
|
833
|
+
<element name="mpadded">
|
|
834
|
+
<ref name="mpadded.attributes"/>
|
|
835
|
+
<ref name="ImpliedMrow"/>
|
|
836
|
+
</element>
|
|
837
|
+
</define>
|
|
838
|
+
<define name="mpadded.attributes">
|
|
839
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
840
|
+
<optional>
|
|
841
|
+
<attribute name="height">
|
|
842
|
+
<ref name="mpadded-length-percentage"/>
|
|
843
|
+
</attribute>
|
|
844
|
+
</optional>
|
|
845
|
+
<optional>
|
|
846
|
+
<attribute name="depth">
|
|
847
|
+
<ref name="mpadded-length-percentage"/>
|
|
848
|
+
</attribute>
|
|
849
|
+
</optional>
|
|
850
|
+
<optional>
|
|
851
|
+
<attribute name="width">
|
|
852
|
+
<ref name="mpadded-length-percentage"/>
|
|
853
|
+
</attribute>
|
|
854
|
+
</optional>
|
|
855
|
+
<optional>
|
|
856
|
+
<attribute name="lspace">
|
|
857
|
+
<ref name="mpadded-length-percentage"/>
|
|
858
|
+
</attribute>
|
|
859
|
+
</optional>
|
|
860
|
+
<optional>
|
|
861
|
+
<attribute name="rspace">
|
|
862
|
+
<ref name="mpadded-length-percentage"/>
|
|
863
|
+
</attribute>
|
|
864
|
+
</optional>
|
|
865
|
+
<optional>
|
|
866
|
+
<attribute name="voffset">
|
|
867
|
+
<ref name="mpadded-length-percentage"/>
|
|
868
|
+
</attribute>
|
|
869
|
+
</optional>
|
|
870
|
+
</define>
|
|
871
|
+
<define name="mpadded-length-percentage">
|
|
872
|
+
<ref name="length-percentage"/>
|
|
873
|
+
</define>
|
|
874
|
+
<define name="mphantom">
|
|
875
|
+
<element name="mphantom">
|
|
876
|
+
<ref name="mphantom.attributes"/>
|
|
877
|
+
<ref name="ImpliedMrow"/>
|
|
878
|
+
</element>
|
|
879
|
+
</define>
|
|
880
|
+
<define name="mphantom.attributes">
|
|
881
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
882
|
+
</define>
|
|
883
|
+
<define name="msub">
|
|
884
|
+
<element name="msub">
|
|
885
|
+
<ref name="msub.attributes"/>
|
|
886
|
+
<ref name="MathExpression"/>
|
|
887
|
+
<ref name="MathExpression"/>
|
|
888
|
+
</element>
|
|
889
|
+
</define>
|
|
890
|
+
<define name="msub.attributes">
|
|
891
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
892
|
+
</define>
|
|
893
|
+
<define name="msup">
|
|
894
|
+
<element name="msup">
|
|
895
|
+
<ref name="msup.attributes"/>
|
|
896
|
+
<ref name="MathExpression"/>
|
|
897
|
+
<ref name="MathExpression"/>
|
|
898
|
+
</element>
|
|
899
|
+
</define>
|
|
900
|
+
<define name="msup.attributes">
|
|
901
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
902
|
+
</define>
|
|
903
|
+
<define name="msubsup">
|
|
904
|
+
<element name="msubsup">
|
|
905
|
+
<ref name="msubsup.attributes"/>
|
|
906
|
+
<ref name="MathExpression"/>
|
|
907
|
+
<ref name="MathExpression"/>
|
|
908
|
+
<ref name="MathExpression"/>
|
|
909
|
+
</element>
|
|
910
|
+
</define>
|
|
911
|
+
<define name="msubsup.attributes">
|
|
912
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
913
|
+
</define>
|
|
914
|
+
<define name="munder">
|
|
915
|
+
<element name="munder">
|
|
916
|
+
<ref name="munder.attributes"/>
|
|
917
|
+
<ref name="MathExpression"/>
|
|
918
|
+
<ref name="MathExpression"/>
|
|
919
|
+
</element>
|
|
920
|
+
</define>
|
|
921
|
+
<define name="munder.attributes">
|
|
922
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
923
|
+
<optional>
|
|
924
|
+
<attribute name="accentunder">
|
|
925
|
+
<ref name="mathml-boolean"/>
|
|
926
|
+
</attribute>
|
|
927
|
+
</optional>
|
|
928
|
+
</define>
|
|
929
|
+
<define name="mover">
|
|
930
|
+
<element name="mover">
|
|
931
|
+
<ref name="mover.attributes"/>
|
|
932
|
+
<ref name="MathExpression"/>
|
|
933
|
+
<ref name="MathExpression"/>
|
|
934
|
+
</element>
|
|
935
|
+
</define>
|
|
936
|
+
<define name="mover.attributes">
|
|
937
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
938
|
+
<optional>
|
|
939
|
+
<attribute name="accent">
|
|
940
|
+
<ref name="mathml-boolean"/>
|
|
941
|
+
</attribute>
|
|
942
|
+
</optional>
|
|
943
|
+
</define>
|
|
944
|
+
<define name="munderover">
|
|
945
|
+
<element name="munderover">
|
|
946
|
+
<ref name="munderover.attributes"/>
|
|
947
|
+
<ref name="MathExpression"/>
|
|
948
|
+
<ref name="MathExpression"/>
|
|
949
|
+
<ref name="MathExpression"/>
|
|
950
|
+
</element>
|
|
951
|
+
</define>
|
|
952
|
+
<define name="munderover.attributes">
|
|
953
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
954
|
+
<optional>
|
|
955
|
+
<attribute name="accent">
|
|
956
|
+
<ref name="mathml-boolean"/>
|
|
957
|
+
</attribute>
|
|
958
|
+
</optional>
|
|
959
|
+
<optional>
|
|
960
|
+
<attribute name="accentunder">
|
|
961
|
+
<ref name="mathml-boolean"/>
|
|
962
|
+
</attribute>
|
|
963
|
+
</optional>
|
|
964
|
+
</define>
|
|
965
|
+
<define name="mmultiscripts">
|
|
966
|
+
<element name="mmultiscripts">
|
|
967
|
+
<ref name="mmultiscripts.attributes"/>
|
|
968
|
+
<ref name="MathExpression"/>
|
|
969
|
+
<zeroOrMore>
|
|
970
|
+
<ref name="MultiScriptExpression"/>
|
|
971
|
+
</zeroOrMore>
|
|
972
|
+
<optional>
|
|
973
|
+
<ref name="mprescripts"/>
|
|
974
|
+
<zeroOrMore>
|
|
975
|
+
<ref name="MultiScriptExpression"/>
|
|
976
|
+
</zeroOrMore>
|
|
977
|
+
</optional>
|
|
978
|
+
</element>
|
|
979
|
+
</define>
|
|
980
|
+
<define name="mmultiscripts.attributes">
|
|
981
|
+
<ref name="msubsup.attributes"/>
|
|
982
|
+
</define>
|
|
983
|
+
<define name="mtable">
|
|
984
|
+
<element name="mtable">
|
|
985
|
+
<ref name="mtable.attributes"/>
|
|
986
|
+
<zeroOrMore>
|
|
987
|
+
<ref name="TableRowExpression"/>
|
|
988
|
+
</zeroOrMore>
|
|
989
|
+
</element>
|
|
990
|
+
</define>
|
|
991
|
+
<define name="mtable.attributes">
|
|
992
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
993
|
+
</define>
|
|
994
|
+
<define name="mtr">
|
|
995
|
+
<element name="mtr">
|
|
996
|
+
<ref name="mtr.attributes"/>
|
|
997
|
+
<zeroOrMore>
|
|
998
|
+
<ref name="mtd"/>
|
|
999
|
+
</zeroOrMore>
|
|
1000
|
+
</element>
|
|
1001
|
+
</define>
|
|
1002
|
+
<define name="mtr.attributes">
|
|
1003
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
1004
|
+
</define>
|
|
1005
|
+
<define name="mtd">
|
|
1006
|
+
<element name="mtd">
|
|
1007
|
+
<ref name="mtd.attributes"/>
|
|
1008
|
+
<ref name="ImpliedMrow"/>
|
|
1009
|
+
</element>
|
|
1010
|
+
</define>
|
|
1011
|
+
<define name="mtd.attributes">
|
|
1012
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
1013
|
+
<optional>
|
|
1014
|
+
<attribute name="rowspan">
|
|
1015
|
+
<data type="positiveInteger"/>
|
|
1016
|
+
</attribute>
|
|
1017
|
+
</optional>
|
|
1018
|
+
<optional>
|
|
1019
|
+
<attribute name="columnspan">
|
|
1020
|
+
<data type="positiveInteger"/>
|
|
1021
|
+
</attribute>
|
|
1022
|
+
</optional>
|
|
1023
|
+
</define>
|
|
1024
|
+
<define name="maction">
|
|
1025
|
+
<element name="maction">
|
|
1026
|
+
<ref name="maction.attributes"/>
|
|
1027
|
+
<ref name="ImpliedMrow"/>
|
|
1028
|
+
</element>
|
|
1029
|
+
</define>
|
|
1030
|
+
<define name="maction.attributes">
|
|
1031
|
+
<ref name="MathMLPGlobalAttributes"/>
|
|
1032
|
+
<optional>
|
|
1033
|
+
<attribute name="actiontype"/>
|
|
1034
|
+
</optional>
|
|
1035
|
+
<optional>
|
|
1036
|
+
<attribute name="selection">
|
|
1037
|
+
<data type="positiveInteger"/>
|
|
1038
|
+
</attribute>
|
|
1039
|
+
</optional>
|
|
1040
|
+
</define>
|
|
1041
|
+
</grammar>
|