asciimath 1.0.9 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
+ -->