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,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&#233;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 &#251; 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&#233;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 &#251; 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&#233;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 &#251; 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&#233;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 &#251; 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&#233;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 &#251; 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&#233;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 &#251; 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
+ -->