Update jflex to 1.8.2
[scilab.git] / scilab / modules / helptools / schema / mathml3-presentation.rng
1 <?xml version="1.0" encoding="UTF-8"?>\r
2 <!--\r
3       This is the Mathematical Markup Language (MathML) 3.0, an XML\r
4       application for describing mathematical notation and capturing\r
5       both its structure and content.\r
6   \r
7       Copyright 1998-2010 W3C (MIT, ERCIM, Keio)\r
8   \r
9       Use and distribution of this code are permitted under the terms\r
10       W3C Software Notice and License\r
11       http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231\r
12 -->\r
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">\r
14   <define name="MathExpression" combine="choice">\r
15     <ref name="PresentationExpression"/>\r
16   </define>\r
17   <define name="ImpliedMrow">\r
18     <zeroOrMore>\r
19       <ref name="MathExpression"/>\r
20     </zeroOrMore>\r
21   </define>\r
22   <define name="TableRowExpression">\r
23     <choice>\r
24       <ref name="mtr"/>\r
25       <ref name="mlabeledtr"/>\r
26     </choice>\r
27   </define>\r
28   <define name="TableCellExpression">\r
29     <ref name="mtd"/>\r
30   </define>\r
31   <define name="MstackExpression">\r
32     <choice>\r
33       <ref name="MathExpression"/>\r
34       <ref name="mscarries"/>\r
35       <ref name="msline"/>\r
36       <ref name="msrow"/>\r
37       <ref name="msgroup"/>\r
38     </choice>\r
39   </define>\r
40   <define name="MsrowExpression">\r
41     <choice>\r
42       <ref name="MathExpression"/>\r
43       <ref name="none"/>\r
44     </choice>\r
45   </define>\r
46   <define name="MultiScriptExpression">\r
47     <choice>\r
48       <ref name="MathExpression"/>\r
49       <ref name="none"/>\r
50     </choice>\r
51     <choice>\r
52       <ref name="MathExpression"/>\r
53       <ref name="none"/>\r
54     </choice>\r
55   </define>\r
56   <define name="mpadded-length">\r
57     <data type="string">\r
58       <param name="pattern">\s*([\+\-]?[0-9]*(\.[0-9]*)?\s*((%?\s*(height|depth|width)?)|e[mx]|in|cm|mm|p[xtc]|((negative)?((very){0,2}thi(n|ck)|medium)mathspace)))\s*</param>\r
59     </data>\r
60   </define>\r
61   <define name="linestyle">\r
62     <choice>\r
63       <value>none</value>\r
64       <value>solid</value>\r
65       <value>dashed</value>\r
66     </choice>\r
67   </define>\r
68   <define name="verticalalign">\r
69     <choice>\r
70       <value>top</value>\r
71       <value>bottom</value>\r
72       <value>center</value>\r
73       <value>baseline</value>\r
74       <value>axis</value>\r
75     </choice>\r
76   </define>\r
77   <define name="columnalignstyle">\r
78     <choice>\r
79       <value>left</value>\r
80       <value>center</value>\r
81       <value>right</value>\r
82     </choice>\r
83   </define>\r
84   <define name="notationstyle">\r
85     <choice>\r
86       <value>longdiv</value>\r
87       <value>actuarial</value>\r
88       <value>radical</value>\r
89       <value>box</value>\r
90       <value>roundedbox</value>\r
91       <value>circle</value>\r
92       <value>left</value>\r
93       <value>right</value>\r
94       <value>top</value>\r
95       <value>bottom</value>\r
96       <value>updiagonalstrike</value>\r
97       <value>downdiagonalstrike</value>\r
98       <value>verticalstrike</value>\r
99       <value>horizontalstrike</value>\r
100       <value>madruwb</value>\r
101     </choice>\r
102   </define>\r
103   <define name="idref">\r
104     <text/>\r
105   </define>\r
106   <define name="unsigned-integer">\r
107     <data type="unsignedLong"/>\r
108   </define>\r
109   <define name="integer">\r
110     <data type="integer"/>\r
111   </define>\r
112   <define name="number">\r
113     <data type="decimal"/>\r
114   </define>\r
115   <define name="character">\r
116     <data type="string">\r
117       <param name="pattern">\s*\S\s*</param>\r
118     </data>\r
119   </define>\r
120   <define name="color">\r
121     <data type="string">\r
122       <param name="pattern">\s*((#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?)|[aA][qQ][uU][aA]|[bB][lL][aA][cC][kK]|[bB][lL][uU][eE]|[fF][uU][cC][hH][sS][iI][aA]|[gG][rR][aA][yY]|[gG][rR][eE][eE][nN]|[lL][iI][mM][eE]|[mM][aA][rR][oO][oO][nN]|[nN][aA][vV][yY]|[oO][lL][iI][vV][eE]|[pP][uU][rR][pP][lL][eE]|[rR][eE][dD]|[sS][iI][lL][vV][eE][rR]|[tT][eE][aA][lL]|[wW][hH][iI][tT][eE]|[yY][eE][lL][lL][oO][wW])\s*</param>\r
123     </data>\r
124   </define>\r
125   <define name="group-alignment">\r
126     <choice>\r
127       <value>left</value>\r
128       <value>center</value>\r
129       <value>right</value>\r
130       <value>decimalpoint</value>\r
131     </choice>\r
132   </define>\r
133   <define name="group-alignment-list">\r
134     <list>\r
135       <oneOrMore>\r
136         <ref name="group-alignment"/>\r
137       </oneOrMore>\r
138     </list>\r
139   </define>\r
140   <define name="group-alignment-list-list">\r
141     <data type="string">\r
142       <param name="pattern">(\s*\{\s*(left|center|right|decimalpoint)(\s+(left|center|right|decimalpoint))*\})*\s*</param>\r
143     </data>\r
144   </define>\r
145   <define name="positive-integer">\r
146     <data type="positiveInteger"/>\r
147   </define>\r
148   <define name="TokenExpression">\r
149     <choice>\r
150       <ref name="mi"/>\r
151       <ref name="mn"/>\r
152       <ref name="mo"/>\r
153       <ref name="mtext"/>\r
154       <ref name="mspace"/>\r
155       <ref name="ms"/>\r
156     </choice>\r
157   </define>\r
158   <define name="token.content">\r
159     <choice>\r
160       <ref name="mglyph"/>\r
161       <ref name="malignmark"/>\r
162       <text/>\r
163     </choice>\r
164   </define>\r
165   <define name="mi">\r
166     <element name="mi">\r
167       <ref name="mi.attributes"/>\r
168       <zeroOrMore>\r
169         <ref name="token.content"/>\r
170       </zeroOrMore>\r
171     </element>\r
172   </define>\r
173   <define name="mi.attributes">\r
174     <ref name="CommonAtt"/>\r
175     <ref name="CommonPresAtt"/>\r
176     <ref name="TokenAtt"/>\r
177   </define>\r
178   <define name="mn">\r
179     <element name="mn">\r
180       <ref name="mn.attributes"/>\r
181       <zeroOrMore>\r
182         <ref name="token.content"/>\r
183       </zeroOrMore>\r
184     </element>\r
185   </define>\r
186   <define name="mn.attributes">\r
187     <ref name="CommonAtt"/>\r
188     <ref name="CommonPresAtt"/>\r
189     <ref name="TokenAtt"/>\r
190   </define>\r
191   <define name="mo">\r
192     <element name="mo">\r
193       <ref name="mo.attributes"/>\r
194       <zeroOrMore>\r
195         <ref name="token.content"/>\r
196       </zeroOrMore>\r
197     </element>\r
198   </define>\r
199   <define name="mo.attributes">\r
200     <ref name="CommonAtt"/>\r
201     <ref name="CommonPresAtt"/>\r
202     <ref name="TokenAtt"/>\r
203     <optional>\r
204       <attribute name="form">\r
205         <choice>\r
206           <value>prefix</value>\r
207           <value>infix</value>\r
208           <value>postfix</value>\r
209         </choice>\r
210       </attribute>\r
211     </optional>\r
212     <optional>\r
213       <attribute name="fence">\r
214         <choice>\r
215           <value>true</value>\r
216           <value>false</value>\r
217         </choice>\r
218       </attribute>\r
219     </optional>\r
220     <optional>\r
221       <attribute name="separator">\r
222         <choice>\r
223           <value>true</value>\r
224           <value>false</value>\r
225         </choice>\r
226       </attribute>\r
227     </optional>\r
228     <optional>\r
229       <attribute name="lspace">\r
230         <ref name="length"/>\r
231       </attribute>\r
232     </optional>\r
233     <optional>\r
234       <attribute name="rspace">\r
235         <ref name="length"/>\r
236       </attribute>\r
237     </optional>\r
238     <optional>\r
239       <attribute name="stretchy">\r
240         <choice>\r
241           <value>true</value>\r
242           <value>false</value>\r
243         </choice>\r
244       </attribute>\r
245     </optional>\r
246     <optional>\r
247       <attribute name="symmetric">\r
248         <choice>\r
249           <value>true</value>\r
250           <value>false</value>\r
251         </choice>\r
252       </attribute>\r
253     </optional>\r
254     <optional>\r
255       <attribute name="maxsize">\r
256         <choice>\r
257           <ref name="length"/>\r
258           <value>infinity</value>\r
259         </choice>\r
260       </attribute>\r
261     </optional>\r
262     <optional>\r
263       <attribute name="minsize">\r
264         <ref name="length"/>\r
265       </attribute>\r
266     </optional>\r
267     <optional>\r
268       <attribute name="largeop">\r
269         <choice>\r
270           <value>true</value>\r
271           <value>false</value>\r
272         </choice>\r
273       </attribute>\r
274     </optional>\r
275     <optional>\r
276       <attribute name="movablelimits">\r
277         <choice>\r
278           <value>true</value>\r
279           <value>false</value>\r
280         </choice>\r
281       </attribute>\r
282     </optional>\r
283     <optional>\r
284       <attribute name="accent">\r
285         <choice>\r
286           <value>true</value>\r
287           <value>false</value>\r
288         </choice>\r
289       </attribute>\r
290     </optional>\r
291     <optional>\r
292       <attribute name="linebreak">\r
293         <choice>\r
294           <value>auto</value>\r
295           <value>newline</value>\r
296           <value>nobreak</value>\r
297           <value>goodbreak</value>\r
298           <value>badbreak</value>\r
299         </choice>\r
300       </attribute>\r
301     </optional>\r
302     <optional>\r
303       <attribute name="lineleading">\r
304         <ref name="length"/>\r
305       </attribute>\r
306     </optional>\r
307     <optional>\r
308       <attribute name="linebreakstyle">\r
309         <choice>\r
310           <value>before</value>\r
311           <value>after</value>\r
312           <value>duplicate</value>\r
313           <value>infixlinebreakstyle</value>\r
314         </choice>\r
315       </attribute>\r
316     </optional>\r
317     <optional>\r
318       <attribute name="linebreakmultchar"/>\r
319     </optional>\r
320     <optional>\r
321       <attribute name="indentalign">\r
322         <choice>\r
323           <value>left</value>\r
324           <value>center</value>\r
325           <value>right</value>\r
326           <value>auto</value>\r
327           <value>id</value>\r
328         </choice>\r
329       </attribute>\r
330     </optional>\r
331     <optional>\r
332       <attribute name="indentshift">\r
333         <ref name="length"/>\r
334       </attribute>\r
335     </optional>\r
336     <optional>\r
337       <attribute name="indenttarget">\r
338         <ref name="idref"/>\r
339       </attribute>\r
340     </optional>\r
341     <optional>\r
342       <attribute name="indentalignfirst">\r
343         <choice>\r
344           <value>left</value>\r
345           <value>center</value>\r
346           <value>right</value>\r
347           <value>auto</value>\r
348           <value>id</value>\r
349           <value>indentalign</value>\r
350         </choice>\r
351       </attribute>\r
352     </optional>\r
353     <optional>\r
354       <attribute name="indentshiftfirst">\r
355         <choice>\r
356           <ref name="length"/>\r
357           <value>indentshift</value>\r
358         </choice>\r
359       </attribute>\r
360     </optional>\r
361     <optional>\r
362       <attribute name="indentalignlast">\r
363         <choice>\r
364           <value>left</value>\r
365           <value>center</value>\r
366           <value>right</value>\r
367           <value>auto</value>\r
368           <value>id</value>\r
369           <value>indentalign</value>\r
370         </choice>\r
371       </attribute>\r
372     </optional>\r
373     <optional>\r
374       <attribute name="indentshiftlast">\r
375         <choice>\r
376           <ref name="length"/>\r
377           <value>indentshift</value>\r
378         </choice>\r
379       </attribute>\r
380     </optional>\r
381   </define>\r
382   <define name="mtext">\r
383     <element name="mtext">\r
384       <ref name="mtext.attributes"/>\r
385       <zeroOrMore>\r
386         <ref name="token.content"/>\r
387       </zeroOrMore>\r
388     </element>\r
389   </define>\r
390   <define name="mtext.attributes">\r
391     <ref name="CommonAtt"/>\r
392     <ref name="CommonPresAtt"/>\r
393     <ref name="TokenAtt"/>\r
394   </define>\r
395   <define name="mspace">\r
396     <element name="mspace">\r
397       <ref name="mspace.attributes"/>\r
398       <empty/>\r
399     </element>\r
400   </define>\r
401   <define name="mspace.attributes">\r
402     <ref name="CommonAtt"/>\r
403     <ref name="CommonPresAtt"/>\r
404     <ref name="TokenAtt"/>\r
405     <optional>\r
406       <attribute name="width">\r
407         <ref name="length"/>\r
408       </attribute>\r
409     </optional>\r
410     <optional>\r
411       <attribute name="height">\r
412         <ref name="length"/>\r
413       </attribute>\r
414     </optional>\r
415     <optional>\r
416       <attribute name="depth">\r
417         <ref name="length"/>\r
418       </attribute>\r
419     </optional>\r
420     <optional>\r
421       <attribute name="linebreak">\r
422         <choice>\r
423           <value>auto</value>\r
424           <value>newline</value>\r
425           <value>nobreak</value>\r
426           <value>goodbreak</value>\r
427           <value>badbreak</value>\r
428           <value>indentingnewline</value>\r
429         </choice>\r
430       </attribute>\r
431     </optional>\r
432   </define>\r
433   <define name="ms">\r
434     <element name="ms">\r
435       <ref name="ms.attributes"/>\r
436       <zeroOrMore>\r
437         <ref name="token.content"/>\r
438       </zeroOrMore>\r
439     </element>\r
440   </define>\r
441   <define name="ms.attributes">\r
442     <ref name="CommonAtt"/>\r
443     <ref name="CommonPresAtt"/>\r
444     <ref name="TokenAtt"/>\r
445     <optional>\r
446       <attribute name="lquote"/>\r
447     </optional>\r
448     <optional>\r
449       <attribute name="rquote"/>\r
450     </optional>\r
451   </define>\r
452   <define name="mglyph">\r
453     <element name="mglyph">\r
454       <ref name="mglyph.attributes"/>\r
455       <ref name="mglyph.deprecatedattributes"/>\r
456       <empty/>\r
457     </element>\r
458   </define>\r
459   <define name="mglyph.attributes">\r
460     <ref name="CommonAtt"/>\r
461     <ref name="CommonPresAtt"/>\r
462     <optional>\r
463       <attribute name="src">\r
464         <data type="anyURI"/>\r
465       </attribute>\r
466     </optional>\r
467     <optional>\r
468       <attribute name="width">\r
469         <ref name="length"/>\r
470       </attribute>\r
471     </optional>\r
472     <optional>\r
473       <attribute name="height">\r
474         <ref name="length"/>\r
475       </attribute>\r
476     </optional>\r
477     <optional>\r
478       <attribute name="valign">\r
479         <ref name="length"/>\r
480       </attribute>\r
481     </optional>\r
482     <optional>\r
483       <attribute name="alt"/>\r
484     </optional>\r
485   </define>\r
486   <define name="mglyph.deprecatedattributes">\r
487     <optional>\r
488       <attribute name="index">\r
489         <ref name="integer"/>\r
490       </attribute>\r
491     </optional>\r
492     <optional>\r
493       <attribute name="mathvariant">\r
494         <choice>\r
495           <value>normal</value>\r
496           <value>bold</value>\r
497           <value>italic</value>\r
498           <value>bold-italic</value>\r
499           <value>double-struck</value>\r
500           <value>bold-fraktur</value>\r
501           <value>script</value>\r
502           <value>bold-script</value>\r
503           <value>fraktur</value>\r
504           <value>sans-serif</value>\r
505           <value>bold-sans-serif</value>\r
506           <value>sans-serif-italic</value>\r
507           <value>sans-serif-bold-italic</value>\r
508           <value>monospace</value>\r
509           <value>initial</value>\r
510           <value>tailed</value>\r
511           <value>looped</value>\r
512           <value>stretched</value>\r
513         </choice>\r
514       </attribute>\r
515     </optional>\r
516     <optional>\r
517       <attribute name="mathsize">\r
518         <choice>\r
519           <value>small</value>\r
520           <value>normal</value>\r
521           <value>big</value>\r
522           <ref name="length"/>\r
523         </choice>\r
524       </attribute>\r
525     </optional>\r
526     <ref name="DeprecatedTokenAtt"/>\r
527   </define>\r
528   <define name="msline">\r
529     <element name="msline">\r
530       <ref name="msline.attributes"/>\r
531       <empty/>\r
532     </element>\r
533   </define>\r
534   <define name="msline.attributes">\r
535     <ref name="CommonAtt"/>\r
536     <ref name="CommonPresAtt"/>\r
537     <optional>\r
538       <attribute name="position">\r
539         <ref name="integer"/>\r
540       </attribute>\r
541     </optional>\r
542     <optional>\r
543       <attribute name="length">\r
544         <ref name="unsigned-integer"/>\r
545       </attribute>\r
546     </optional>\r
547     <optional>\r
548       <attribute name="leftoverhang">\r
549         <ref name="length"/>\r
550       </attribute>\r
551     </optional>\r
552     <optional>\r
553       <attribute name="rightoverhang">\r
554         <ref name="length"/>\r
555       </attribute>\r
556     </optional>\r
557     <optional>\r
558       <attribute name="mslinethickness">\r
559         <choice>\r
560           <ref name="length"/>\r
561           <value>thin</value>\r
562           <value>medium</value>\r
563           <value>thick</value>\r
564         </choice>\r
565       </attribute>\r
566     </optional>\r
567   </define>\r
568   <define name="none">\r
569     <element name="none">\r
570       <ref name="none.attributes"/>\r
571       <empty/>\r
572     </element>\r
573   </define>\r
574   <define name="none.attributes">\r
575     <ref name="CommonAtt"/>\r
576     <ref name="CommonPresAtt"/>\r
577   </define>\r
578   <define name="mprescripts">\r
579     <element name="mprescripts">\r
580       <ref name="mprescripts.attributes"/>\r
581       <empty/>\r
582     </element>\r
583   </define>\r
584   <define name="mprescripts.attributes">\r
585     <ref name="CommonAtt"/>\r
586     <ref name="CommonPresAtt"/>\r
587   </define>\r
588   <define name="CommonPresAtt">\r
589     <optional>\r
590       <attribute name="mathcolor">\r
591         <ref name="color"/>\r
592       </attribute>\r
593     </optional>\r
594     <optional>\r
595       <attribute name="mathbackground">\r
596         <choice>\r
597           <ref name="color"/>\r
598           <value>transparent</value>\r
599         </choice>\r
600       </attribute>\r
601     </optional>\r
602   </define>\r
603   <define name="TokenAtt">\r
604     <optional>\r
605       <attribute name="mathvariant">\r
606         <choice>\r
607           <value>normal</value>\r
608           <value>bold</value>\r
609           <value>italic</value>\r
610           <value>bold-italic</value>\r
611           <value>double-struck</value>\r
612           <value>bold-fraktur</value>\r
613           <value>script</value>\r
614           <value>bold-script</value>\r
615           <value>fraktur</value>\r
616           <value>sans-serif</value>\r
617           <value>bold-sans-serif</value>\r
618           <value>sans-serif-italic</value>\r
619           <value>sans-serif-bold-italic</value>\r
620           <value>monospace</value>\r
621           <value>initial</value>\r
622           <value>tailed</value>\r
623           <value>looped</value>\r
624           <value>stretched</value>\r
625         </choice>\r
626       </attribute>\r
627     </optional>\r
628     <optional>\r
629       <attribute name="mathsize">\r
630         <choice>\r
631           <value>small</value>\r
632           <value>normal</value>\r
633           <value>big</value>\r
634           <ref name="length"/>\r
635         </choice>\r
636       </attribute>\r
637     </optional>\r
638     <optional>\r
639       <attribute name="dir">\r
640         <choice>\r
641           <value>ltr</value>\r
642           <value>rtl</value>\r
643         </choice>\r
644       </attribute>\r
645     </optional>\r
646     <ref name="DeprecatedTokenAtt"/>\r
647   </define>\r
648   <define name="DeprecatedTokenAtt">\r
649     <optional>\r
650       <attribute name="fontfamily"/>\r
651     </optional>\r
652     <optional>\r
653       <attribute name="fontweight">\r
654         <choice>\r
655           <value>normal</value>\r
656           <value>bold</value>\r
657         </choice>\r
658       </attribute>\r
659     </optional>\r
660     <optional>\r
661       <attribute name="fontstyle">\r
662         <choice>\r
663           <value>normal</value>\r
664           <value>italic</value>\r
665         </choice>\r
666       </attribute>\r
667     </optional>\r
668     <optional>\r
669       <attribute name="fontsize">\r
670         <ref name="length"/>\r
671       </attribute>\r
672     </optional>\r
673     <optional>\r
674       <attribute name="color">\r
675         <ref name="color"/>\r
676       </attribute>\r
677     </optional>\r
678     <optional>\r
679       <attribute name="background">\r
680         <choice>\r
681           <ref name="color"/>\r
682           <value>transparent</value>\r
683         </choice>\r
684       </attribute>\r
685     </optional>\r
686   </define>\r
687   <define name="MalignExpression">\r
688     <choice>\r
689       <ref name="maligngroup"/>\r
690       <ref name="malignmark"/>\r
691     </choice>\r
692   </define>\r
693   <define name="malignmark">\r
694     <element name="malignmark">\r
695       <ref name="malignmark.attributes"/>\r
696       <empty/>\r
697     </element>\r
698   </define>\r
699   <define name="malignmark.attributes">\r
700     <ref name="CommonAtt"/>\r
701     <ref name="CommonPresAtt"/>\r
702     <optional>\r
703       <attribute name="edge">\r
704         <choice>\r
705           <value>left</value>\r
706           <value>right</value>\r
707         </choice>\r
708       </attribute>\r
709     </optional>\r
710   </define>\r
711   <define name="maligngroup">\r
712     <element name="maligngroup">\r
713       <ref name="maligngroup.attributes"/>\r
714       <empty/>\r
715     </element>\r
716   </define>\r
717   <define name="maligngroup.attributes">\r
718     <ref name="CommonAtt"/>\r
719     <ref name="CommonPresAtt"/>\r
720     <optional>\r
721       <attribute name="groupalign">\r
722         <choice>\r
723           <value>left</value>\r
724           <value>center</value>\r
725           <value>right</value>\r
726           <value>decimalpoint</value>\r
727         </choice>\r
728       </attribute>\r
729     </optional>\r
730   </define>\r
731   <define name="PresentationExpression">\r
732     <choice>\r
733       <ref name="TokenExpression"/>\r
734       <ref name="MalignExpression"/>\r
735       <ref name="mrow"/>\r
736       <ref name="mfrac"/>\r
737       <ref name="msqrt"/>\r
738       <ref name="mroot"/>\r
739       <ref name="mstyle"/>\r
740       <ref name="merror"/>\r
741       <ref name="mpadded"/>\r
742       <ref name="mphantom"/>\r
743       <ref name="mfenced"/>\r
744       <ref name="menclose"/>\r
745       <ref name="msub"/>\r
746       <ref name="msup"/>\r
747       <ref name="msubsup"/>\r
748       <ref name="munder"/>\r
749       <ref name="mover"/>\r
750       <ref name="munderover"/>\r
751       <ref name="mmultiscripts"/>\r
752       <ref name="mtable"/>\r
753       <ref name="mstack"/>\r
754       <ref name="mlongdiv"/>\r
755       <ref name="maction"/>\r
756     </choice>\r
757   </define>\r
758   <define name="mrow">\r
759     <element name="mrow">\r
760       <ref name="mrow.attributes"/>\r
761       <zeroOrMore>\r
762         <ref name="MathExpression"/>\r
763       </zeroOrMore>\r
764     </element>\r
765   </define>\r
766   <define name="mrow.attributes">\r
767     <ref name="CommonAtt"/>\r
768     <ref name="CommonPresAtt"/>\r
769     <optional>\r
770       <attribute name="dir">\r
771         <choice>\r
772           <value>ltr</value>\r
773           <value>rtl</value>\r
774         </choice>\r
775       </attribute>\r
776     </optional>\r
777   </define>\r
778   <define name="mfrac">\r
779     <element name="mfrac">\r
780       <ref name="mfrac.attributes"/>\r
781       <ref name="MathExpression"/>\r
782       <ref name="MathExpression"/>\r
783     </element>\r
784   </define>\r
785   <define name="mfrac.attributes">\r
786     <ref name="CommonAtt"/>\r
787     <ref name="CommonPresAtt"/>\r
788     <optional>\r
789       <attribute name="linethickness">\r
790         <choice>\r
791           <ref name="length"/>\r
792           <value>thin</value>\r
793           <value>medium</value>\r
794           <value>thick</value>\r
795         </choice>\r
796       </attribute>\r
797     </optional>\r
798     <optional>\r
799       <attribute name="numalign">\r
800         <choice>\r
801           <value>left</value>\r
802           <value>center</value>\r
803           <value>right</value>\r
804         </choice>\r
805       </attribute>\r
806     </optional>\r
807     <optional>\r
808       <attribute name="denomalign">\r
809         <choice>\r
810           <value>left</value>\r
811           <value>center</value>\r
812           <value>right</value>\r
813         </choice>\r
814       </attribute>\r
815     </optional>\r
816     <optional>\r
817       <attribute name="bevelled">\r
818         <choice>\r
819           <value>true</value>\r
820           <value>false</value>\r
821         </choice>\r
822       </attribute>\r
823     </optional>\r
824   </define>\r
825   <define name="msqrt">\r
826     <element name="msqrt">\r
827       <ref name="msqrt.attributes"/>\r
828       <ref name="ImpliedMrow"/>\r
829     </element>\r
830   </define>\r
831   <define name="msqrt.attributes">\r
832     <ref name="CommonAtt"/>\r
833     <ref name="CommonPresAtt"/>\r
834   </define>\r
835   <define name="mroot">\r
836     <element name="mroot">\r
837       <ref name="mroot.attributes"/>\r
838       <ref name="MathExpression"/>\r
839       <ref name="MathExpression"/>\r
840     </element>\r
841   </define>\r
842   <define name="mroot.attributes">\r
843     <ref name="CommonAtt"/>\r
844     <ref name="CommonPresAtt"/>\r
845   </define>\r
846   <define name="mstyle">\r
847     <element name="mstyle">\r
848       <ref name="mstyle.attributes"/>\r
849       <ref name="ImpliedMrow"/>\r
850     </element>\r
851   </define>\r
852   <define name="mstyle.attributes">\r
853     <ref name="CommonAtt"/>\r
854     <ref name="CommonPresAtt"/>\r
855     <ref name="mstyle.specificattributes"/>\r
856     <ref name="mstyle.generalattributes"/>\r
857     <ref name="mstyle.deprecatedattributes"/>\r
858   </define>\r
859   <define name="mstyle.specificattributes">\r
860     <optional>\r
861       <attribute name="scriptlevel">\r
862         <ref name="integer"/>\r
863       </attribute>\r
864     </optional>\r
865     <optional>\r
866       <attribute name="displaystyle">\r
867         <choice>\r
868           <value>true</value>\r
869           <value>false</value>\r
870         </choice>\r
871       </attribute>\r
872     </optional>\r
873     <optional>\r
874       <attribute name="scriptsizemultiplier">\r
875         <ref name="number"/>\r
876       </attribute>\r
877     </optional>\r
878     <optional>\r
879       <attribute name="scriptminsize">\r
880         <ref name="length"/>\r
881       </attribute>\r
882     </optional>\r
883     <optional>\r
884       <attribute name="infixlinebreakstyle">\r
885         <choice>\r
886           <value>before</value>\r
887           <value>after</value>\r
888           <value>duplicate</value>\r
889         </choice>\r
890       </attribute>\r
891     </optional>\r
892     <optional>\r
893       <attribute name="decimalpoint">\r
894         <ref name="character"/>\r
895       </attribute>\r
896     </optional>\r
897   </define>\r
898   <define name="mstyle.generalattributes">\r
899     <optional>\r
900       <attribute name="accent">\r
901         <choice>\r
902           <value>true</value>\r
903           <value>false</value>\r
904         </choice>\r
905       </attribute>\r
906     </optional>\r
907     <optional>\r
908       <attribute name="accentunder">\r
909         <choice>\r
910           <value>true</value>\r
911           <value>false</value>\r
912         </choice>\r
913       </attribute>\r
914     </optional>\r
915     <optional>\r
916       <attribute name="align">\r
917         <choice>\r
918           <value>left</value>\r
919           <value>right</value>\r
920           <value>center</value>\r
921         </choice>\r
922       </attribute>\r
923     </optional>\r
924     <optional>\r
925       <attribute name="alignmentscope">\r
926         <list>\r
927           <oneOrMore>\r
928             <choice>\r
929               <value>true</value>\r
930               <value>false</value>\r
931             </choice>\r
932           </oneOrMore>\r
933         </list>\r
934       </attribute>\r
935     </optional>\r
936     <optional>\r
937       <attribute name="bevelled">\r
938         <choice>\r
939           <value>true</value>\r
940           <value>false</value>\r
941         </choice>\r
942       </attribute>\r
943     </optional>\r
944     <optional>\r
945       <attribute name="charalign">\r
946         <choice>\r
947           <value>left</value>\r
948           <value>center</value>\r
949           <value>right</value>\r
950         </choice>\r
951       </attribute>\r
952     </optional>\r
953     <optional>\r
954       <attribute name="charspacing">\r
955         <choice>\r
956           <ref name="length"/>\r
957           <value>loose</value>\r
958           <value>medium</value>\r
959           <value>tight</value>\r
960         </choice>\r
961       </attribute>\r
962     </optional>\r
963     <optional>\r
964       <attribute name="close"/>\r
965     </optional>\r
966     <optional>\r
967       <attribute name="columnalign">\r
968         <list>\r
969           <oneOrMore>\r
970             <ref name="columnalignstyle"/>\r
971           </oneOrMore>\r
972         </list>\r
973       </attribute>\r
974     </optional>\r
975     <optional>\r
976       <attribute name="columnlines">\r
977         <list>\r
978           <oneOrMore>\r
979             <ref name="linestyle"/>\r
980           </oneOrMore>\r
981         </list>\r
982       </attribute>\r
983     </optional>\r
984     <optional>\r
985       <attribute name="columnspacing">\r
986         <list>\r
987           <oneOrMore>\r
988             <ref name="length"/>\r
989           </oneOrMore>\r
990         </list>\r
991       </attribute>\r
992     </optional>\r
993     <optional>\r
994       <attribute name="columnspan">\r
995         <ref name="positive-integer"/>\r
996       </attribute>\r
997     </optional>\r
998     <optional>\r
999       <attribute name="columnwidth">\r
1000         <list>\r
1001           <oneOrMore>\r
1002             <choice>\r
1003               <value>auto</value>\r
1004               <ref name="length"/>\r
1005               <value>fit</value>\r
1006             </choice>\r
1007           </oneOrMore>\r
1008         </list>\r
1009       </attribute>\r
1010     </optional>\r
1011     <optional>\r
1012       <attribute name="crossout">\r
1013         <list>\r
1014           <zeroOrMore>\r
1015             <choice>\r
1016               <value>none</value>\r
1017               <value>updiagonalstrike</value>\r
1018               <value>downdiagonalstrike</value>\r
1019               <value>verticalstrike</value>\r
1020               <value>horizontalstrike</value>\r
1021             </choice>\r
1022           </zeroOrMore>\r
1023         </list>\r
1024       </attribute>\r
1025     </optional>\r
1026     <optional>\r
1027       <attribute name="denomalign">\r
1028         <choice>\r
1029           <value>left</value>\r
1030           <value>center</value>\r
1031           <value>right</value>\r
1032         </choice>\r
1033       </attribute>\r
1034     </optional>\r
1035     <optional>\r
1036       <attribute name="depth">\r
1037         <ref name="length"/>\r
1038       </attribute>\r
1039     </optional>\r
1040     <optional>\r
1041       <attribute name="dir">\r
1042         <choice>\r
1043           <value>ltr</value>\r
1044           <value>rtl</value>\r
1045         </choice>\r
1046       </attribute>\r
1047     </optional>\r
1048     <optional>\r
1049       <attribute name="edge">\r
1050         <choice>\r
1051           <value>left</value>\r
1052           <value>right</value>\r
1053         </choice>\r
1054       </attribute>\r
1055     </optional>\r
1056     <optional>\r
1057       <attribute name="equalcolumns">\r
1058         <choice>\r
1059           <value>true</value>\r
1060           <value>false</value>\r
1061         </choice>\r
1062       </attribute>\r
1063     </optional>\r
1064     <optional>\r
1065       <attribute name="equalrows">\r
1066         <choice>\r
1067           <value>true</value>\r
1068           <value>false</value>\r
1069         </choice>\r
1070       </attribute>\r
1071     </optional>\r
1072     <optional>\r
1073       <attribute name="fence">\r
1074         <choice>\r
1075           <value>true</value>\r
1076           <value>false</value>\r
1077         </choice>\r
1078       </attribute>\r
1079     </optional>\r
1080     <optional>\r
1081       <attribute name="form">\r
1082         <choice>\r
1083           <value>prefix</value>\r
1084           <value>infix</value>\r
1085           <value>postfix</value>\r
1086         </choice>\r
1087       </attribute>\r
1088     </optional>\r
1089     <optional>\r
1090       <attribute name="frame">\r
1091         <ref name="linestyle"/>\r
1092       </attribute>\r
1093     </optional>\r
1094     <optional>\r
1095       <attribute name="framespacing">\r
1096         <list>\r
1097           <ref name="length"/>\r
1098           <ref name="length"/>\r
1099         </list>\r
1100       </attribute>\r
1101     </optional>\r
1102     <optional>\r
1103       <attribute name="groupalign">\r
1104         <ref name="group-alignment-list-list"/>\r
1105       </attribute>\r
1106     </optional>\r
1107     <optional>\r
1108       <attribute name="height">\r
1109         <ref name="length"/>\r
1110       </attribute>\r
1111     </optional>\r
1112     <optional>\r
1113       <attribute name="indentalign">\r
1114         <choice>\r
1115           <value>left</value>\r
1116           <value>center</value>\r
1117           <value>right</value>\r
1118           <value>auto</value>\r
1119           <value>id</value>\r
1120         </choice>\r
1121       </attribute>\r
1122     </optional>\r
1123     <optional>\r
1124       <attribute name="indentalignfirst">\r
1125         <choice>\r
1126           <value>left</value>\r
1127           <value>center</value>\r
1128           <value>right</value>\r
1129           <value>auto</value>\r
1130           <value>id</value>\r
1131           <value>indentalign</value>\r
1132         </choice>\r
1133       </attribute>\r
1134     </optional>\r
1135     <optional>\r
1136       <attribute name="indentalignlast">\r
1137         <choice>\r
1138           <value>left</value>\r
1139           <value>center</value>\r
1140           <value>right</value>\r
1141           <value>auto</value>\r
1142           <value>id</value>\r
1143           <value>indentalign</value>\r
1144         </choice>\r
1145       </attribute>\r
1146     </optional>\r
1147     <optional>\r
1148       <attribute name="indentshift">\r
1149         <ref name="length"/>\r
1150       </attribute>\r
1151     </optional>\r
1152     <optional>\r
1153       <attribute name="indentshiftfirst">\r
1154         <choice>\r
1155           <ref name="length"/>\r
1156           <value>indentshift</value>\r
1157         </choice>\r
1158       </attribute>\r
1159     </optional>\r
1160     <optional>\r
1161       <attribute name="indentshiftlast">\r
1162         <choice>\r
1163           <ref name="length"/>\r
1164           <value>indentshift</value>\r
1165         </choice>\r
1166       </attribute>\r
1167     </optional>\r
1168     <optional>\r
1169       <attribute name="indenttarget">\r
1170         <ref name="idref"/>\r
1171       </attribute>\r
1172     </optional>\r
1173     <optional>\r
1174       <attribute name="largeop">\r
1175         <choice>\r
1176           <value>true</value>\r
1177           <value>false</value>\r
1178         </choice>\r
1179       </attribute>\r
1180     </optional>\r
1181     <optional>\r
1182       <attribute name="leftoverhang">\r
1183         <ref name="length"/>\r
1184       </attribute>\r
1185     </optional>\r
1186     <optional>\r
1187       <attribute name="length">\r
1188         <ref name="unsigned-integer"/>\r
1189       </attribute>\r
1190     </optional>\r
1191     <optional>\r
1192       <attribute name="linebreak">\r
1193         <choice>\r
1194           <value>auto</value>\r
1195           <value>newline</value>\r
1196           <value>nobreak</value>\r
1197           <value>goodbreak</value>\r
1198           <value>badbreak</value>\r
1199         </choice>\r
1200       </attribute>\r
1201     </optional>\r
1202     <optional>\r
1203       <attribute name="linebreakmultchar"/>\r
1204     </optional>\r
1205     <optional>\r
1206       <attribute name="linebreakstyle">\r
1207         <choice>\r
1208           <value>before</value>\r
1209           <value>after</value>\r
1210           <value>duplicate</value>\r
1211           <value>infixlinebreakstyle</value>\r
1212         </choice>\r
1213       </attribute>\r
1214     </optional>\r
1215     <optional>\r
1216       <attribute name="lineleading">\r
1217         <ref name="length"/>\r
1218       </attribute>\r
1219     </optional>\r
1220     <optional>\r
1221       <attribute name="linethickness">\r
1222         <choice>\r
1223           <ref name="length"/>\r
1224           <value>thin</value>\r
1225           <value>medium</value>\r
1226           <value>thick</value>\r
1227         </choice>\r
1228       </attribute>\r
1229     </optional>\r
1230     <optional>\r
1231       <attribute name="location">\r
1232         <choice>\r
1233           <value>w</value>\r
1234           <value>nw</value>\r
1235           <value>n</value>\r
1236           <value>ne</value>\r
1237           <value>e</value>\r
1238           <value>se</value>\r
1239           <value>s</value>\r
1240           <value>sw</value>\r
1241         </choice>\r
1242       </attribute>\r
1243     </optional>\r
1244     <optional>\r
1245       <attribute name="longdivstyle">\r
1246         <choice>\r
1247           <value>lefttop</value>\r
1248           <value>stackedrightright</value>\r
1249           <value>mediumstackedrightright</value>\r
1250           <value>shortstackedrightright</value>\r
1251           <value>righttop</value>\r
1252           <value>left/\right</value>\r
1253           <value>left)(right</value>\r
1254           <value>:right=right</value>\r
1255           <value>stackedleftleft</value>\r
1256           <value>stackedleftlinetop</value>\r
1257         </choice>\r
1258       </attribute>\r
1259     </optional>\r
1260     <optional>\r
1261       <attribute name="lquote"/>\r
1262     </optional>\r
1263     <optional>\r
1264       <attribute name="lspace">\r
1265         <ref name="length"/>\r
1266       </attribute>\r
1267     </optional>\r
1268     <optional>\r
1269       <attribute name="mathsize">\r
1270         <choice>\r
1271           <value>small</value>\r
1272           <value>normal</value>\r
1273           <value>big</value>\r
1274           <ref name="length"/>\r
1275         </choice>\r
1276       </attribute>\r
1277     </optional>\r
1278     <optional>\r
1279       <attribute name="mathvariant">\r
1280         <choice>\r
1281           <value>normal</value>\r
1282           <value>bold</value>\r
1283           <value>italic</value>\r
1284           <value>bold-italic</value>\r
1285           <value>double-struck</value>\r
1286           <value>bold-fraktur</value>\r
1287           <value>script</value>\r
1288           <value>bold-script</value>\r
1289           <value>fraktur</value>\r
1290           <value>sans-serif</value>\r
1291           <value>bold-sans-serif</value>\r
1292           <value>sans-serif-italic</value>\r
1293           <value>sans-serif-bold-italic</value>\r
1294           <value>monospace</value>\r
1295           <value>initial</value>\r
1296           <value>tailed</value>\r
1297           <value>looped</value>\r
1298           <value>stretched</value>\r
1299         </choice>\r
1300       </attribute>\r
1301     </optional>\r
1302     <optional>\r
1303       <attribute name="maxsize">\r
1304         <choice>\r
1305           <ref name="length"/>\r
1306           <value>infinity</value>\r
1307         </choice>\r
1308       </attribute>\r
1309     </optional>\r
1310     <optional>\r
1311       <attribute name="minlabelspacing">\r
1312         <ref name="length"/>\r
1313       </attribute>\r
1314     </optional>\r
1315     <optional>\r
1316       <attribute name="minsize">\r
1317         <ref name="length"/>\r
1318       </attribute>\r
1319     </optional>\r
1320     <optional>\r
1321       <attribute name="movablelimits">\r
1322         <choice>\r
1323           <value>true</value>\r
1324           <value>false</value>\r
1325         </choice>\r
1326       </attribute>\r
1327     </optional>\r
1328     <optional>\r
1329       <attribute name="mslinethickness">\r
1330         <choice>\r
1331           <ref name="length"/>\r
1332           <value>thin</value>\r
1333           <value>medium</value>\r
1334           <value>thick</value>\r
1335         </choice>\r
1336       </attribute>\r
1337     </optional>\r
1338     <optional>\r
1339       <attribute name="notation"/>\r
1340     </optional>\r
1341     <optional>\r
1342       <attribute name="numalign">\r
1343         <choice>\r
1344           <value>left</value>\r
1345           <value>center</value>\r
1346           <value>right</value>\r
1347         </choice>\r
1348       </attribute>\r
1349     </optional>\r
1350     <optional>\r
1351       <attribute name="open"/>\r
1352     </optional>\r
1353     <optional>\r
1354       <attribute name="position">\r
1355         <ref name="integer"/>\r
1356       </attribute>\r
1357     </optional>\r
1358     <optional>\r
1359       <attribute name="rightoverhang">\r
1360         <ref name="length"/>\r
1361       </attribute>\r
1362     </optional>\r
1363     <optional>\r
1364       <attribute name="rowalign">\r
1365         <list>\r
1366           <oneOrMore>\r
1367             <ref name="verticalalign"/>\r
1368           </oneOrMore>\r
1369         </list>\r
1370       </attribute>\r
1371     </optional>\r
1372     <optional>\r
1373       <attribute name="rowlines">\r
1374         <list>\r
1375           <oneOrMore>\r
1376             <ref name="linestyle"/>\r
1377           </oneOrMore>\r
1378         </list>\r
1379       </attribute>\r
1380     </optional>\r
1381     <optional>\r
1382       <attribute name="rowspacing">\r
1383         <list>\r
1384           <oneOrMore>\r
1385             <ref name="length"/>\r
1386           </oneOrMore>\r
1387         </list>\r
1388       </attribute>\r
1389     </optional>\r
1390     <optional>\r
1391       <attribute name="rowspan">\r
1392         <ref name="positive-integer"/>\r
1393       </attribute>\r
1394     </optional>\r
1395     <optional>\r
1396       <attribute name="rquote"/>\r
1397     </optional>\r
1398     <optional>\r
1399       <attribute name="rspace">\r
1400         <ref name="length"/>\r
1401       </attribute>\r
1402     </optional>\r
1403     <optional>\r
1404       <attribute name="selection">\r
1405         <ref name="positive-integer"/>\r
1406       </attribute>\r
1407     </optional>\r
1408     <optional>\r
1409       <attribute name="separator">\r
1410         <choice>\r
1411           <value>true</value>\r
1412           <value>false</value>\r
1413         </choice>\r
1414       </attribute>\r
1415     </optional>\r
1416     <optional>\r
1417       <attribute name="separators"/>\r
1418     </optional>\r
1419     <optional>\r
1420       <attribute name="shift">\r
1421         <ref name="integer"/>\r
1422       </attribute>\r
1423     </optional>\r
1424     <optional>\r
1425       <attribute name="side">\r
1426         <choice>\r
1427           <value>left</value>\r
1428           <value>right</value>\r
1429           <value>leftoverlap</value>\r
1430           <value>rightoverlap</value>\r
1431         </choice>\r
1432       </attribute>\r
1433     </optional>\r
1434     <optional>\r
1435       <attribute name="stackalign">\r
1436         <choice>\r
1437           <value>left</value>\r
1438           <value>center</value>\r
1439           <value>right</value>\r
1440           <value>decimalpoint</value>\r
1441         </choice>\r
1442       </attribute>\r
1443     </optional>\r
1444     <optional>\r
1445       <attribute name="stretchy">\r
1446         <choice>\r
1447           <value>true</value>\r
1448           <value>false</value>\r
1449         </choice>\r
1450       </attribute>\r
1451     </optional>\r
1452     <optional>\r
1453       <attribute name="subscriptshift">\r
1454         <ref name="length"/>\r
1455       </attribute>\r
1456     </optional>\r
1457     <optional>\r
1458       <attribute name="superscriptshift">\r
1459         <ref name="length"/>\r
1460       </attribute>\r
1461     </optional>\r
1462     <optional>\r
1463       <attribute name="symmetric">\r
1464         <choice>\r
1465           <value>true</value>\r
1466           <value>false</value>\r
1467         </choice>\r
1468       </attribute>\r
1469     </optional>\r
1470     <optional>\r
1471       <attribute name="valign">\r
1472         <ref name="length"/>\r
1473       </attribute>\r
1474     </optional>\r
1475     <optional>\r
1476       <attribute name="width">\r
1477         <ref name="length"/>\r
1478       </attribute>\r
1479     </optional>\r
1480   </define>\r
1481   <define name="mstyle.deprecatedattributes">\r
1482     <ref name="DeprecatedTokenAtt"/>\r
1483     <optional>\r
1484       <attribute name="veryverythinmathspace">\r
1485         <ref name="length"/>\r
1486       </attribute>\r
1487     </optional>\r
1488     <optional>\r
1489       <attribute name="verythinmathspace">\r
1490         <ref name="length"/>\r
1491       </attribute>\r
1492     </optional>\r
1493     <optional>\r
1494       <attribute name="thinmathspace">\r
1495         <ref name="length"/>\r
1496       </attribute>\r
1497     </optional>\r
1498     <optional>\r
1499       <attribute name="mediummathspace">\r
1500         <ref name="length"/>\r
1501       </attribute>\r
1502     </optional>\r
1503     <optional>\r
1504       <attribute name="thickmathspace">\r
1505         <ref name="length"/>\r
1506       </attribute>\r
1507     </optional>\r
1508     <optional>\r
1509       <attribute name="verythickmathspace">\r
1510         <ref name="length"/>\r
1511       </attribute>\r
1512     </optional>\r
1513     <optional>\r
1514       <attribute name="veryverythickmathspace">\r
1515         <ref name="length"/>\r
1516       </attribute>\r
1517     </optional>\r
1518   </define>\r
1519   <define name="math.attributes" combine="interleave">\r
1520     <ref name="CommonPresAtt"/>\r
1521   </define>\r
1522   <define name="math.attributes" combine="interleave">\r
1523     <ref name="mstyle.specificattributes"/>\r
1524   </define>\r
1525   <define name="math.attributes" combine="interleave">\r
1526     <ref name="mstyle.generalattributes"/>\r
1527   </define>\r
1528   <define name="merror">\r
1529     <element name="merror">\r
1530       <ref name="merror.attributes"/>\r
1531       <ref name="ImpliedMrow"/>\r
1532     </element>\r
1533   </define>\r
1534   <define name="merror.attributes">\r
1535     <ref name="CommonAtt"/>\r
1536     <ref name="CommonPresAtt"/>\r
1537   </define>\r
1538   <define name="mpadded">\r
1539     <element name="mpadded">\r
1540       <ref name="mpadded.attributes"/>\r
1541       <ref name="ImpliedMrow"/>\r
1542     </element>\r
1543   </define>\r
1544   <define name="mpadded.attributes">\r
1545     <ref name="CommonAtt"/>\r
1546     <ref name="CommonPresAtt"/>\r
1547     <optional>\r
1548       <attribute name="height">\r
1549         <ref name="mpadded-length"/>\r
1550       </attribute>\r
1551     </optional>\r
1552     <optional>\r
1553       <attribute name="depth">\r
1554         <ref name="mpadded-length"/>\r
1555       </attribute>\r
1556     </optional>\r
1557     <optional>\r
1558       <attribute name="width">\r
1559         <ref name="mpadded-length"/>\r
1560       </attribute>\r
1561     </optional>\r
1562     <optional>\r
1563       <attribute name="lspace">\r
1564         <ref name="mpadded-length"/>\r
1565       </attribute>\r
1566     </optional>\r
1567     <optional>\r
1568       <attribute name="voffset">\r
1569         <ref name="mpadded-length"/>\r
1570       </attribute>\r
1571     </optional>\r
1572   </define>\r
1573   <define name="mphantom">\r
1574     <element name="mphantom">\r
1575       <ref name="mphantom.attributes"/>\r
1576       <ref name="ImpliedMrow"/>\r
1577     </element>\r
1578   </define>\r
1579   <define name="mphantom.attributes">\r
1580     <ref name="CommonAtt"/>\r
1581     <ref name="CommonPresAtt"/>\r
1582   </define>\r
1583   <define name="mfenced">\r
1584     <element name="mfenced">\r
1585       <ref name="mfenced.attributes"/>\r
1586       <zeroOrMore>\r
1587         <ref name="MathExpression"/>\r
1588       </zeroOrMore>\r
1589     </element>\r
1590   </define>\r
1591   <define name="mfenced.attributes">\r
1592     <ref name="CommonAtt"/>\r
1593     <ref name="CommonPresAtt"/>\r
1594     <optional>\r
1595       <attribute name="open"/>\r
1596     </optional>\r
1597     <optional>\r
1598       <attribute name="close"/>\r
1599     </optional>\r
1600     <optional>\r
1601       <attribute name="separators"/>\r
1602     </optional>\r
1603   </define>\r
1604   <define name="menclose">\r
1605     <element name="menclose">\r
1606       <ref name="menclose.attributes"/>\r
1607       <ref name="ImpliedMrow"/>\r
1608     </element>\r
1609   </define>\r
1610   <define name="menclose.attributes">\r
1611     <ref name="CommonAtt"/>\r
1612     <ref name="CommonPresAtt"/>\r
1613     <optional>\r
1614       <attribute name="notation"/>\r
1615     </optional>\r
1616   </define>\r
1617   <define name="msub">\r
1618     <element name="msub">\r
1619       <ref name="msub.attributes"/>\r
1620       <ref name="MathExpression"/>\r
1621       <ref name="MathExpression"/>\r
1622     </element>\r
1623   </define>\r
1624   <define name="msub.attributes">\r
1625     <ref name="CommonAtt"/>\r
1626     <ref name="CommonPresAtt"/>\r
1627     <optional>\r
1628       <attribute name="subscriptshift">\r
1629         <ref name="length"/>\r
1630       </attribute>\r
1631     </optional>\r
1632   </define>\r
1633   <define name="msup">\r
1634     <element name="msup">\r
1635       <ref name="msup.attributes"/>\r
1636       <ref name="MathExpression"/>\r
1637       <ref name="MathExpression"/>\r
1638     </element>\r
1639   </define>\r
1640   <define name="msup.attributes">\r
1641     <ref name="CommonAtt"/>\r
1642     <ref name="CommonPresAtt"/>\r
1643     <optional>\r
1644       <attribute name="superscriptshift">\r
1645         <ref name="length"/>\r
1646       </attribute>\r
1647     </optional>\r
1648   </define>\r
1649   <define name="msubsup">\r
1650     <element name="msubsup">\r
1651       <ref name="msubsup.attributes"/>\r
1652       <ref name="MathExpression"/>\r
1653       <ref name="MathExpression"/>\r
1654       <ref name="MathExpression"/>\r
1655     </element>\r
1656   </define>\r
1657   <define name="msubsup.attributes">\r
1658     <ref name="CommonAtt"/>\r
1659     <ref name="CommonPresAtt"/>\r
1660     <optional>\r
1661       <attribute name="subscriptshift">\r
1662         <ref name="length"/>\r
1663       </attribute>\r
1664     </optional>\r
1665     <optional>\r
1666       <attribute name="superscriptshift">\r
1667         <ref name="length"/>\r
1668       </attribute>\r
1669     </optional>\r
1670   </define>\r
1671   <define name="munder">\r
1672     <element name="munder">\r
1673       <ref name="munder.attributes"/>\r
1674       <ref name="MathExpression"/>\r
1675       <ref name="MathExpression"/>\r
1676     </element>\r
1677   </define>\r
1678   <define name="munder.attributes">\r
1679     <ref name="CommonAtt"/>\r
1680     <ref name="CommonPresAtt"/>\r
1681     <optional>\r
1682       <attribute name="accentunder">\r
1683         <choice>\r
1684           <value>true</value>\r
1685           <value>false</value>\r
1686         </choice>\r
1687       </attribute>\r
1688     </optional>\r
1689     <optional>\r
1690       <attribute name="align">\r
1691         <choice>\r
1692           <value>left</value>\r
1693           <value>right</value>\r
1694           <value>center</value>\r
1695         </choice>\r
1696       </attribute>\r
1697     </optional>\r
1698   </define>\r
1699   <define name="mover">\r
1700     <element name="mover">\r
1701       <ref name="mover.attributes"/>\r
1702       <ref name="MathExpression"/>\r
1703       <ref name="MathExpression"/>\r
1704     </element>\r
1705   </define>\r
1706   <define name="mover.attributes">\r
1707     <ref name="CommonAtt"/>\r
1708     <ref name="CommonPresAtt"/>\r
1709     <optional>\r
1710       <attribute name="accent">\r
1711         <choice>\r
1712           <value>true</value>\r
1713           <value>false</value>\r
1714         </choice>\r
1715       </attribute>\r
1716     </optional>\r
1717     <optional>\r
1718       <attribute name="align">\r
1719         <choice>\r
1720           <value>left</value>\r
1721           <value>right</value>\r
1722           <value>center</value>\r
1723         </choice>\r
1724       </attribute>\r
1725     </optional>\r
1726   </define>\r
1727   <define name="munderover">\r
1728     <element name="munderover">\r
1729       <ref name="munderover.attributes"/>\r
1730       <ref name="MathExpression"/>\r
1731       <ref name="MathExpression"/>\r
1732       <ref name="MathExpression"/>\r
1733     </element>\r
1734   </define>\r
1735   <define name="munderover.attributes">\r
1736     <ref name="CommonAtt"/>\r
1737     <ref name="CommonPresAtt"/>\r
1738     <optional>\r
1739       <attribute name="accent">\r
1740         <choice>\r
1741           <value>true</value>\r
1742           <value>false</value>\r
1743         </choice>\r
1744       </attribute>\r
1745     </optional>\r
1746     <optional>\r
1747       <attribute name="accentunder">\r
1748         <choice>\r
1749           <value>true</value>\r
1750           <value>false</value>\r
1751         </choice>\r
1752       </attribute>\r
1753     </optional>\r
1754     <optional>\r
1755       <attribute name="align">\r
1756         <choice>\r
1757           <value>left</value>\r
1758           <value>right</value>\r
1759           <value>center</value>\r
1760         </choice>\r
1761       </attribute>\r
1762     </optional>\r
1763   </define>\r
1764   <define name="mmultiscripts">\r
1765     <element name="mmultiscripts">\r
1766       <ref name="mmultiscripts.attributes"/>\r
1767       <ref name="MathExpression"/>\r
1768       <zeroOrMore>\r
1769         <ref name="MultiScriptExpression"/>\r
1770       </zeroOrMore>\r
1771       <optional>\r
1772         <ref name="mprescripts"/>\r
1773         <zeroOrMore>\r
1774           <ref name="MultiScriptExpression"/>\r
1775         </zeroOrMore>\r
1776       </optional>\r
1777     </element>\r
1778   </define>\r
1779   <define name="mmultiscripts.attributes">\r
1780     <ref name="msubsup.attributes"/>\r
1781   </define>\r
1782   <define name="mtable">\r
1783     <element name="mtable">\r
1784       <ref name="mtable.attributes"/>\r
1785       <zeroOrMore>\r
1786         <ref name="TableRowExpression"/>\r
1787       </zeroOrMore>\r
1788     </element>\r
1789   </define>\r
1790   <define name="mtable.attributes">\r
1791     <ref name="CommonAtt"/>\r
1792     <ref name="CommonPresAtt"/>\r
1793     <optional>\r
1794       <attribute name="align">\r
1795         <data type="string">\r
1796           <param name="pattern">\s*(top|bottom|center|baseline|axis)\s*[0-9]*</param>\r
1797         </data>\r
1798       </attribute>\r
1799     </optional>\r
1800     <optional>\r
1801       <attribute name="rowalign">\r
1802         <list>\r
1803           <oneOrMore>\r
1804             <ref name="verticalalign"/>\r
1805           </oneOrMore>\r
1806         </list>\r
1807       </attribute>\r
1808     </optional>\r
1809     <optional>\r
1810       <attribute name="columnalign">\r
1811         <list>\r
1812           <oneOrMore>\r
1813             <ref name="columnalignstyle"/>\r
1814           </oneOrMore>\r
1815         </list>\r
1816       </attribute>\r
1817     </optional>\r
1818     <optional>\r
1819       <attribute name="groupalign">\r
1820         <ref name="group-alignment-list-list"/>\r
1821       </attribute>\r
1822     </optional>\r
1823     <optional>\r
1824       <attribute name="alignmentscope">\r
1825         <list>\r
1826           <oneOrMore>\r
1827             <choice>\r
1828               <value>true</value>\r
1829               <value>false</value>\r
1830             </choice>\r
1831           </oneOrMore>\r
1832         </list>\r
1833       </attribute>\r
1834     </optional>\r
1835     <optional>\r
1836       <attribute name="columnwidth">\r
1837         <list>\r
1838           <oneOrMore>\r
1839             <choice>\r
1840               <value>auto</value>\r
1841               <ref name="length"/>\r
1842               <value>fit</value>\r
1843             </choice>\r
1844           </oneOrMore>\r
1845         </list>\r
1846       </attribute>\r
1847     </optional>\r
1848     <optional>\r
1849       <attribute name="width">\r
1850         <choice>\r
1851           <value>auto</value>\r
1852           <ref name="length"/>\r
1853         </choice>\r
1854       </attribute>\r
1855     </optional>\r
1856     <optional>\r
1857       <attribute name="rowspacing">\r
1858         <list>\r
1859           <oneOrMore>\r
1860             <ref name="length"/>\r
1861           </oneOrMore>\r
1862         </list>\r
1863       </attribute>\r
1864     </optional>\r
1865     <optional>\r
1866       <attribute name="columnspacing">\r
1867         <list>\r
1868           <oneOrMore>\r
1869             <ref name="length"/>\r
1870           </oneOrMore>\r
1871         </list>\r
1872       </attribute>\r
1873     </optional>\r
1874     <optional>\r
1875       <attribute name="rowlines">\r
1876         <list>\r
1877           <oneOrMore>\r
1878             <ref name="linestyle"/>\r
1879           </oneOrMore>\r
1880         </list>\r
1881       </attribute>\r
1882     </optional>\r
1883     <optional>\r
1884       <attribute name="columnlines">\r
1885         <list>\r
1886           <oneOrMore>\r
1887             <ref name="linestyle"/>\r
1888           </oneOrMore>\r
1889         </list>\r
1890       </attribute>\r
1891     </optional>\r
1892     <optional>\r
1893       <attribute name="frame">\r
1894         <ref name="linestyle"/>\r
1895       </attribute>\r
1896     </optional>\r
1897     <optional>\r
1898       <attribute name="framespacing">\r
1899         <list>\r
1900           <ref name="length"/>\r
1901           <ref name="length"/>\r
1902         </list>\r
1903       </attribute>\r
1904     </optional>\r
1905     <optional>\r
1906       <attribute name="equalrows">\r
1907         <choice>\r
1908           <value>true</value>\r
1909           <value>false</value>\r
1910         </choice>\r
1911       </attribute>\r
1912     </optional>\r
1913     <optional>\r
1914       <attribute name="equalcolumns">\r
1915         <choice>\r
1916           <value>true</value>\r
1917           <value>false</value>\r
1918         </choice>\r
1919       </attribute>\r
1920     </optional>\r
1921     <optional>\r
1922       <attribute name="displaystyle">\r
1923         <choice>\r
1924           <value>true</value>\r
1925           <value>false</value>\r
1926         </choice>\r
1927       </attribute>\r
1928     </optional>\r
1929     <optional>\r
1930       <attribute name="side">\r
1931         <choice>\r
1932           <value>left</value>\r
1933           <value>right</value>\r
1934           <value>leftoverlap</value>\r
1935           <value>rightoverlap</value>\r
1936         </choice>\r
1937       </attribute>\r
1938     </optional>\r
1939     <optional>\r
1940       <attribute name="minlabelspacing">\r
1941         <ref name="length"/>\r
1942       </attribute>\r
1943     </optional>\r
1944   </define>\r
1945   <define name="mlabeledtr">\r
1946     <element name="mlabeledtr">\r
1947       <ref name="mlabeledtr.attributes"/>\r
1948       <oneOrMore>\r
1949         <ref name="TableCellExpression"/>\r
1950       </oneOrMore>\r
1951     </element>\r
1952   </define>\r
1953   <define name="mlabeledtr.attributes">\r
1954     <ref name="mtr.attributes"/>\r
1955   </define>\r
1956   <define name="mtr">\r
1957     <element name="mtr">\r
1958       <ref name="mtr.attributes"/>\r
1959       <zeroOrMore>\r
1960         <ref name="TableCellExpression"/>\r
1961       </zeroOrMore>\r
1962     </element>\r
1963   </define>\r
1964   <define name="mtr.attributes">\r
1965     <ref name="CommonAtt"/>\r
1966     <ref name="CommonPresAtt"/>\r
1967     <optional>\r
1968       <attribute name="rowalign">\r
1969         <choice>\r
1970           <value>top</value>\r
1971           <value>bottom</value>\r
1972           <value>center</value>\r
1973           <value>baseline</value>\r
1974           <value>axis</value>\r
1975         </choice>\r
1976       </attribute>\r
1977     </optional>\r
1978     <optional>\r
1979       <attribute name="columnalign">\r
1980         <list>\r
1981           <oneOrMore>\r
1982             <ref name="columnalignstyle"/>\r
1983           </oneOrMore>\r
1984         </list>\r
1985       </attribute>\r
1986     </optional>\r
1987     <optional>\r
1988       <attribute name="groupalign">\r
1989         <ref name="group-alignment-list-list"/>\r
1990       </attribute>\r
1991     </optional>\r
1992   </define>\r
1993   <define name="mtd">\r
1994     <element name="mtd">\r
1995       <ref name="mtd.attributes"/>\r
1996       <ref name="ImpliedMrow"/>\r
1997     </element>\r
1998   </define>\r
1999   <define name="mtd.attributes">\r
2000     <ref name="CommonAtt"/>\r
2001     <ref name="CommonPresAtt"/>\r
2002     <optional>\r
2003       <attribute name="rowspan">\r
2004         <ref name="positive-integer"/>\r
2005       </attribute>\r
2006     </optional>\r
2007     <optional>\r
2008       <attribute name="columnspan">\r
2009         <ref name="positive-integer"/>\r
2010       </attribute>\r
2011     </optional>\r
2012     <optional>\r
2013       <attribute name="rowalign">\r
2014         <choice>\r
2015           <value>top</value>\r
2016           <value>bottom</value>\r
2017           <value>center</value>\r
2018           <value>baseline</value>\r
2019           <value>axis</value>\r
2020         </choice>\r
2021       </attribute>\r
2022     </optional>\r
2023     <optional>\r
2024       <attribute name="columnalign">\r
2025         <ref name="columnalignstyle"/>\r
2026       </attribute>\r
2027     </optional>\r
2028     <optional>\r
2029       <attribute name="groupalign">\r
2030         <ref name="group-alignment-list"/>\r
2031       </attribute>\r
2032     </optional>\r
2033   </define>\r
2034   <define name="mstack">\r
2035     <element name="mstack">\r
2036       <ref name="mstack.attributes"/>\r
2037       <zeroOrMore>\r
2038         <ref name="MstackExpression"/>\r
2039       </zeroOrMore>\r
2040     </element>\r
2041   </define>\r
2042   <define name="mstack.attributes">\r
2043     <ref name="CommonAtt"/>\r
2044     <ref name="CommonPresAtt"/>\r
2045     <optional>\r
2046       <attribute name="align">\r
2047         <data type="string">\r
2048           <param name="pattern">\s*(top|bottom|center|baseline|axis)\s*[0-9]*</param>\r
2049         </data>\r
2050       </attribute>\r
2051     </optional>\r
2052     <optional>\r
2053       <attribute name="stackalign">\r
2054         <choice>\r
2055           <value>left</value>\r
2056           <value>center</value>\r
2057           <value>right</value>\r
2058           <value>decimalpoint</value>\r
2059         </choice>\r
2060       </attribute>\r
2061     </optional>\r
2062     <optional>\r
2063       <attribute name="charalign">\r
2064         <choice>\r
2065           <value>left</value>\r
2066           <value>center</value>\r
2067           <value>right</value>\r
2068         </choice>\r
2069       </attribute>\r
2070     </optional>\r
2071     <optional>\r
2072       <attribute name="charspacing">\r
2073         <choice>\r
2074           <ref name="length"/>\r
2075           <value>loose</value>\r
2076           <value>medium</value>\r
2077           <value>tight</value>\r
2078         </choice>\r
2079       </attribute>\r
2080     </optional>\r
2081   </define>\r
2082   <define name="mlongdiv">\r
2083     <element name="mlongdiv">\r
2084       <ref name="mlongdiv.attributes"/>\r
2085       <ref name="MstackExpression"/>\r
2086       <ref name="MstackExpression"/>\r
2087       <oneOrMore>\r
2088         <ref name="MstackExpression"/>\r
2089       </oneOrMore>\r
2090     </element>\r
2091   </define>\r
2092   <define name="mlongdiv.attributes">\r
2093     <ref name="msgroup.attributes"/>\r
2094     <optional>\r
2095       <attribute name="longdivstyle">\r
2096         <choice>\r
2097           <value>lefttop</value>\r
2098           <value>stackedrightright</value>\r
2099           <value>mediumstackedrightright</value>\r
2100           <value>shortstackedrightright</value>\r
2101           <value>righttop</value>\r
2102           <value>left/\right</value>\r
2103           <value>left)(right</value>\r
2104           <value>:right=right</value>\r
2105           <value>stackedleftleft</value>\r
2106           <value>stackedleftlinetop</value>\r
2107         </choice>\r
2108       </attribute>\r
2109     </optional>\r
2110   </define>\r
2111   <define name="msgroup">\r
2112     <element name="msgroup">\r
2113       <ref name="msgroup.attributes"/>\r
2114       <zeroOrMore>\r
2115         <ref name="MstackExpression"/>\r
2116       </zeroOrMore>\r
2117     </element>\r
2118   </define>\r
2119   <define name="msgroup.attributes">\r
2120     <ref name="CommonAtt"/>\r
2121     <ref name="CommonPresAtt"/>\r
2122     <optional>\r
2123       <attribute name="position">\r
2124         <ref name="integer"/>\r
2125       </attribute>\r
2126     </optional>\r
2127     <optional>\r
2128       <attribute name="shift">\r
2129         <ref name="integer"/>\r
2130       </attribute>\r
2131     </optional>\r
2132   </define>\r
2133   <define name="msrow">\r
2134     <element name="msrow">\r
2135       <ref name="msrow.attributes"/>\r
2136       <zeroOrMore>\r
2137         <ref name="MsrowExpression"/>\r
2138       </zeroOrMore>\r
2139     </element>\r
2140   </define>\r
2141   <define name="msrow.attributes">\r
2142     <ref name="CommonAtt"/>\r
2143     <ref name="CommonPresAtt"/>\r
2144     <optional>\r
2145       <attribute name="position">\r
2146         <ref name="integer"/>\r
2147       </attribute>\r
2148     </optional>\r
2149   </define>\r
2150   <define name="mscarries">\r
2151     <element name="mscarries">\r
2152       <ref name="mscarries.attributes"/>\r
2153       <zeroOrMore>\r
2154         <choice>\r
2155           <ref name="MsrowExpression"/>\r
2156           <ref name="mscarry"/>\r
2157         </choice>\r
2158       </zeroOrMore>\r
2159     </element>\r
2160   </define>\r
2161   <define name="mscarries.attributes">\r
2162     <ref name="CommonAtt"/>\r
2163     <ref name="CommonPresAtt"/>\r
2164     <optional>\r
2165       <attribute name="position">\r
2166         <ref name="integer"/>\r
2167       </attribute>\r
2168     </optional>\r
2169     <optional>\r
2170       <attribute name="location">\r
2171         <choice>\r
2172           <value>w</value>\r
2173           <value>nw</value>\r
2174           <value>n</value>\r
2175           <value>ne</value>\r
2176           <value>e</value>\r
2177           <value>se</value>\r
2178           <value>s</value>\r
2179           <value>sw</value>\r
2180         </choice>\r
2181       </attribute>\r
2182     </optional>\r
2183     <optional>\r
2184       <attribute name="crossout">\r
2185         <list>\r
2186           <zeroOrMore>\r
2187             <choice>\r
2188               <value>none</value>\r
2189               <value>updiagonalstrike</value>\r
2190               <value>downdiagonalstrike</value>\r
2191               <value>verticalstrike</value>\r
2192               <value>horizontalstrike</value>\r
2193             </choice>\r
2194           </zeroOrMore>\r
2195         </list>\r
2196       </attribute>\r
2197     </optional>\r
2198     <optional>\r
2199       <attribute name="scriptsizemultiplier">\r
2200         <ref name="number"/>\r
2201       </attribute>\r
2202     </optional>\r
2203   </define>\r
2204   <define name="mscarry">\r
2205     <element name="mscarry">\r
2206       <ref name="mscarry.attributes"/>\r
2207       <zeroOrMore>\r
2208         <ref name="MsrowExpression"/>\r
2209       </zeroOrMore>\r
2210     </element>\r
2211   </define>\r
2212   <define name="mscarry.attributes">\r
2213     <ref name="CommonAtt"/>\r
2214     <ref name="CommonPresAtt"/>\r
2215     <optional>\r
2216       <attribute name="location">\r
2217         <choice>\r
2218           <value>w</value>\r
2219           <value>nw</value>\r
2220           <value>n</value>\r
2221           <value>ne</value>\r
2222           <value>e</value>\r
2223           <value>se</value>\r
2224           <value>s</value>\r
2225           <value>sw</value>\r
2226         </choice>\r
2227       </attribute>\r
2228     </optional>\r
2229     <optional>\r
2230       <attribute name="crossout">\r
2231         <list>\r
2232           <zeroOrMore>\r
2233             <choice>\r
2234               <value>none</value>\r
2235               <value>updiagonalstrike</value>\r
2236               <value>downdiagonalstrike</value>\r
2237               <value>verticalstrike</value>\r
2238               <value>horizontalstrike</value>\r
2239             </choice>\r
2240           </zeroOrMore>\r
2241         </list>\r
2242       </attribute>\r
2243     </optional>\r
2244   </define>\r
2245   <define name="maction">\r
2246     <element name="maction">\r
2247       <ref name="maction.attributes"/>\r
2248       <oneOrMore>\r
2249         <ref name="MathExpression"/>\r
2250       </oneOrMore>\r
2251     </element>\r
2252   </define>\r
2253   <define name="maction.attributes">\r
2254     <ref name="CommonAtt"/>\r
2255     <ref name="CommonPresAtt"/>\r
2256     <optional>\r
2257       <attribute name="actiontype"/>\r
2258     </optional>\r
2259     <optional>\r
2260       <attribute name="selection">\r
2261         <ref name="positive-integer"/>\r
2262       </attribute>\r
2263     </optional>\r
2264   </define>\r
2265 </grammar>\r