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