asciimath 1.0.9 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +5 -5
  2. data/AST.adoc +457 -0
  3. data/CHANGELOG.adoc +12 -0
  4. data/Gemfile.lock +39 -0
  5. data/README.adoc +27 -3
  6. data/asciimath.gemspec +9 -5
  7. data/lib/asciimath.rb +5 -4
  8. data/lib/asciimath/ast.rb +456 -0
  9. data/lib/asciimath/cli.rb +4 -1
  10. data/lib/asciimath/color_table.rb +21 -0
  11. data/lib/asciimath/html.rb +126 -111
  12. data/lib/asciimath/latex.rb +386 -0
  13. data/lib/asciimath/markup.rb +478 -0
  14. data/lib/asciimath/mathml.rb +189 -87
  15. data/lib/asciimath/parser.rb +498 -343
  16. data/lib/asciimath/symbol_table.rb +25 -0
  17. data/lib/asciimath/version.rb +1 -1
  18. data/spec/ast.rb +144 -0
  19. data/spec/parser_spec.rb +592 -165
  20. data/spec/schema/mathml2/common/common-attribs.xsd +41 -0
  21. data/spec/schema/mathml2/common/math.xsd +126 -0
  22. data/spec/schema/mathml2/common/xlink-href.xsd +20 -0
  23. data/spec/schema/mathml2/content/arith.xsd +90 -0
  24. data/spec/schema/mathml2/content/calculus.xsd +146 -0
  25. data/spec/schema/mathml2/content/common-attrib.xsd +30 -0
  26. data/spec/schema/mathml2/content/constants.xsd +83 -0
  27. data/spec/schema/mathml2/content/constructs.xsd +260 -0
  28. data/spec/schema/mathml2/content/elementary-functions.xsd +117 -0
  29. data/spec/schema/mathml2/content/functions.xsd +73 -0
  30. data/spec/schema/mathml2/content/linear-algebra.xsd +173 -0
  31. data/spec/schema/mathml2/content/logic.xsd +53 -0
  32. data/spec/schema/mathml2/content/relations.xsd +55 -0
  33. data/spec/schema/mathml2/content/semantics.xsd +85 -0
  34. data/spec/schema/mathml2/content/sets.xsd +236 -0
  35. data/spec/schema/mathml2/content/statistics.xsd +136 -0
  36. data/spec/schema/mathml2/content/tokens.xsd +120 -0
  37. data/spec/schema/mathml2/content/vector-calculus.xsd +88 -0
  38. data/spec/schema/mathml2/mathml2.xsd +59 -0
  39. data/spec/schema/mathml2/presentation/action.xsd +44 -0
  40. data/spec/schema/mathml2/presentation/characters.xsd +37 -0
  41. data/spec/schema/mathml2/presentation/common-attribs.xsd +113 -0
  42. data/spec/schema/mathml2/presentation/common-types.xsd +103 -0
  43. data/spec/schema/mathml2/presentation/error.xsd +40 -0
  44. data/spec/schema/mathml2/presentation/layout.xsd +195 -0
  45. data/spec/schema/mathml2/presentation/scripts.xsd +186 -0
  46. data/spec/schema/mathml2/presentation/space.xsd +52 -0
  47. data/spec/schema/mathml2/presentation/style.xsd +69 -0
  48. data/spec/schema/mathml2/presentation/table.xsd +216 -0
  49. data/spec/schema/mathml2/presentation/tokens.xsd +124 -0
  50. data/spec/schema/mathml3/mathml3-common.xsd +99 -0
  51. data/spec/schema/mathml3/mathml3-content.xsd +684 -0
  52. data/spec/schema/mathml3/mathml3-presentation.xsd +2151 -0
  53. data/spec/schema/mathml3/mathml3-strict-content.xsd +186 -0
  54. data/spec/schema/mathml3/mathml3.xsd +9 -0
  55. metadata +102 -10
  56. data/.gitignore +0 -16
  57. data/.travis.yml +0 -18
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <xs:schema
4
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
+ xmlns="http://www.w3.org/1998/Math/MathML"
6
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
7
+ elementFormDefault="qualified"
8
+ >
9
+
10
+ <xs:annotation>
11
+ <xs:documentation>
12
+ This is the XML Schema module for the MathML "mglyph" element.
13
+ Author: St&#233;phane Dalmas, INRIA.
14
+ </xs:documentation>
15
+ </xs:annotation>
16
+
17
+ <xs:attributeGroup name="mglyph.attlist">
18
+ <xs:attribute name="alt" type="xs:string"/>
19
+ <xs:attribute name="fontfamily" type="xs:string"/>
20
+ <xs:attribute name="index" type="xs:positiveInteger"/>
21
+ </xs:attributeGroup>
22
+
23
+ <xs:complexType name="mglyph.type">
24
+ <xs:attributeGroup ref="mglyph.attlist"/>
25
+ </xs:complexType>
26
+
27
+ <xs:element name="mglyph" type="mglyph.type"/>
28
+
29
+ </xs:schema>
30
+
31
+
32
+ <!--
33
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
34
+ of Technology, Institut National de Recherche en Informatique et en
35
+ Automatique, Keio University). All Rights Reserved. See
36
+ http://www.w3.org/Consortium/Legal/.
37
+ -->
@@ -0,0 +1,113 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <xs:schema
4
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
+ xmlns="http://www.w3.org/1998/Math/MathML"
6
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
7
+ elementFormDefault="qualified"
8
+ >
9
+
10
+ <xs:annotation>
11
+ <xs:documentation>
12
+ This schema module defines sets of attributes common to several elements
13
+ of presentation MathML.
14
+ Author: St&#233;phane Dalmas, INRIA.
15
+ </xs:documentation>
16
+ </xs:annotation>
17
+
18
+ <!-- The mathematics style attributes. These attributes are valid on all
19
+ presentation token elements except "mspace" and "mglyph", and on no
20
+ other elements except "mstyle". -->
21
+
22
+ <xs:attributeGroup name="Token-style.attrib">
23
+ <xs:attribute name="mathvariant">
24
+ <xs:simpleType>
25
+ <xs:restriction base="xs:string">
26
+ <xs:enumeration value="normal"/>
27
+ <xs:enumeration value="bold"/>
28
+ <xs:enumeration value="italic"/>
29
+ <xs:enumeration value="bold-italic"/>
30
+ <xs:enumeration value="double-struck"/>
31
+ <xs:enumeration value="bold-fraktur"/>
32
+ <xs:enumeration value="script"/>
33
+ <xs:enumeration value="bold-script"/>
34
+ <xs:enumeration value="fraktur"/>
35
+ <xs:enumeration value="sans-serif"/>
36
+ <xs:enumeration value="bold-sans-serif"/>
37
+ <xs:enumeration value="sans-serif-italic"/>
38
+ <xs:enumeration value="sans-serif-bold-italic"/>
39
+ <xs:enumeration value="monospace"/>
40
+ </xs:restriction>
41
+ </xs:simpleType>
42
+ </xs:attribute>
43
+ <xs:attribute name="mathsize">
44
+ <xs:simpleType>
45
+ <xs:union memberTypes="simple-size length-with-unit"/>
46
+ </xs:simpleType>
47
+ </xs:attribute>
48
+ <!-- For both of the following attributes the types should be
49
+ more restricted -->
50
+ <xs:attribute name="mathcolor" type="xs:string"/>
51
+ <xs:attribute name="mathbackground" type="xs:string"/>
52
+ </xs:attributeGroup>
53
+
54
+ <!-- These operators are all related to operators. They are valid on "mo"
55
+ and "mstyle". -->
56
+
57
+ <xs:attributeGroup name="Operator.attrib">
58
+ <!-- this attribute value is normally inferred from the position of
59
+ the operator in its "<mrow"> -->
60
+ <xs:attribute name="form">
61
+ <xs:simpleType>
62
+ <xs:restriction base="xs:string">
63
+ <xs:enumeration value="prefix"/>
64
+ <xs:enumeration value="infix"/>
65
+ <xs:enumeration value="postfix"/>
66
+ </xs:restriction>
67
+ </xs:simpleType>
68
+ </xs:attribute>
69
+ <!-- set by dictionnary, else it is "thickmathspace" -->
70
+ <xs:attribute name="lspace">
71
+ <xs:simpleType>
72
+ <xs:union memberTypes="length-with-unit named-space"/>
73
+ </xs:simpleType>
74
+ </xs:attribute>
75
+ <!-- set by dictionnary, else it is "thickmathspace" -->
76
+ <xs:attribute name="rspace">
77
+ <xs:simpleType>
78
+ <xs:union memberTypes="length-with-unit named-space"/>
79
+ </xs:simpleType>
80
+ </xs:attribute>
81
+ <!-- set by dictionnary, else it is "false" -->
82
+ <xs:attribute name="fence" type="xs:boolean"/>
83
+ <!-- set by dictionnary, else it is "false" -->
84
+ <xs:attribute name="separator" type="xs:boolean"/>
85
+ <!-- set by dictionnary, else it is "false" -->
86
+ <xs:attribute name="stretchy" type="xs:boolean"/>
87
+ <!-- set by dictionnary, else it is "true" -->
88
+ <xs:attribute name="symmetric" type="xs:boolean"/>
89
+ <!-- set by dictionnary, else it is "false" -->
90
+ <xs:attribute name="movablelimits" type="xs:boolean"/>
91
+ <!-- set by dictionnary, else it is "false" -->
92
+ <xs:attribute name="accent" type="xs:boolean"/>
93
+ <!-- set by dictionnary, else it is "false" -->
94
+ <xs:attribute name="largeop" type="xs:boolean"/>
95
+ <xs:attribute name="minsize">
96
+ <xs:simpleType>
97
+ <xs:union memberTypes="length-with-unit named-space"/>
98
+ </xs:simpleType>
99
+ </xs:attribute>
100
+ <xs:attribute name="maxsize">
101
+ <xs:simpleType>
102
+ <xs:union memberTypes="length-with-unit named-space infinity xs:float"/>
103
+ </xs:simpleType>
104
+ </xs:attribute>
105
+ </xs:attributeGroup>
106
+
107
+ </xs:schema>
108
+ <!--
109
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
110
+ of Technology, Institut National de Recherche en Informatique et en
111
+ Automatique, Keio University). All Rights Reserved. See
112
+ http://www.w3.org/Consortium/Legal/.
113
+ -->
@@ -0,0 +1,103 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <xs:schema
4
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
+ xmlns="http://www.w3.org/1998/Math/MathML"
6
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
7
+ elementFormDefault="qualified"
8
+ >
9
+
10
+ <xs:annotation>
11
+ <xs:documentation>
12
+ This is an XML Schema module containing some type definitions for MathML.
13
+ Author: St&#233;phane Dalmas, INRIA.
14
+ </xs:documentation>
15
+ </xs:annotation>
16
+
17
+ <!-- Simple sizes -->
18
+
19
+ <xs:simpleType name="simple-size">
20
+ <xs:restriction base="xs:string">
21
+ <xs:enumeration value="small"/>
22
+ <xs:enumeration value="normal"/>
23
+ <xs:enumeration value="big"/>
24
+ </xs:restriction>
25
+ </xs:simpleType>
26
+
27
+ <!-- Centering values -->
28
+
29
+ <xs:simpleType name="centering">
30
+ <xs:restriction base="xs:string">
31
+ <xs:enumeration value="left"/>
32
+ <xs:enumeration value="center"/>
33
+ <xs:enumeration value="right"/>
34
+ </xs:restriction>
35
+ </xs:simpleType>
36
+
37
+ <!-- The named spaces -->
38
+
39
+ <!-- this is also used in the value of the "width" attribute on the
40
+ "mpadded" element -->
41
+ <xs:simpleType name="named-space">
42
+ <xs:restriction base="xs:string">
43
+ <xs:enumeration value="veryverythinmathspace"/>
44
+ <xs:enumeration value="verythinmathspace"/>
45
+ <xs:enumeration value="thinmathspace"/>
46
+ <xs:enumeration value="mediummathspace"/>
47
+ <xs:enumeration value="thickmathspace"/>
48
+ <xs:enumeration value="verythickmathspace"/>
49
+ <xs:enumeration value="veryverythickmathspace"/>
50
+ </xs:restriction>
51
+ </xs:simpleType>
52
+
53
+ <!-- Thickness -->
54
+
55
+ <xs:simpleType name="thickness">
56
+ <xs:restriction base="xs:string">
57
+ <xs:enumeration value="thin"/>
58
+ <xs:enumeration value="medium"/>
59
+ <xs:enumeration value="thick"/>
60
+ </xs:restriction>
61
+ </xs:simpleType>
62
+
63
+
64
+ <!-- number with units used to specified lengths -->
65
+
66
+ <xs:simpleType name="length-with-unit">
67
+ <xs:restriction base="xs:string">
68
+ <xs:pattern
69
+ value="(-?([0-9]+|[0-9]*\.[0-9]+)*(em|ex|px|in|cm|mm|pt|pc|%))|0"/>
70
+ </xs:restriction>
71
+ </xs:simpleType>
72
+
73
+ <xs:simpleType name="length-with-optional-unit">
74
+ <xs:restriction base="xs:string">
75
+ <xs:pattern
76
+ value="-?([0-9]+|[0-9]*\.[0-9]+)*(em|ex|px|in|cm|mm|pt|pc|%)?"/>
77
+ </xs:restriction>
78
+ </xs:simpleType>
79
+
80
+ <!-- This is just "infinity" that can be used as a length -->
81
+
82
+ <xs:simpleType name="infinity">
83
+ <xs:restriction base="xs:string">
84
+ <xs:enumeration value="infinity"/>
85
+ </xs:restriction>
86
+ </xs:simpleType>
87
+
88
+ <!-- colors defined as RGB -->
89
+
90
+ <xs:simpleType name="RGB-color">
91
+ <xs:restriction base="xs:string">
92
+ <xs:pattern value="#(([0-9]|[a-f]){3}|([0-9]|[a-f]){6})"/>
93
+ </xs:restriction>
94
+ </xs:simpleType>
95
+
96
+ </xs:schema>
97
+
98
+ <!--
99
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
100
+ of Technology, Institut National de Recherche en Informatique et en
101
+ Automatique, Keio University). All Rights Reserved. See
102
+ http://www.w3.org/Consortium/Legal/.
103
+ -->
@@ -0,0 +1,40 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <xs:schema
4
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
+ xmlns="http://www.w3.org/1998/Math/MathML"
6
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
7
+ elementFormDefault="qualified"
8
+ >
9
+
10
+ <xs:annotation>
11
+ <xs:documentation>
12
+ This is the XML Schema module for the MathML "merror" element.
13
+ Author: St&#233;phane Dalmas, INRIA.
14
+ </xs:documentation>
15
+ </xs:annotation>
16
+
17
+ <xs:attributeGroup name="merror.attlist">
18
+ <xs:attributeGroup ref="Common.attrib"/>
19
+ </xs:attributeGroup>
20
+
21
+ <xs:group name="merror.content">
22
+ <xs:sequence>
23
+ <xs:group ref="Presentation-expr.class"/>
24
+ </xs:sequence>
25
+ </xs:group>
26
+
27
+ <xs:complexType name="merror.type">
28
+ <xs:group ref="merror.content" minOccurs="0" maxOccurs="unbounded"/>
29
+ <xs:attributeGroup ref="merror.attlist"/>
30
+ </xs:complexType>
31
+
32
+ <xs:element name="merror" type="merror.type"/>
33
+
34
+ </xs:schema>
35
+ <!--
36
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
37
+ of Technology, Institut National de Recherche en Informatique et en
38
+ Automatique, Keio University). All Rights Reserved. See
39
+ http://www.w3.org/Consortium/Legal/.
40
+ -->
@@ -0,0 +1,195 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <xs:schema
4
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
+ xmlns="http://www.w3.org/1998/Math/MathML"
6
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
7
+ elementFormDefault="qualified"
8
+ >
9
+ <xs:annotation>
10
+ <xs:documentation>
11
+ This is the XML schema module for the layout elements of the
12
+ presentation part of MathML.
13
+ Author: St&#233;phane Dalmas, INRIA.
14
+ </xs:documentation>
15
+ </xs:annotation>
16
+
17
+ <!-- "mrow" -->
18
+
19
+ <xs:attributeGroup name="mrow.attlist">
20
+ <xs:attributeGroup ref="Common.attrib"/>
21
+ </xs:attributeGroup>
22
+
23
+ <xs:complexType name="mrow.type">
24
+ <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/>
25
+ <xs:attributeGroup ref="mrow.attlist"/>
26
+ </xs:complexType>
27
+
28
+ <xs:element name="mrow" type="mrow.type"/>
29
+
30
+ <!-- "mfrac" -->
31
+
32
+ <xs:attributeGroup name="mfrac.attlist">
33
+ <xs:attribute name="bevelled" type="xs:boolean"/>
34
+ <xs:attribute name="denomalign" type="centering" default="center"/>
35
+ <xs:attribute name="numalign" type="centering" default="center"/>
36
+ <xs:attribute name="linethickness" default="1">
37
+ <xs:simpleType>
38
+ <xs:union memberTypes="length-with-optional-unit thickness"/>
39
+ </xs:simpleType>
40
+ </xs:attribute>
41
+ <xs:attributeGroup ref="Common.attrib"/>
42
+ </xs:attributeGroup>
43
+
44
+ <xs:complexType name="mfrac.type">
45
+ <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/>
46
+ <xs:attributeGroup ref="mfrac.attlist"/>
47
+ </xs:complexType>
48
+
49
+ <xs:element name="mfrac" type="mfrac.type"/>
50
+
51
+ <!-- "msqrt" -->
52
+
53
+ <xs:attributeGroup name="msqrt.attlist">
54
+ <xs:attributeGroup ref="Common.attrib"/>
55
+ </xs:attributeGroup>
56
+
57
+ <!-- "msqrt" has an "inferred mrow" if more than one argument -->
58
+ <xs:complexType name="msqrt.type">
59
+ <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/>
60
+ <xs:attributeGroup ref="msqrt.attlist"/>
61
+ </xs:complexType>
62
+
63
+ <xs:element name="msqrt" type="msqrt.type"/>
64
+
65
+ <!-- "mroot" -->
66
+
67
+ <xs:attributeGroup name="mroot.attlist">
68
+ <xs:attributeGroup ref="Common.attrib"/>
69
+ </xs:attributeGroup>
70
+
71
+ <xs:complexType name="mroot.type">
72
+ <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/>
73
+ <xs:attributeGroup ref="mroot.attlist"/>
74
+ </xs:complexType>
75
+
76
+ <xs:element name="mroot" type="mroot.type"/>
77
+
78
+ <!-- "mpadded" -->
79
+
80
+ <xs:simpleType name="mpadded-space">
81
+ <xs:restriction base="xs:string">
82
+ <xs:pattern
83
+ value="(\+|-)?([0-9]+|[0-9]*\.[0-9]+)(((%?) *(width|lspace|height|depth))|(em|ex|px|in|cm|mm|pt|pc))"/>
84
+ </xs:restriction>
85
+ </xs:simpleType>
86
+
87
+ <xs:simpleType name="mpadded-width-space">
88
+ <xs:restriction base="xs:string">
89
+ <!-- MaxF: definition from spec seems wrong, fixing to ([+|-] unsigned-number (%[pseudo-unit]|pseudo-unit|h-unit)) | namedspace | 0 -->
90
+ <xs:pattern value="((\+|-)?([0-9]+|[0-9]*\.[0-9]+)(((%?) *(width|lspace|height|depth)?)|(width|lspace|height|depth)|(em|ex|px|in|cm|mm|pt|pc)))|((veryverythin|verythin|thin|medium|thick|verythick|veryverythick)mathspace)|0"/>
91
+ </xs:restriction>
92
+ </xs:simpleType>
93
+
94
+ <xs:attributeGroup name="mpadded.attlist">
95
+ <xs:attribute name="width" type="mpadded-width-space"/>
96
+ <!-- should have default=0 below but '0' is not in value space -->
97
+ <!-- see bug #425 -->
98
+ <xs:attribute name="lspace" type="mpadded-space"/>
99
+ <xs:attribute name="height" type="mpadded-space"/>
100
+ <xs:attribute name="depth" type="mpadded-space"/>
101
+ <xs:attributeGroup ref="Common.attrib"/>
102
+ </xs:attributeGroup>
103
+
104
+ <xs:complexType name="mpadded.type">
105
+ <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/>
106
+ <xs:attributeGroup ref="mpadded.attlist"/>
107
+ </xs:complexType>
108
+
109
+ <xs:element name="mpadded" type="mpadded.type"/>
110
+
111
+ <!-- "mphantom" -->
112
+
113
+ <xs:attributeGroup name="mphantom.attlist">
114
+ <xs:attributeGroup ref="Common.attrib"/>
115
+ </xs:attributeGroup>
116
+
117
+ <xs:complexType name="mphantom.type">
118
+ <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/>
119
+ <xs:attributeGroup ref="mphantom.attlist"/>
120
+ </xs:complexType>
121
+
122
+ <xs:element name="mphantom" type="mphantom.type"/>
123
+
124
+ <!-- "mfenced" -->
125
+
126
+ <xs:attributeGroup name="mfenced.attlist">
127
+ <xs:attribute name="open" type="xs:string" default="("/>
128
+ <xs:attribute name="close" type="xs:string" default=")"/>
129
+ <xs:attribute name="separators" type="xs:string" default=","/>
130
+ <xs:attributeGroup ref="Common.attrib"/>
131
+ </xs:attributeGroup>
132
+
133
+ <xs:complexType name="mfenced.type">
134
+ <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/>
135
+ <xs:attributeGroup ref="mfenced.attlist"/>
136
+ </xs:complexType>
137
+
138
+ <xs:element name="mfenced" type="mfenced.type"/>
139
+
140
+ <!-- "menclose" -->
141
+
142
+ <xs:attributeGroup name="menclose.attlist">
143
+ <xs:attribute name="notation" default="longdiv">
144
+ <xs:simpleType>
145
+ <xs:restriction base="xs:string">
146
+ <xs:enumeration value="actuarial"/>
147
+ <xs:enumeration value="longdiv"/>
148
+ <xs:enumeration value="radical"/>
149
+ <xs:enumeration value="box"/>
150
+ <xs:enumeration value="roundedbox"/>
151
+ <xs:enumeration value="circle"/>
152
+ <xs:enumeration value="left"/>
153
+ <xs:enumeration value="right"/>
154
+ <xs:enumeration value="top"/>
155
+ <xs:enumeration value="bottom"/>
156
+ <xs:enumeration value="updiagonalstrike"/>
157
+ <xs:enumeration value="downdiagonalstrike"/>
158
+ <xs:enumeration value="verticalstrike"/>
159
+ <xs:enumeration value="horizontalstrike"/>
160
+ </xs:restriction>
161
+ </xs:simpleType>
162
+ </xs:attribute>
163
+ <xs:attributeGroup ref="Common.attrib"/>
164
+ </xs:attributeGroup>
165
+
166
+ <xs:complexType name="menclose.type">
167
+ <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/>
168
+ <xs:attributeGroup ref="menclose.attlist"/>
169
+ </xs:complexType>
170
+
171
+ <xs:element name="menclose" type="menclose.type"/>
172
+
173
+ <!-- And the group of everything -->
174
+
175
+ <xs:group name="Presentation-layout.class">
176
+ <xs:choice>
177
+ <xs:element ref="mrow"/>
178
+ <xs:element ref="mfrac"/>
179
+ <xs:element ref="msqrt"/>
180
+ <xs:element ref="mroot"/>
181
+ <xs:element ref="mpadded"/>
182
+ <xs:element ref="mphantom"/>
183
+ <xs:element ref="mfenced"/>
184
+ <xs:element ref="menclose"/>
185
+ </xs:choice>
186
+ </xs:group>
187
+
188
+ </xs:schema>
189
+
190
+ <!--
191
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
192
+ of Technology, Institut National de Recherche en Informatique et en
193
+ Automatique, Keio University). All Rights Reserved. See
194
+ http://www.w3.org/Consortium/Legal/.
195
+ -->