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,186 @@
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 for the presentation elements of MathML
13
+ dealing with subscripts and superscripts.
14
+ Author: St&#233;phane Dalmas, INRIA.
15
+ </xs:documentation>
16
+ </xs:annotation>
17
+
18
+ <!-- "msub" -->
19
+
20
+ <xs:attributeGroup name="msub.attlist">
21
+ <xs:attribute name="subscriptshift" type="length-with-unit"/>
22
+ <xs:attributeGroup ref="Common.attrib"/>
23
+ </xs:attributeGroup>
24
+
25
+ <xs:complexType name="msub.type">
26
+ <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/>
27
+ <xs:attributeGroup ref="msub.attlist"/>
28
+ </xs:complexType>
29
+
30
+ <xs:element name="msub" type="msub.type"/>
31
+
32
+ <!-- "msup" -->
33
+
34
+ <xs:attributeGroup name="msup.attlist">
35
+ <xs:attribute name="superscriptshift" type="length-with-unit"/>
36
+ <xs:attributeGroup ref="Common.attrib"/>
37
+ </xs:attributeGroup>
38
+
39
+ <xs:complexType name="msup.type">
40
+ <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/>
41
+ <xs:attributeGroup ref="msup.attlist"/>
42
+ </xs:complexType>
43
+
44
+ <xs:element name="msup" type="msup.type"/>
45
+
46
+ <!-- "msubsup" -->
47
+
48
+ <xs:attributeGroup name="msubsup.attlist">
49
+ <xs:attribute name="subscriptshift" type="length-with-unit"/>
50
+ <xs:attribute name="superscriptshift" type="length-with-unit"/>
51
+ <xs:attributeGroup ref="Common.attrib"/>
52
+ </xs:attributeGroup>
53
+
54
+ <xs:complexType name="msubsup.type">
55
+ <xs:group ref="Presentation-expr.class" minOccurs="3" maxOccurs="3"/>
56
+ <xs:attributeGroup ref="msubsup.attlist"/>
57
+ </xs:complexType>
58
+
59
+ <xs:element name="msubsup" type="msubsup.type"/>
60
+
61
+ <!-- "munder" -->
62
+
63
+ <xs:attributeGroup name="munder.attlist">
64
+ <xs:attribute name="accentunder" type="xs:boolean"/>
65
+ <xs:attributeGroup ref="Common.attrib"/>
66
+ </xs:attributeGroup>
67
+
68
+ <xs:complexType name="munder.type">
69
+ <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/>
70
+ <xs:attributeGroup ref="munder.attlist"/>
71
+ </xs:complexType>
72
+
73
+ <xs:element name="munder" type="munder.type"/>
74
+
75
+ <!-- "mover" -->
76
+
77
+ <xs:attributeGroup name="mover.attlist">
78
+ <xs:attribute name="accent" type="xs:boolean"/>
79
+ <xs:attributeGroup ref="Common.attrib"/>
80
+ </xs:attributeGroup>
81
+
82
+ <xs:complexType name="mover.type">
83
+ <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/>
84
+ <xs:attributeGroup ref="mover.attlist"/>
85
+ </xs:complexType>
86
+
87
+ <xs:element name="mover" type="mover.type"/>
88
+
89
+ <!-- "munderover" -->
90
+
91
+ <xs:attributeGroup name="munderover.attlist">
92
+ <xs:attribute name="accent" type="xs:boolean"/>
93
+ <xs:attribute name="accentunder" type="xs:boolean"/>
94
+ <xs:attributeGroup ref="Common.attrib"/>
95
+ </xs:attributeGroup>
96
+
97
+ <xs:complexType name="munderover.type">
98
+ <xs:group ref="Presentation-expr.class" minOccurs="3" maxOccurs="3"/>
99
+ <xs:attributeGroup ref="munderover.attlist"/>
100
+ </xs:complexType>
101
+
102
+ <xs:element name="munderover" type="munderover.type"/>
103
+
104
+ <!-- "mmultiscripts", "mprescripts" and "none" -->
105
+
106
+ <xs:attributeGroup name="mmultiscripts.attlist">
107
+ <xs:attributeGroup ref="Common.attrib"/>
108
+ </xs:attributeGroup>
109
+
110
+ <xs:group name="Presentation-expr-or-none.class">
111
+ <xs:choice>
112
+ <xs:group ref="Presentation-expr.class"/>
113
+ <xs:element ref="none"/>
114
+ </xs:choice>
115
+ </xs:group>
116
+
117
+ <!-- not used
118
+ <xs:group name="mprescripts.group">
119
+ <xs:sequence>
120
+ <xs:element ref="mprescripts"/>
121
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
122
+ <xs:group ref="Presentation-expr.class"/>
123
+ <xs:element ref="none"/>
124
+ </xs:choice>
125
+ </xs:sequence>
126
+ </xs:group>
127
+ -->
128
+
129
+ <xs:group name="mmultiscripts.content">
130
+ <xs:sequence>
131
+ <xs:group ref="Presentation-expr.class"/>
132
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
133
+ <xs:group ref="Presentation-expr-or-none.class"/>
134
+ <xs:group ref="Presentation-expr-or-none.class"/>
135
+ </xs:sequence>
136
+ <xs:sequence minOccurs="0">
137
+ <xs:element ref="mprescripts"/>
138
+ <xs:sequence maxOccurs="unbounded">
139
+ <xs:group ref="Presentation-expr-or-none.class"/>
140
+ <xs:group ref="Presentation-expr-or-none.class"/>
141
+ </xs:sequence>
142
+ </xs:sequence>
143
+ </xs:sequence>
144
+ </xs:group>
145
+
146
+ <xs:complexType name="mmultiscripts.type">
147
+ <xs:group ref="mmultiscripts.content"/>
148
+ <xs:attributeGroup ref="mmultiscripts.attlist"/>
149
+ </xs:complexType>
150
+
151
+ <xs:element name="mmultiscripts" type="mmultiscripts.type"/>
152
+
153
+ <!-- Nothing... -->
154
+ <xs:complexType name="none.type">
155
+ </xs:complexType>
156
+
157
+ <xs:element name="none" type="none.type"/>
158
+
159
+ <!-- also void -->
160
+ <xs:complexType name="mprescripts.type">
161
+ </xs:complexType>
162
+
163
+ <xs:element name="mprescripts" type="mprescripts.type"/>
164
+
165
+ <!-- And the group of everything -->
166
+
167
+ <xs:group name="Presentation-script.class">
168
+ <xs:choice>
169
+ <xs:element ref="msub"/>
170
+ <xs:element ref="msup"/>
171
+ <xs:element ref="msubsup"/>
172
+ <xs:element ref="munder"/>
173
+ <xs:element ref="mover"/>
174
+ <xs:element ref="munderover"/>
175
+ <xs:element ref="mmultiscripts"/>
176
+ </xs:choice>
177
+ </xs:group>
178
+
179
+ </xs:schema>
180
+
181
+ <!--
182
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
183
+ of Technology, Institut National de Recherche en Informatique et en
184
+ Automatique, Keio University). All Rights Reserved. See
185
+ http://www.w3.org/Consortium/Legal/.
186
+ -->
@@ -0,0 +1,52 @@
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 "mspace" element.
13
+ Author: St&#233;phane Dalmas, INRIA.
14
+ </xs:documentation>
15
+ </xs:annotation>
16
+
17
+ <xs:attributeGroup name="mspace.attlist">
18
+ <xs:attribute name="width" default="0em">
19
+ <xs:simpleType>
20
+ <xs:union memberTypes="length-with-unit named-space"/>
21
+ </xs:simpleType>
22
+ </xs:attribute>
23
+ <xs:attribute name="height" type="length-with-unit" default="0ex"/>
24
+ <xs:attribute name="depth" type="length-with-unit" default="0ex"/>
25
+ <xs:attribute name="linebreak" default="auto">
26
+ <xs:simpleType>
27
+ <xs:restriction base="xs:string">
28
+ <xs:enumeration value="auto"/>
29
+ <xs:enumeration value="newline"/>
30
+ <xs:enumeration value="indentingnewline"/>
31
+ <xs:enumeration value="nobreak"/>
32
+ <xs:enumeration value="goodbreak"/>
33
+ <xs:enumeration value="badbreak"/>
34
+ </xs:restriction>
35
+ </xs:simpleType>
36
+ </xs:attribute>
37
+ <xs:attributeGroup ref="Common.attrib"/>
38
+ </xs:attributeGroup>
39
+
40
+ <xs:complexType name="mspace.type">
41
+ <xs:attributeGroup ref="mspace.attlist"/>
42
+ </xs:complexType>
43
+
44
+ <xs:element name="mspace" type="mspace.type"/>
45
+
46
+ </xs:schema>
47
+ <!--
48
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
49
+ of Technology, Institut National de Recherche en Informatique et en
50
+ Automatique, Keio University). All Rights Reserved. See
51
+ http://www.w3.org/Consortium/Legal/.
52
+ -->
@@ -0,0 +1,69 @@
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 for the "mstyle" element of MathML.
13
+ Author: St&#233;phane Dalmas, INRIA.
14
+ </xs:documentation>
15
+ </xs:annotation>
16
+
17
+ <!-- "mstyle" -->
18
+
19
+ <xs:attributeGroup name="mstyle.attlist">
20
+ <xs:attribute name="scriptlevel" type="xs:integer"/>
21
+ <xs:attribute name="displaystyle" type="xs:boolean"/>
22
+ <xs:attribute name="scriptsizemultiplier" type="xs:decimal" default="0.71"/>
23
+ <xs:attribute name="scriptminsize" type="length-with-unit" default="8pt"/>
24
+ <xs:attribute name="color" type="xs:string"/>
25
+ <xs:attribute name="background" type="xs:string" default="transparent"/>
26
+ <xs:attribute name="veryverythinmathspace" type="length-with-unit"
27
+ default="0.0555556em"/>
28
+ <xs:attribute name="verythinmathspace" type="length-with-unit"
29
+ default="0.111111em"/>
30
+ <xs:attribute name="thinmathspace" type="length-with-unit"
31
+ default="0.166667em"/>
32
+ <xs:attribute name="mediummathspace" type="length-with-unit"
33
+ default="0.222222em"/>
34
+ <xs:attribute name="thickmathspace" type="length-with-unit"
35
+ default="0.277778em"/>
36
+ <xs:attribute name="verythickmathspace" type="length-with-unit"
37
+ default="0.333333em"/>
38
+ <xs:attribute name="veryverythickmathspace" type="length-with-unit"
39
+ default="0.388889em"/>
40
+ <xs:attribute name="linethickness" default="1">
41
+ <xs:simpleType>
42
+ <xs:union memberTypes="length-with-optional-unit thickness"/>
43
+ </xs:simpleType>
44
+ </xs:attribute>
45
+ <xs:attributeGroup ref="Operator.attrib"/>
46
+ <xs:attributeGroup ref="Token-style.attrib"/>
47
+ <xs:attributeGroup ref="Common.attrib"/>
48
+ </xs:attributeGroup>
49
+
50
+ <xs:group name="mstyle.content">
51
+ <xs:sequence>
52
+ <xs:group ref="Presentation-expr.class"/>
53
+ </xs:sequence>
54
+ </xs:group>
55
+
56
+ <xs:complexType name="mstyle.type">
57
+ <xs:group ref="mstyle.content" minOccurs="1" maxOccurs="unbounded"/>
58
+ <xs:attributeGroup ref="mstyle.attlist"/>
59
+ </xs:complexType>
60
+
61
+ <xs:element name="mstyle" type="mstyle.type"/>
62
+
63
+ </xs:schema>
64
+ <!--
65
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
66
+ of Technology, Institut National de Recherche en Informatique et en
67
+ Automatique, Keio University). All Rights Reserved. See
68
+ http://www.w3.org/Consortium/Legal/.
69
+ -->
@@ -0,0 +1,216 @@
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 for tables in MathML presentation.
13
+ Author: St&#233;phane Dalmas, INRIA.
14
+ </xs:documentation>
15
+ </xs:annotation>
16
+
17
+ <!-- Common attributes -->
18
+
19
+ <xs:attributeGroup name="Table-alignment.attrib">
20
+ <xs:attribute name="rowalign" default="baseline">
21
+ <xs:simpleType>
22
+ <xs:restriction base="xs:string">
23
+ <xs:pattern value="(top|bottom|center|baseline|axis)( top| bottom| center| baseline| axis)*"/>
24
+ </xs:restriction>
25
+ </xs:simpleType>
26
+ </xs:attribute>
27
+ <xs:attribute name="columnalign" default="center">
28
+ <xs:simpleType>
29
+ <xs:restriction base="xs:string">
30
+ <xs:pattern value="(left|center|right)( left| center| right)*"/>
31
+ </xs:restriction>
32
+ </xs:simpleType>
33
+ </xs:attribute>
34
+ <xs:attribute name="groupalign" type="xs:string"/>
35
+ </xs:attributeGroup>
36
+
37
+ <!-- "mtr" -->
38
+
39
+ <xs:attributeGroup name="mtr.attlist">
40
+ <xs:attributeGroup ref="Table-alignment.attrib"/>
41
+ <xs:attributeGroup ref="Common.attrib"/>
42
+ </xs:attributeGroup>
43
+
44
+ <xs:group name="mtr.content">
45
+ <xs:sequence>
46
+ <xs:element ref="mtd"/>
47
+ </xs:sequence>
48
+ </xs:group>
49
+
50
+ <xs:complexType name="mtr.type">
51
+ <xs:group ref="mtr.content" minOccurs="1" maxOccurs="unbounded"/>
52
+ <xs:attributeGroup ref="mtr.attlist"/>
53
+ </xs:complexType>
54
+
55
+ <xs:element name="mtr" type="mtr.type"/>
56
+
57
+ <!-- "labeledtr" -->
58
+
59
+ <xs:attributeGroup name="mlabeledtr.attlist">
60
+ <xs:attributeGroup ref="Table-alignment.attrib"/>
61
+ <xs:attributeGroup ref="Common.attrib"/>
62
+ </xs:attributeGroup>
63
+
64
+ <xs:group name="mlabeledtr.content">
65
+ <xs:sequence>
66
+ <xs:element ref="mtd"/>
67
+ </xs:sequence>
68
+ </xs:group>
69
+
70
+ <xs:complexType name="mlabeledtr.type">
71
+ <xs:group ref="mlabeledtr.content" minOccurs="1" maxOccurs="unbounded"/>
72
+ <xs:attributeGroup ref="mlabeledtr.attlist"/>
73
+ </xs:complexType>
74
+
75
+ <xs:element name="mlabeledtr" type="mlabeledtr.type"/>
76
+
77
+ <!-- "mtd" -->
78
+
79
+ <xs:attributeGroup name="mtd.attlist">
80
+ <xs:attributeGroup ref="Table-alignment.attrib"/>
81
+ <xs:attribute name="columnspan" type="xs:positiveInteger" default="1"/>
82
+ <xs:attribute name="rowspan" type="xs:positiveInteger" default="1"/>
83
+ <xs:attributeGroup ref="Common.attrib"/>
84
+ </xs:attributeGroup>
85
+
86
+ <xs:group name="mtd.content">
87
+ <xs:sequence>
88
+ <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="1"/>
89
+ </xs:sequence>
90
+ </xs:group>
91
+
92
+ <xs:complexType name="mtd.type">
93
+ <xs:group ref="mtd.content" minOccurs="1" maxOccurs="unbounded"/>
94
+ <xs:attributeGroup ref="mtd.attlist"/>
95
+ </xs:complexType>
96
+
97
+ <xs:element name="mtd" type="mtd.type"/>
98
+
99
+ <!-- "mtable" -->
100
+
101
+ <xs:attributeGroup name="mtable.attlist">
102
+ <xs:attributeGroup ref="Table-alignment.attrib"/>
103
+ <xs:attribute name="align" type="xs:string" default="axis"/>
104
+ <xs:attribute name="alignmentscope" default="true">
105
+ <xs:simpleType>
106
+ <xs:restriction base="xs:string">
107
+ <xs:pattern value="(true|false)( true| false)*"/>
108
+ </xs:restriction>
109
+ </xs:simpleType>
110
+ </xs:attribute>
111
+ <xs:attribute name="columnwidth" type="xs:string" default="auto"/>
112
+ <xs:attribute name="width" type="xs:string" default="auto"/>
113
+ <xs:attribute name="rowspacing" type="xs:string" default="1.0ex"/>
114
+ <xs:attribute name="columnspacing" type="xs:string" default="0.8em"/>
115
+ <xs:attribute name="rowlines" type="xs:string" default="none"/>
116
+ <xs:attribute name="columnlines" type="xs:string" default="none"/>
117
+ <xs:attribute name="frame" default="none">
118
+ <xs:simpleType>
119
+ <xs:restriction base="xs:string">
120
+ <xs:enumeration value="none"/>
121
+ <xs:enumeration value="solid"/>
122
+ <xs:enumeration value="dashed"/>
123
+ </xs:restriction>
124
+ </xs:simpleType>
125
+ </xs:attribute>
126
+ <xs:attribute name="framespacing" type="xs:string" default="0.4em 0.5ex"/>
127
+ <xs:attribute name="equalrows" type="xs:boolean" default="false"/>
128
+ <xs:attribute name="equalcolumns" type="xs:boolean" default="false"/>
129
+ <xs:attribute name="displaystyle" type="xs:boolean" default="false"/>
130
+ <xs:attribute name="side" default="right">
131
+ <xs:simpleType>
132
+ <xs:restriction base="xs:string">
133
+ <xs:enumeration value="left"/>
134
+ <xs:enumeration value="right"/>
135
+ <xs:enumeration value="leftoverlap"/>
136
+ <xs:enumeration value="rightoverlap"/>
137
+ </xs:restriction>
138
+ </xs:simpleType>
139
+ </xs:attribute>
140
+ <xs:attribute name="minlabelspacing" type="length-with-unit" default="0.8em"/>
141
+ <xs:attributeGroup ref="Common.attrib"/>
142
+ </xs:attributeGroup>
143
+
144
+ <xs:group name="mtable.content">
145
+ <xs:choice>
146
+ <xs:element ref="mtr"/>
147
+ <xs:element ref="mlabeledtr"/>
148
+ </xs:choice>
149
+ </xs:group>
150
+
151
+ <xs:complexType name="mtable.type">
152
+ <xs:group ref="mtable.content" minOccurs="1" maxOccurs="unbounded"/>
153
+ <xs:attributeGroup ref="mtable.attlist"/>
154
+ </xs:complexType>
155
+
156
+ <xs:element name="mtable" type="mtable.type"/>
157
+
158
+ <!-- "maligngroup" -->
159
+
160
+ <xs:attributeGroup name="maligngroup.attlist">
161
+ <xs:attribute name="groupalign">
162
+ <xs:simpleType>
163
+ <xs:restriction base="xs:string">
164
+ <xs:enumeration value="left"/>
165
+ <xs:enumeration value="center"/>
166
+ <xs:enumeration value="right"/>
167
+ <xs:enumeration value="decimalpoint"/>
168
+ </xs:restriction>
169
+ </xs:simpleType>
170
+ </xs:attribute>
171
+ <xs:attributeGroup ref="Common.attrib"/>
172
+ </xs:attributeGroup>
173
+
174
+ <xs:complexType name="maligngroup.type">
175
+ <xs:attributeGroup ref="maligngroup.attlist"/>
176
+ </xs:complexType>
177
+
178
+ <xs:element name="maligngroup" type="maligngroup.type"/>
179
+
180
+ <!-- "malignmark" -->
181
+
182
+ <xs:attributeGroup name="malignmark.attlist">
183
+ <xs:attribute name="edge" default="left">
184
+ <xs:simpleType>
185
+ <xs:restriction base="xs:string">
186
+ <xs:enumeration value="left"/>
187
+ <xs:enumeration value="right"/>
188
+ </xs:restriction>
189
+ </xs:simpleType>
190
+ </xs:attribute>
191
+ <xs:attributeGroup ref="Common.attrib"/>
192
+ </xs:attributeGroup>
193
+
194
+ <xs:complexType name="malignmark.type">
195
+ <xs:attributeGroup ref="malignmark.attlist"/>
196
+ </xs:complexType>
197
+
198
+ <xs:element name="malignmark" type="malignmark.type"/>
199
+
200
+ <!-- The group of everything -->
201
+
202
+ <xs:group name="Presentation-table.class">
203
+ <xs:choice>
204
+ <xs:element ref="mtable"/>
205
+ <xs:element ref="maligngroup"/>
206
+ <xs:element ref="malignmark"/>
207
+ </xs:choice>
208
+ </xs:group>
209
+
210
+ </xs:schema>
211
+ <!--
212
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
213
+ of Technology, Institut National de Recherche en Informatique et en
214
+ Automatique, Keio University). All Rights Reserved. See
215
+ http://www.w3.org/Consortium/Legal/.
216
+ -->