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,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
+ -->