asciimath 1.0.9 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/AST.adoc +457 -0
- data/CHANGELOG.adoc +12 -0
- data/Gemfile.lock +39 -0
- data/README.adoc +27 -3
- data/asciimath.gemspec +9 -5
- data/lib/asciimath.rb +5 -4
- data/lib/asciimath/ast.rb +456 -0
- data/lib/asciimath/cli.rb +4 -1
- data/lib/asciimath/color_table.rb +21 -0
- data/lib/asciimath/html.rb +126 -111
- data/lib/asciimath/latex.rb +386 -0
- data/lib/asciimath/markup.rb +478 -0
- data/lib/asciimath/mathml.rb +189 -87
- data/lib/asciimath/parser.rb +498 -343
- data/lib/asciimath/symbol_table.rb +25 -0
- data/lib/asciimath/version.rb +1 -1
- data/spec/ast.rb +144 -0
- data/spec/parser_spec.rb +592 -165
- data/spec/schema/mathml2/common/common-attribs.xsd +41 -0
- data/spec/schema/mathml2/common/math.xsd +126 -0
- data/spec/schema/mathml2/common/xlink-href.xsd +20 -0
- data/spec/schema/mathml2/content/arith.xsd +90 -0
- data/spec/schema/mathml2/content/calculus.xsd +146 -0
- data/spec/schema/mathml2/content/common-attrib.xsd +30 -0
- data/spec/schema/mathml2/content/constants.xsd +83 -0
- data/spec/schema/mathml2/content/constructs.xsd +260 -0
- data/spec/schema/mathml2/content/elementary-functions.xsd +117 -0
- data/spec/schema/mathml2/content/functions.xsd +73 -0
- data/spec/schema/mathml2/content/linear-algebra.xsd +173 -0
- data/spec/schema/mathml2/content/logic.xsd +53 -0
- data/spec/schema/mathml2/content/relations.xsd +55 -0
- data/spec/schema/mathml2/content/semantics.xsd +85 -0
- data/spec/schema/mathml2/content/sets.xsd +236 -0
- data/spec/schema/mathml2/content/statistics.xsd +136 -0
- data/spec/schema/mathml2/content/tokens.xsd +120 -0
- data/spec/schema/mathml2/content/vector-calculus.xsd +88 -0
- data/spec/schema/mathml2/mathml2.xsd +59 -0
- data/spec/schema/mathml2/presentation/action.xsd +44 -0
- data/spec/schema/mathml2/presentation/characters.xsd +37 -0
- data/spec/schema/mathml2/presentation/common-attribs.xsd +113 -0
- data/spec/schema/mathml2/presentation/common-types.xsd +103 -0
- data/spec/schema/mathml2/presentation/error.xsd +40 -0
- data/spec/schema/mathml2/presentation/layout.xsd +195 -0
- data/spec/schema/mathml2/presentation/scripts.xsd +186 -0
- data/spec/schema/mathml2/presentation/space.xsd +52 -0
- data/spec/schema/mathml2/presentation/style.xsd +69 -0
- data/spec/schema/mathml2/presentation/table.xsd +216 -0
- data/spec/schema/mathml2/presentation/tokens.xsd +124 -0
- data/spec/schema/mathml3/mathml3-common.xsd +99 -0
- data/spec/schema/mathml3/mathml3-content.xsd +684 -0
- data/spec/schema/mathml3/mathml3-presentation.xsd +2151 -0
- data/spec/schema/mathml3/mathml3-strict-content.xsd +186 -0
- data/spec/schema/mathml3/mathml3.xsd +9 -0
- metadata +102 -10
- data/.gitignore +0 -16
- data/.travis.yml +0 -18
@@ -0,0 +1,73 @@
|
|
1
|
+
<xs:schema
|
2
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
3
|
+
xmlns="http://www.w3.org/1998/Math/MathML"
|
4
|
+
targetNamespace="http://www.w3.org/1998/Math/MathML"
|
5
|
+
elementFormDefault="qualified"
|
6
|
+
>
|
7
|
+
|
8
|
+
|
9
|
+
<xs:annotation>
|
10
|
+
<xs:documentation>
|
11
|
+
This is an XML Schema module for operators dealing with functions in content
|
12
|
+
MathML.
|
13
|
+
Author: Stéphane Dalmas, INRIA.
|
14
|
+
</xs:documentation>
|
15
|
+
</xs:annotation>
|
16
|
+
|
17
|
+
<!-- a common type for all this -->
|
18
|
+
|
19
|
+
<xs:complexType name="Functions.type">
|
20
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
21
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
22
|
+
</xs:complexType>
|
23
|
+
|
24
|
+
<!-- "compose" -->
|
25
|
+
|
26
|
+
<xs:element name="compose" type="Functions.type"/>
|
27
|
+
|
28
|
+
<!-- Domain, codomain and image -->
|
29
|
+
|
30
|
+
<xs:element name="domain" type="Functions.type"/>
|
31
|
+
<xs:element name="codomain" type="Functions.type"/>
|
32
|
+
<xs:element name="image" type="Functions.type"/>
|
33
|
+
|
34
|
+
<!-- "domainofapplication" -->
|
35
|
+
|
36
|
+
<xs:group name="domainofapplication.content">
|
37
|
+
<xs:sequence>
|
38
|
+
<xs:group ref="Content-expr.class"/>
|
39
|
+
</xs:sequence>
|
40
|
+
</xs:group>
|
41
|
+
|
42
|
+
<xs:complexType name="domainofapplication.type">
|
43
|
+
<xs:group ref="domainofapplication.content"/>
|
44
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
45
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
46
|
+
</xs:complexType>
|
47
|
+
|
48
|
+
<xs:element name="domainofapplication" type="domainofapplication.type"/>
|
49
|
+
|
50
|
+
<!-- identity -->
|
51
|
+
|
52
|
+
<xs:element name="ident" type="Functions.type"/>
|
53
|
+
|
54
|
+
<!-- And the group of everything -->
|
55
|
+
|
56
|
+
<xs:group name="Content-functions.class">
|
57
|
+
<xs:choice>
|
58
|
+
<xs:element ref="compose"/>
|
59
|
+
<xs:element ref="domain"/>
|
60
|
+
<xs:element ref="codomain"/>
|
61
|
+
<xs:element ref="image"/>
|
62
|
+
<xs:element ref="domainofapplication"/>
|
63
|
+
<xs:element ref="ident"/>
|
64
|
+
</xs:choice>
|
65
|
+
</xs:group>
|
66
|
+
|
67
|
+
</xs:schema>
|
68
|
+
<!--
|
69
|
+
Copyright û 2002 World Wide Web Consortium, (Massachusetts Institute
|
70
|
+
of Technology, Institut National de Recherche en Informatique et en
|
71
|
+
Automatique, Keio University). All Rights Reserved. See
|
72
|
+
http://www.w3.org/Consortium/Legal/.
|
73
|
+
-->
|
@@ -0,0 +1,173 @@
|
|
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 linear algebra part of content MathML.
|
13
|
+
Author: Stéphane Dalmas, INRIA.
|
14
|
+
</xs:documentation>
|
15
|
+
</xs:annotation>
|
16
|
+
|
17
|
+
<!-- "vector" -->
|
18
|
+
|
19
|
+
<xs:attributeGroup name="vector.attlist">
|
20
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
21
|
+
</xs:attributeGroup>
|
22
|
+
|
23
|
+
<xs:group name="vector.content">
|
24
|
+
<xs:sequence>
|
25
|
+
<xs:group ref="Content-expr.class"/>
|
26
|
+
</xs:sequence>
|
27
|
+
</xs:group>
|
28
|
+
|
29
|
+
<xs:complexType name="vector.type">
|
30
|
+
<xs:group ref="vector.content" minOccurs="1" maxOccurs="unbounded"/>
|
31
|
+
<xs:attributeGroup ref="vector.attlist"/>
|
32
|
+
</xs:complexType>
|
33
|
+
|
34
|
+
<xs:element name="vector" type="vector.type"/>
|
35
|
+
|
36
|
+
<!-- "matrix" -->
|
37
|
+
|
38
|
+
<xs:attributeGroup name="matrix.attlist">
|
39
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
40
|
+
</xs:attributeGroup>
|
41
|
+
|
42
|
+
<xs:group name="matrix.content">
|
43
|
+
<xs:sequence>
|
44
|
+
<xs:element ref="matrixrow"/>
|
45
|
+
</xs:sequence>
|
46
|
+
</xs:group>
|
47
|
+
|
48
|
+
<xs:complexType name="matrix.type">
|
49
|
+
<xs:group ref="matrix.content" minOccurs="1" maxOccurs="unbounded"/>
|
50
|
+
<xs:attributeGroup ref="matrix.attlist"/>
|
51
|
+
</xs:complexType>
|
52
|
+
|
53
|
+
<xs:element name="matrix" type="matrix.type"/>
|
54
|
+
|
55
|
+
<!-- "matrixrow" -->
|
56
|
+
|
57
|
+
<xs:attributeGroup name="matrixrow.attlist">
|
58
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
59
|
+
</xs:attributeGroup>
|
60
|
+
|
61
|
+
<xs:group name="matrixrow.content">
|
62
|
+
<xs:sequence>
|
63
|
+
<xs:group ref="Content-expr.class"/>
|
64
|
+
</xs:sequence>
|
65
|
+
</xs:group>
|
66
|
+
|
67
|
+
<xs:complexType name="matrixrow.type">
|
68
|
+
<xs:group ref="matrixrow.content" minOccurs="1" maxOccurs="unbounded"/>
|
69
|
+
<xs:attributeGroup ref="matrixrow.attlist"/>
|
70
|
+
</xs:complexType>
|
71
|
+
|
72
|
+
<xs:element name="matrixrow" type="matrixrow.type"/>
|
73
|
+
|
74
|
+
<!-- "determinant" -->
|
75
|
+
|
76
|
+
<xs:attributeGroup name="determinant.attlist">
|
77
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
78
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
79
|
+
</xs:attributeGroup>
|
80
|
+
|
81
|
+
<xs:complexType name="determinant.type">
|
82
|
+
<xs:attributeGroup ref="determinant.attlist"/>
|
83
|
+
</xs:complexType>
|
84
|
+
|
85
|
+
<xs:element name="determinant" type="determinant.type"/>
|
86
|
+
|
87
|
+
<!-- "transpose" -->
|
88
|
+
|
89
|
+
<xs:attributeGroup name="transpose.attlist">
|
90
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
91
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
92
|
+
</xs:attributeGroup>
|
93
|
+
|
94
|
+
<xs:complexType name="transpose.type">
|
95
|
+
<xs:attributeGroup ref="transpose.attlist"/>
|
96
|
+
</xs:complexType>
|
97
|
+
|
98
|
+
<xs:element name="transpose" type="transpose.type"/>
|
99
|
+
|
100
|
+
<!-- "selector" -->
|
101
|
+
|
102
|
+
<xs:attributeGroup name="selector.attlist">
|
103
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
104
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
105
|
+
</xs:attributeGroup>
|
106
|
+
|
107
|
+
<xs:complexType name="selector.type">
|
108
|
+
<xs:attributeGroup ref="selector.attlist"/>
|
109
|
+
</xs:complexType>
|
110
|
+
|
111
|
+
<xs:element name="selector" type="selector.type"/>
|
112
|
+
|
113
|
+
<!-- "vectorproduct" -->
|
114
|
+
|
115
|
+
<xs:attributeGroup name="vectorproduct.attlist">
|
116
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
117
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
118
|
+
</xs:attributeGroup>
|
119
|
+
|
120
|
+
<xs:complexType name="vectorproduct.type">
|
121
|
+
<xs:attributeGroup ref="vectorproduct.attlist"/>
|
122
|
+
</xs:complexType>
|
123
|
+
|
124
|
+
<xs:element name="vectorproduct" type="vectorproduct.type"/>
|
125
|
+
|
126
|
+
<!-- "scalarproduct" -->
|
127
|
+
|
128
|
+
<xs:attributeGroup name="scalarproduct.attlist">
|
129
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
130
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
131
|
+
</xs:attributeGroup>
|
132
|
+
|
133
|
+
<xs:complexType name="scalarproduct.type">
|
134
|
+
<xs:attributeGroup ref="scalarproduct.attlist"/>
|
135
|
+
</xs:complexType>
|
136
|
+
|
137
|
+
<xs:element name="scalarproduct" type="scalarproduct.type"/>
|
138
|
+
|
139
|
+
<!-- "outerproduct" -->
|
140
|
+
|
141
|
+
<xs:attributeGroup name="outerproduct.attlist">
|
142
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
143
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
144
|
+
</xs:attributeGroup>
|
145
|
+
|
146
|
+
<xs:complexType name="outerproduct.type">
|
147
|
+
<xs:attributeGroup ref="outerproduct.attlist"/>
|
148
|
+
</xs:complexType>
|
149
|
+
|
150
|
+
<xs:element name="outerproduct" type="outerproduct.type"/>
|
151
|
+
|
152
|
+
<!-- And the group of everything -->
|
153
|
+
|
154
|
+
<xs:group name="Content-linear-algebra.class">
|
155
|
+
<xs:choice>
|
156
|
+
<xs:element ref="vector"/>
|
157
|
+
<xs:element ref="matrix"/>
|
158
|
+
<xs:element ref="determinant"/>
|
159
|
+
<xs:element ref="transpose"/>
|
160
|
+
<xs:element ref="selector"/>
|
161
|
+
<xs:element ref="vectorproduct"/>
|
162
|
+
<xs:element ref="scalarproduct"/>
|
163
|
+
<xs:element ref="outerproduct"/>
|
164
|
+
</xs:choice>
|
165
|
+
</xs:group>
|
166
|
+
</xs:schema>
|
167
|
+
|
168
|
+
<!--
|
169
|
+
Copyright û 2002 World Wide Web Consortium, (Massachusetts Institute
|
170
|
+
of Technology, Institut National de Recherche en Informatique et en
|
171
|
+
Automatique, Keio University). All Rights Reserved. See
|
172
|
+
http://www.w3.org/Consortium/Legal/.
|
173
|
+
-->
|
@@ -0,0 +1,53 @@
|
|
1
|
+
<xs:schema
|
2
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
3
|
+
xmlns="http://www.w3.org/1998/Math/MathML"
|
4
|
+
targetNamespace="http://www.w3.org/1998/Math/MathML"
|
5
|
+
elementFormDefault="qualified"
|
6
|
+
>
|
7
|
+
|
8
|
+
<xs:annotation>
|
9
|
+
<xs:documentation>
|
10
|
+
This is an XML Schema module for the logic operators of content MathML.
|
11
|
+
Author: Stéphane Dalmas, INRIA.
|
12
|
+
</xs:documentation>
|
13
|
+
</xs:annotation>
|
14
|
+
|
15
|
+
<!-- a common type for all this -->
|
16
|
+
|
17
|
+
<xs:complexType name="Logic.type">
|
18
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
19
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
20
|
+
</xs:complexType>
|
21
|
+
|
22
|
+
<xs:element name="and" type="Elementary-functions.type"/>
|
23
|
+
<xs:element name="or" type="Logic.type"/>
|
24
|
+
<xs:element name="xor" type="Logic.type"/>
|
25
|
+
|
26
|
+
<xs:element name="not" type="Logic.type"/>
|
27
|
+
|
28
|
+
<xs:element name="exists" type="Logic.type"/>
|
29
|
+
<xs:element name="forall" type="Logic.type"/>
|
30
|
+
|
31
|
+
<xs:element name="implies" type="Logic.type"/>
|
32
|
+
|
33
|
+
<!-- And the group of everything -->
|
34
|
+
|
35
|
+
<xs:group name="Content-logic.class">
|
36
|
+
<xs:choice>
|
37
|
+
<xs:element ref="and"/>
|
38
|
+
<xs:element ref="or"/>
|
39
|
+
<xs:element ref="xor"/>
|
40
|
+
<xs:element ref="not"/>
|
41
|
+
<xs:element ref="exists"/>
|
42
|
+
<xs:element ref="forall"/>
|
43
|
+
<xs:element ref="implies"/>
|
44
|
+
</xs:choice>
|
45
|
+
</xs:group>
|
46
|
+
|
47
|
+
</xs:schema>
|
48
|
+
<!--
|
49
|
+
Copyright û 2002 World Wide Web Consortium, (Massachusetts Institute
|
50
|
+
of Technology, Institut National de Recherche en Informatique et en
|
51
|
+
Automatique, Keio University). All Rights Reserved. See
|
52
|
+
http://www.w3.org/Consortium/Legal/.
|
53
|
+
-->
|
@@ -0,0 +1,55 @@
|
|
1
|
+
<xs:schema
|
2
|
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
3
|
+
xmlns="http://www.w3.org/1998/Math/MathML"
|
4
|
+
targetNamespace="http://www.w3.org/1998/Math/MathML"
|
5
|
+
elementFormDefault="qualified"
|
6
|
+
>
|
7
|
+
|
8
|
+
<xs:annotation>
|
9
|
+
<xs:documentation>
|
10
|
+
This is an XML Schema module for the relational operators of content MathML.
|
11
|
+
Author: Stéphane Dalmas, INRIA.
|
12
|
+
</xs:documentation>
|
13
|
+
</xs:annotation>
|
14
|
+
|
15
|
+
<!-- a common type for all this -->
|
16
|
+
<xs:complexType name="Relations.type">
|
17
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
18
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
19
|
+
</xs:complexType>
|
20
|
+
|
21
|
+
<xs:element name="eq" type="Relations.type"/>
|
22
|
+
<xs:element name="neq" type="Relations.type"/>
|
23
|
+
<xs:element name="leq" type="Relations.type"/>
|
24
|
+
<xs:element name="lt" type="Relations.type"/>
|
25
|
+
<xs:element name="geq" type="Relations.type"/>
|
26
|
+
<xs:element name="gt" type="Relations.type"/>
|
27
|
+
|
28
|
+
<xs:element name="equivalent" type="Relations.type"/>
|
29
|
+
|
30
|
+
<xs:element name="approx" type="Relations.type"/>
|
31
|
+
|
32
|
+
<xs:element name="factorof" type="Relations.type"/>
|
33
|
+
|
34
|
+
<!-- And the group of everything -->
|
35
|
+
<xs:group name="Content-relations.class">
|
36
|
+
<xs:choice>
|
37
|
+
<xs:element ref="eq"/>
|
38
|
+
<xs:element ref="neq"/>
|
39
|
+
<xs:element ref="leq"/>
|
40
|
+
<xs:element ref="lt"/>
|
41
|
+
<xs:element ref="geq"/>
|
42
|
+
<xs:element ref="gt"/>
|
43
|
+
<xs:element ref="equivalent"/>
|
44
|
+
<xs:element ref="approx"/>
|
45
|
+
<xs:element ref="factorof"/>
|
46
|
+
</xs:choice>
|
47
|
+
</xs:group>
|
48
|
+
|
49
|
+
</xs:schema>
|
50
|
+
<!--
|
51
|
+
Copyright û 2002 World Wide Web Consortium, (Massachusetts Institute
|
52
|
+
of Technology, Institut National de Recherche en Informatique et en
|
53
|
+
Automatique, Keio University). All Rights Reserved. See
|
54
|
+
http://www.w3.org/Consortium/Legal/.
|
55
|
+
-->
|
@@ -0,0 +1,85 @@
|
|
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 "sematics" element of content MathML.
|
13
|
+
Author: Stéphane Dalmas, INRIA.
|
14
|
+
</xs:documentation>
|
15
|
+
</xs:annotation>
|
16
|
+
|
17
|
+
<!-- "annotation" -->
|
18
|
+
|
19
|
+
<xs:attributeGroup name="annotation.attlist">
|
20
|
+
<xs:attribute name="encoding" type="xs:string"/>
|
21
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
22
|
+
</xs:attributeGroup>
|
23
|
+
|
24
|
+
<xs:complexType name="annotation.type" mixed="true">
|
25
|
+
<xs:attributeGroup ref="annotation.attlist"/>
|
26
|
+
</xs:complexType>
|
27
|
+
|
28
|
+
<xs:element name="annotation" type="annotation.type"/>
|
29
|
+
|
30
|
+
<!-- "annotation-xml" -->
|
31
|
+
|
32
|
+
<xs:attributeGroup name="annotation-xml.attlist">
|
33
|
+
<xs:attribute name="encoding" type="xs:string"/>
|
34
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
35
|
+
</xs:attributeGroup>
|
36
|
+
|
37
|
+
<xs:group name="annotation-xml.content">
|
38
|
+
<xs:sequence>
|
39
|
+
<xs:any processContents="lax"/>
|
40
|
+
</xs:sequence>
|
41
|
+
</xs:group>
|
42
|
+
|
43
|
+
<xs:complexType name="annotation-xml.type">
|
44
|
+
<xs:group ref="annotation-xml.content"/>
|
45
|
+
<xs:attributeGroup ref="annotation-xml.attlist"/>
|
46
|
+
</xs:complexType>
|
47
|
+
|
48
|
+
<xs:element name="annotation-xml" type="annotation-xml.type"/>
|
49
|
+
|
50
|
+
<!-- "semantics" -->
|
51
|
+
|
52
|
+
<xs:attributeGroup name="semantics.attlist">
|
53
|
+
<xs:attribute name="encoding" type="xs:string"/>
|
54
|
+
<xs:attribute name="definitionURL" type="xs:anyURI"/>
|
55
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
56
|
+
</xs:attributeGroup>
|
57
|
+
|
58
|
+
<xs:group name="Annotation.class">
|
59
|
+
<xs:choice>
|
60
|
+
<xs:element ref="annotation"/>
|
61
|
+
<xs:element ref="annotation-xml"/>
|
62
|
+
</xs:choice>
|
63
|
+
</xs:group>
|
64
|
+
|
65
|
+
<xs:group name="semantics.content">
|
66
|
+
<xs:sequence>
|
67
|
+
<xs:group ref="Content-expr.class"/>
|
68
|
+
<xs:group ref="Annotation.class" minOccurs="1" maxOccurs="unbounded"/>
|
69
|
+
</xs:sequence>
|
70
|
+
</xs:group>
|
71
|
+
|
72
|
+
<xs:complexType name="semantics.type">
|
73
|
+
<xs:group ref="semantics.content" minOccurs="1" maxOccurs="unbounded"/>
|
74
|
+
<xs:attributeGroup ref="semantics.attlist"/>
|
75
|
+
</xs:complexType>
|
76
|
+
|
77
|
+
<xs:element name="semantics" type="semantics.type"/>
|
78
|
+
|
79
|
+
</xs:schema>
|
80
|
+
<!--
|
81
|
+
Copyright û 2002 World Wide Web Consortium, (Massachusetts Institute
|
82
|
+
of Technology, Institut National de Recherche en Informatique et en
|
83
|
+
Automatique, Keio University). All Rights Reserved. See
|
84
|
+
http://www.w3.org/Consortium/Legal/.
|
85
|
+
-->
|
@@ -0,0 +1,236 @@
|
|
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 part of content MathML dealing with
|
13
|
+
sets and lists.
|
14
|
+
Author: Stéphane Dalmas, INRIA.
|
15
|
+
</xs:documentation>
|
16
|
+
</xs:annotation>
|
17
|
+
|
18
|
+
<!-- "set" -->
|
19
|
+
|
20
|
+
<!-- "type" could be "multiset" or "normal" or anything else -->
|
21
|
+
<xs:attributeGroup name="set.attlist">
|
22
|
+
<xs:attribute name="type" type="xs:string"/>
|
23
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
24
|
+
</xs:attributeGroup>
|
25
|
+
|
26
|
+
<xs:group name="set.content">
|
27
|
+
<xs:sequence>
|
28
|
+
<xs:group ref="Content-expr.class"/>
|
29
|
+
</xs:sequence>
|
30
|
+
</xs:group>
|
31
|
+
|
32
|
+
<xs:complexType name="set.type">
|
33
|
+
<xs:group ref="set.content" minOccurs="0" maxOccurs="unbounded"/>
|
34
|
+
<xs:attributeGroup ref="set.attlist"/>
|
35
|
+
</xs:complexType>
|
36
|
+
|
37
|
+
<xs:element name="set" type="set.type"/>
|
38
|
+
|
39
|
+
<!-- "list" -->
|
40
|
+
|
41
|
+
<xs:attributeGroup name="list.attlist">
|
42
|
+
<xs:attribute name="order">
|
43
|
+
<xs:simpleType>
|
44
|
+
<xs:restriction base="xs:string">
|
45
|
+
<xs:enumeration value="lexicographic"/>
|
46
|
+
<xs:enumeration value="numeric"/>
|
47
|
+
</xs:restriction>
|
48
|
+
</xs:simpleType>
|
49
|
+
</xs:attribute>
|
50
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
51
|
+
</xs:attributeGroup>
|
52
|
+
|
53
|
+
<xs:group name="list.content">
|
54
|
+
<xs:sequence>
|
55
|
+
<xs:group ref="Content-expr.class"/>
|
56
|
+
</xs:sequence>
|
57
|
+
</xs:group>
|
58
|
+
|
59
|
+
<xs:complexType name="list.type">
|
60
|
+
<xs:group ref="list.content" minOccurs="0" maxOccurs="unbounded"/>
|
61
|
+
<xs:attributeGroup ref="list.attlist"/>
|
62
|
+
</xs:complexType>
|
63
|
+
|
64
|
+
<xs:element name="list" type="list.type"/>
|
65
|
+
|
66
|
+
<!-- "union" -->
|
67
|
+
|
68
|
+
<xs:attributeGroup name="union.attlist">
|
69
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
70
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
71
|
+
</xs:attributeGroup>
|
72
|
+
|
73
|
+
<xs:complexType name="union.type">
|
74
|
+
<xs:attributeGroup ref="union.attlist"/>
|
75
|
+
</xs:complexType>
|
76
|
+
|
77
|
+
<xs:element name="union" type="union.type"/>
|
78
|
+
|
79
|
+
<!-- "intersect" -->
|
80
|
+
|
81
|
+
<xs:attributeGroup name="intersect.attlist">
|
82
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
83
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
84
|
+
</xs:attributeGroup>
|
85
|
+
|
86
|
+
<xs:complexType name="intersect.type">
|
87
|
+
<xs:attributeGroup ref="intersect.attlist"/>
|
88
|
+
</xs:complexType>
|
89
|
+
|
90
|
+
<xs:element name="intersect" type="intersect.type"/>
|
91
|
+
|
92
|
+
<!-- "in" -->
|
93
|
+
|
94
|
+
<xs:attributeGroup name="in.attlist">
|
95
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
96
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
97
|
+
</xs:attributeGroup>
|
98
|
+
|
99
|
+
<xs:complexType name="in.type">
|
100
|
+
<xs:attributeGroup ref="in.attlist"/>
|
101
|
+
</xs:complexType>
|
102
|
+
|
103
|
+
<xs:element name="in" type="in.type"/>
|
104
|
+
|
105
|
+
<!-- "notin" -->
|
106
|
+
|
107
|
+
<xs:attributeGroup name="notin.attlist">
|
108
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
109
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
110
|
+
</xs:attributeGroup>
|
111
|
+
|
112
|
+
<xs:complexType name="notin.type">
|
113
|
+
<xs:attributeGroup ref="notin.attlist"/>
|
114
|
+
</xs:complexType>
|
115
|
+
|
116
|
+
<xs:element name="notin" type="notin.type"/>
|
117
|
+
|
118
|
+
<!-- "subset" -->
|
119
|
+
|
120
|
+
<xs:attributeGroup name="subset.attlist">
|
121
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
122
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
123
|
+
</xs:attributeGroup>
|
124
|
+
|
125
|
+
<xs:complexType name="subset.type">
|
126
|
+
<xs:attributeGroup ref="subset.attlist"/>
|
127
|
+
</xs:complexType>
|
128
|
+
|
129
|
+
<xs:element name="subset" type="subset.type"/>
|
130
|
+
|
131
|
+
<!-- "prsubset" -->
|
132
|
+
|
133
|
+
<xs:attributeGroup name="prsubset.attlist">
|
134
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
135
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
136
|
+
</xs:attributeGroup>
|
137
|
+
|
138
|
+
<xs:complexType name="prsubset.type">
|
139
|
+
<xs:attributeGroup ref="prsubset.attlist"/>
|
140
|
+
</xs:complexType>
|
141
|
+
|
142
|
+
<xs:element name="prsubset" type="prsubset.type"/>
|
143
|
+
|
144
|
+
<!-- "notsubset" -->
|
145
|
+
|
146
|
+
<xs:attributeGroup name="notsubset.attlist">
|
147
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
148
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
149
|
+
</xs:attributeGroup>
|
150
|
+
|
151
|
+
<xs:complexType name="notsubset.type">
|
152
|
+
<xs:attributeGroup ref="notsubset.attlist"/>
|
153
|
+
</xs:complexType>
|
154
|
+
|
155
|
+
<xs:element name="notsubset" type="notsubset.type"/>
|
156
|
+
|
157
|
+
<!-- "notprsubset" -->
|
158
|
+
|
159
|
+
<xs:attributeGroup name="notprsubset.attlist">
|
160
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
161
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
162
|
+
</xs:attributeGroup>
|
163
|
+
|
164
|
+
<xs:complexType name="notprsubset.type">
|
165
|
+
<xs:attributeGroup ref="notprsubset.attlist"/>
|
166
|
+
</xs:complexType>
|
167
|
+
|
168
|
+
<xs:element name="notprsubset" type="notprsubset.type"/>
|
169
|
+
|
170
|
+
<!-- "setdiff" -->
|
171
|
+
|
172
|
+
<xs:attributeGroup name="setdiff.attlist">
|
173
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
174
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
175
|
+
</xs:attributeGroup>
|
176
|
+
|
177
|
+
<xs:complexType name="setdiff.type">
|
178
|
+
<xs:attributeGroup ref="setdiff.attlist"/>
|
179
|
+
</xs:complexType>
|
180
|
+
|
181
|
+
<xs:element name="setdiff" type="setdiff.type"/>
|
182
|
+
|
183
|
+
<!-- "card" -->
|
184
|
+
|
185
|
+
<xs:attributeGroup name="card.attlist">
|
186
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
187
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
188
|
+
</xs:attributeGroup>
|
189
|
+
|
190
|
+
<xs:complexType name="card.type">
|
191
|
+
<xs:attributeGroup ref="card.attlist"/>
|
192
|
+
</xs:complexType>
|
193
|
+
|
194
|
+
<xs:element name="card" type="card.type"/>
|
195
|
+
|
196
|
+
<!-- "cartesianproduct" -->
|
197
|
+
|
198
|
+
<xs:attributeGroup name="cartesianproduct.attlist">
|
199
|
+
<xs:attributeGroup ref="Definition.attrib"/>
|
200
|
+
<xs:attributeGroup ref="Common.attrib"/>
|
201
|
+
</xs:attributeGroup>
|
202
|
+
|
203
|
+
<xs:complexType name="cartesianproduct.type">
|
204
|
+
<xs:attributeGroup ref="cartesianproduct.attlist"/>
|
205
|
+
</xs:complexType>
|
206
|
+
|
207
|
+
<xs:element name="cartesianproduct" type="cartesianproduct.type"/>
|
208
|
+
|
209
|
+
<!-- And the group of everything -->
|
210
|
+
|
211
|
+
<xs:group name="Content-sets.class">
|
212
|
+
<xs:choice>
|
213
|
+
<xs:element ref="set"/>
|
214
|
+
<xs:element ref="list"/>
|
215
|
+
<xs:element ref="union"/>
|
216
|
+
<xs:element ref="intersect"/>
|
217
|
+
<xs:element ref="in"/>
|
218
|
+
<xs:element ref="notin"/>
|
219
|
+
<xs:element ref="subset"/>
|
220
|
+
<xs:element ref="prsubset"/>
|
221
|
+
<xs:element ref="notsubset"/>
|
222
|
+
<xs:element ref="notprsubset"/>
|
223
|
+
<xs:element ref="setdiff"/>
|
224
|
+
<xs:element ref="card"/>
|
225
|
+
<xs:element ref="cartesianproduct"/>
|
226
|
+
</xs:choice>
|
227
|
+
</xs:group>
|
228
|
+
|
229
|
+
</xs:schema>
|
230
|
+
|
231
|
+
<!--
|
232
|
+
Copyright û 2002 World Wide Web Consortium, (Massachusetts Institute
|
233
|
+
of Technology, Institut National de Recherche en Informatique et en
|
234
|
+
Automatique, Keio University). All Rights Reserved. See
|
235
|
+
http://www.w3.org/Consortium/Legal/.
|
236
|
+
-->
|