summaryrefslogtreecommitdiff
path: root/schema/mathml2/content
diff options
context:
space:
mode:
authorMichael Stahl <Michael.Stahl@cib.de>2018-06-22 18:20:46 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2018-06-26 12:20:31 +0200
commita09ed7100e07c0416017c06de9e22fa888377d15 (patch)
tree146739719a89a7ca98dd3fad1afe619c242fd011 /schema/mathml2/content
parentb88706f98b0859a40b5e50596c9fa75398c90c2f (diff)
schema: add MathML2 XSD
These are needed to invoke the ODF validator with custom ODF schemas. Change-Id: I231b5d8a8573e9ac6171a331362a31aceae08d80 Reviewed-on: https://gerrit.libreoffice.org/56399 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'schema/mathml2/content')
-rw-r--r--schema/mathml2/content/arith.xsd90
-rw-r--r--schema/mathml2/content/calculus.xsd146
-rw-r--r--schema/mathml2/content/common-attrib.xsd30
-rw-r--r--schema/mathml2/content/constants.xsd83
-rw-r--r--schema/mathml2/content/constructs.xsd260
-rw-r--r--schema/mathml2/content/elementary-functions.xsd117
-rw-r--r--schema/mathml2/content/functions.xsd73
-rw-r--r--schema/mathml2/content/linear-algebra.xsd173
-rw-r--r--schema/mathml2/content/logic.xsd53
-rw-r--r--schema/mathml2/content/relations.xsd55
-rw-r--r--schema/mathml2/content/semantics.xsd85
-rw-r--r--schema/mathml2/content/sets.xsd236
-rw-r--r--schema/mathml2/content/statistics.xsd136
-rw-r--r--schema/mathml2/content/tokens.xsd120
-rw-r--r--schema/mathml2/content/vector-calculus.xsd88
15 files changed, 1745 insertions, 0 deletions
diff --git a/schema/mathml2/content/arith.xsd b/schema/mathml2/content/arith.xsd
new file mode 100644
index 000000000000..fdb508f7e4c3
--- /dev/null
+++ b/schema/mathml2/content/arith.xsd
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+>
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the "arithmetic" operators of content
+ MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- a common type for all this -->
+
+<xs:complexType name="Arith.type">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<!-- The elements -->
+
+<xs:element name="abs" type="Arith.type"/>
+<xs:element name="conjugate" type="Arith.type"/>
+<xs:element name="arg" type="Arith.type"/>
+<xs:element name="real" type="Arith.type"/>
+<xs:element name="imaginary" type="Arith.type"/>
+
+<xs:element name="floor" type="Arith.type"/>
+<xs:element name="ceiling" type="Arith.type"/>
+
+<xs:element name="power" type="Arith.type"/>
+<xs:element name="root" type="Arith.type"/>
+
+<xs:element name="minus" type="Arith.type"/>
+<xs:element name="plus" type="Arith.type"/>
+<xs:element name="sum" type="Arith.type"/>
+<xs:element name="times" type="Arith.type"/>
+<xs:element name="product" type="Arith.type"/>
+
+<xs:element name="max" type="Arith.type"/>
+<xs:element name="min" type="Arith.type"/>
+
+<xs:element name="factorial" type="Arith.type"/>
+<xs:element name="quotient" type="Arith.type"/>
+<xs:element name="divide" type="Arith.type"/>
+<xs:element name="rem" type="Arith.type"/>
+<xs:element name="gcd" type="Arith.type"/>
+<xs:element name="lcm" type="Arith.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-arith.class">
+ <xs:choice>
+ <xs:element ref="abs"/>
+ <xs:element ref="conjugate"/>
+ <xs:element ref="factorial"/>
+ <xs:element ref="arg"/>
+ <xs:element ref="real"/>
+ <xs:element ref="imaginary"/>
+ <xs:element ref="floor"/>
+ <xs:element ref="ceiling"/>
+ <xs:element ref="quotient"/>
+ <xs:element ref="divide"/>
+ <xs:element ref="rem"/>
+ <xs:element ref="minus"/>
+ <xs:element ref="plus"/>
+ <xs:element ref="times"/>
+ <xs:element ref="power"/>
+ <xs:element ref="root"/>
+ <xs:element ref="max"/>
+ <xs:element ref="min"/>
+ <xs:element ref="gcd"/>
+ <xs:element ref="lcm"/>
+ <xs:element ref="sum"/>
+ <xs:element ref="product"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/calculus.xsd b/schema/mathml2/content/calculus.xsd
new file mode 100644
index 000000000000..1b8fdb0e0305
--- /dev/null
+++ b/schema/mathml2/content/calculus.xsd
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the calculs operators of content
+ MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- "int" -->
+
+<xs:attributeGroup name="int.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="int.type">
+ <xs:attributeGroup ref="int.attlist"/>
+</xs:complexType>
+
+<xs:element name="int" type="int.type"/>
+
+<!-- "diff" -->
+
+<xs:attributeGroup name="diff.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="diff.type">
+ <xs:attributeGroup ref="diff.attlist"/>
+</xs:complexType>
+
+<xs:element name="diff" type="diff.type"/>
+
+<!-- "partialdiff" -->
+
+<xs:attributeGroup name="partialdiff.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="partialdiff.type">
+ <xs:attributeGroup ref="partialdiff.attlist"/>
+</xs:complexType>
+
+<xs:element name="partialdiff" type="partialdiff.type"/>
+
+<!-- "limit" -->
+
+<xs:attributeGroup name="limit.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+
+<xs:complexType name="limit.type">
+ <xs:attributeGroup ref="limit.attlist"/>
+</xs:complexType>
+
+<xs:element name="limit" type="limit.type"/>
+
+<!-- "lowlimit" -->
+
+<xs:attributeGroup name="lowlimit.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="lowlimit.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="lowlimit.type">
+ <xs:group ref="lowlimit.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="lowlimit.attlist"/>
+</xs:complexType>
+
+<xs:element name="lowlimit" type="lowlimit.type"/>
+
+<!-- "uplimit" -->
+
+<xs:attributeGroup name="uplimit.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="uplimit.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="uplimit.type">
+ <xs:group ref="uplimit.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="uplimit.attlist"/>
+</xs:complexType>
+
+<xs:element name="uplimit" type="uplimit.type"/>
+
+<!-- "tendsto" -->
+
+<xs:attributeGroup name="tendsto.attlist">
+ <xs:attribute name="type" type="xs:string"/>
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+
+<xs:complexType name="tendsto.type">
+ <xs:attributeGroup ref="tendsto.attlist"/>
+</xs:complexType>
+
+<xs:element name="tendsto" type="tendsto.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-calculus.class">
+ <xs:choice>
+ <xs:element ref="int"/>
+ <xs:element ref="diff"/>
+ <xs:element ref="partialdiff"/>
+ <xs:element ref="limit"/>
+ <xs:element ref="lowlimit"/>
+ <xs:element ref="uplimit"/>
+ <xs:element ref="tendsto"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/common-attrib.xsd b/schema/mathml2/content/common-attrib.xsd
new file mode 100644
index 000000000000..b0d599f4a36c
--- /dev/null
+++ b/schema/mathml2/content/common-attrib.xsd
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is the XML schema module defining common attributes for the
+ content part of MathML.
+ Authors: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<xs:attributeGroup name="Definition.attrib">
+ <xs:attribute name="encoding" type="xs:string"/>
+ <xs:attribute name="definitionURL" type="xs:anyURI"/>
+</xs:attributeGroup>
+
+</xs:schema>
+
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/constants.xsd b/schema/mathml2/content/constants.xsd
new file mode 100644
index 000000000000..a22548e26946
--- /dev/null
+++ b/schema/mathml2/content/constants.xsd
@@ -0,0 +1,83 @@
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is the XML Schema module for the basic constants of MathML content.
+ Author: St&#233;phane Dalmas.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- a common type for all this -->
+
+<xs:complexType name="Constant.type">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<!-- Basic sets -->
+
+<xs:element name="naturalnumbers" type="Constant.type"/>
+<xs:element name="primes" type="Constant.type"/>
+<xs:element name="integers" type="Constant.type"/>
+<xs:element name="rationals" type="Constant.type"/>
+<xs:element name="reals" type="Constant.type"/>
+<xs:element name="complexes" type="Constant.type"/>
+
+<!-- Empty set -->
+
+<xs:element name="emptyset" type="Constant.type"/>
+
+<!-- Basic constants -->
+
+<xs:element name="exponentiale" type="Constant.type"/>
+<xs:element name="imaginaryi" type="Constant.type"/>
+<xs:element name="pi" type="Constant.type"/>
+<xs:element name="eulergamma" type="Constant.type"/>
+
+<!-- Boolean constants -->
+
+<xs:element name="true" type="Constant.type"/>
+<xs:element name="false" type="Constant.type"/>
+
+<!-- Infinty -->
+
+<xs:element name="infinity" type="Constant.type"/>
+
+<!-- NotANumber -->
+
+<xs:element name="notanumber" type="Constant.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-constants.class">
+ <xs:choice>
+ <xs:element ref="naturalnumbers"/>
+ <xs:element ref="primes"/>
+ <xs:element ref="integers"/>
+ <xs:element ref="rationals"/>
+ <xs:element ref="reals"/>
+ <xs:element ref="complexes"/>
+ <xs:element ref="emptyset"/>
+ <xs:element ref="exponentiale"/>
+ <xs:element ref="imaginaryi"/>
+ <xs:element ref="pi"/>
+ <xs:element ref="eulergamma"/>
+ <xs:element ref="true"/>
+ <xs:element ref="false"/>
+ <xs:element ref="infinity"/>
+ <xs:element ref="notanumber"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/constructs.xsd b/schema/mathml2/content/constructs.xsd
new file mode 100644
index 000000000000..4cfc21af8a3d
--- /dev/null
+++ b/schema/mathml2/content/constructs.xsd
@@ -0,0 +1,260 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the basic constructs of content MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- "apply" -->
+
+<xs:attributeGroup name="apply.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="apply.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="apply.type">
+ <xs:group ref="apply.content" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="apply.attlist"/>
+</xs:complexType>
+
+<xs:element name="apply" type="apply.type"/>
+
+<!-- "interval" -->
+
+<xs:attributeGroup name="interval.attlist">
+ <xs:attribute name="closure" default="closed">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="closed"/>
+ <xs:enumeration value="open"/>
+ <xs:enumeration value="open-closed"/>
+ <xs:enumeration value="closed-open"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<!--
+<xs:group name="interval.content">
+ <xs:choice>
+ <xs:group ref="Content-expr.class" minOccurs="2" maxOccurs="2"/>
+ <xs:element ref="condition"/>
+ </xs:choice>
+</xs:group>
+-->
+
+<xs:complexType name="interval.type">
+<!-- <xs:group ref="interval.content"/> -->
+ <xs:group ref="Content-expr.class" maxOccurs="2"/>
+ <xs:attributeGroup ref="interval.attlist"/>
+</xs:complexType>
+
+<xs:element name="interval" type="interval.type"/>
+
+<!-- "inverse" -->
+
+<xs:attributeGroup name="inverse.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="inverse.type">
+ <xs:attributeGroup ref="inverse.attlist"/>
+</xs:complexType>
+
+<xs:element name="inverse" type="inverse.type"/>
+
+<!-- "condition" -->
+
+<xs:attributeGroup name="condition.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="condition.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="condition.type">
+ <xs:group ref="condition.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="condition.attlist"/>
+</xs:complexType>
+
+<xs:element name="condition" type="condition.type"/>
+
+<!-- "declare" -->
+
+<xs:attributeGroup name="declare.attlist">
+ <xs:attribute name="type" type="xs:string"/>
+ <xs:attribute name="scope" type="xs:string"/>
+ <xs:attribute name="nargs" type="xs:nonNegativeInteger"/>
+ <xs:attribute name="occurrence">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="prefix"/>
+ <xs:enumeration value="infix"/>
+ <xs:enumeration value="function-model"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="Definition.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="declare.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="declare.type">
+ <xs:group ref="declare.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="declare.attlist"/>
+</xs:complexType>
+
+<xs:element name="declare" type="declare.type"/>
+
+<!-- "lambda" -->
+
+<xs:attributeGroup name="lambda.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="lambda.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="lambda.type">
+ <xs:group ref="lambda.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="lambda.attlist"/>
+</xs:complexType>
+
+<xs:element name="lambda" type="lambda.type"/>
+
+<!-- "piecewise" and its inner elements -->
+
+<xs:group name="otherwise.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="otherwise.type">
+ <xs:group ref="otherwise.content"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<xs:element name="otherwise" type="otherwise.type"/>
+
+<xs:group name="piece.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="piece.type">
+ <xs:group ref="piece.content" minOccurs="1" maxOccurs="unbounded"/>
+</xs:complexType>
+
+<xs:element name="piece" type="piece.type"/>
+
+<xs:attributeGroup name="piecewise.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="piecewise.content">
+ <xs:sequence>
+ <xs:element ref="piece" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:sequence minOccurs="0">
+ <xs:element ref="otherwise"/>
+ <xs:element ref="piece" minOccurs="0" maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="piecewise.type">
+ <xs:group ref="piecewise.content"/>
+ <xs:attributeGroup ref="piecewise.attlist"/>
+</xs:complexType>
+
+<xs:element name="piecewise" type="piecewise.type"/>
+
+<!-- "bvar" -->
+
+<xs:attributeGroup name="bvar.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="bvar.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="bvar.type">
+ <xs:group ref="bvar.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="bvar.attlist"/>
+</xs:complexType>
+
+<xs:element name="bvar" type="bvar.type"/>
+
+<!-- "degree" -->
+
+<xs:attributeGroup name="degree.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="degree.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="degree.type">
+ <xs:group ref="degree.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="degree.attlist"/>
+</xs:complexType>
+
+<xs:element name="degree" type="degree.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-constructs.class">
+ <xs:choice>
+ <xs:element ref="apply"/>
+ <xs:element ref="interval"/>
+ <xs:element ref="inverse"/>
+ <xs:element ref="condition"/>
+ <xs:element ref="declare"/>
+ <xs:element ref="lambda"/>
+ <xs:element ref="piecewise"/>
+ <xs:element ref="bvar"/>
+ <xs:element ref="degree"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/elementary-functions.xsd b/schema/mathml2/content/elementary-functions.xsd
new file mode 100644
index 000000000000..b106f0d170b1
--- /dev/null
+++ b/schema/mathml2/content/elementary-functions.xsd
@@ -0,0 +1,117 @@
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the elementary functions in content
+ MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- a common type for all this -->
+
+<xs:complexType name="Elementary-functions.type">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<!-- Exp and logs -->
+
+<xs:element name="exp" type="Elementary-functions.type"/>
+<xs:element name="ln" type="Elementary-functions.type"/>
+<xs:element name="log" type="Elementary-functions.type"/>
+
+<!-- special element of the base of logarithms -->
+
+<xs:group name="logbase.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="logbase.type">
+ <xs:group ref="logbase.content"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<xs:element name="logbase" type="logbase.type"/>
+
+<!-- Trigonometric functions -->
+
+<xs:element name="sin" type="Elementary-functions.type"/>
+<xs:element name="cos" type="Elementary-functions.type"/>
+<xs:element name="tan" type="Elementary-functions.type"/>
+<xs:element name="sec" type="Elementary-functions.type"/>
+<xs:element name="csc" type="Elementary-functions.type"/>
+<xs:element name="cot" type="Elementary-functions.type"/>
+
+<xs:element name="arcsin" type="Elementary-functions.type"/>
+<xs:element name="arccos" type="Elementary-functions.type"/>
+<xs:element name="arctan" type="Elementary-functions.type"/>
+<xs:element name="arccot" type="Elementary-functions.type"/>
+<xs:element name="arccsc" type="Elementary-functions.type"/>
+<xs:element name="arcsec" type="Elementary-functions.type"/>
+
+<!-- Hyperbolic trigonometric functions -->
+
+<xs:element name="sinh" type="Elementary-functions.type"/>
+<xs:element name="cosh" type="Elementary-functions.type"/>
+<xs:element name="tanh" type="Elementary-functions.type"/>
+<xs:element name="sech" type="Elementary-functions.type"/>
+<xs:element name="csch" type="Elementary-functions.type"/>
+<xs:element name="coth" type="Elementary-functions.type"/>
+<xs:element name="arccosh" type="Elementary-functions.type"/>
+<xs:element name="arccoth" type="Elementary-functions.type"/>
+<xs:element name="arccsch" type="Elementary-functions.type"/>
+<xs:element name="arcsech" type="Elementary-functions.type"/>
+<xs:element name="arcsinh" type="Elementary-functions.type"/>
+<xs:element name="arctanh" type="Elementary-functions.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-elementary-functions.class">
+ <xs:choice>
+ <xs:element ref="exp"/>
+ <xs:element ref="ln"/>
+ <xs:element ref="log"/>
+ <xs:element ref="logbase"/>
+ <xs:element ref="sin"/>
+ <xs:element ref="cos"/>
+ <xs:element ref="tan"/>
+ <xs:element ref="sec"/>
+ <xs:element ref="csc"/>
+ <xs:element ref="cot"/>
+ <xs:element ref="arcsin"/>
+ <xs:element ref="arccos"/>
+ <xs:element ref="arctan"/>
+ <xs:element ref="arcsec"/>
+ <xs:element ref="arccsc"/>
+ <xs:element ref="arccot"/>
+ <xs:element ref="sinh"/>
+ <xs:element ref="cosh"/>
+ <xs:element ref="tanh"/>
+ <xs:element ref="sech"/>
+ <xs:element ref="csch"/>
+ <xs:element ref="coth"/>
+ <xs:element ref="arccosh"/>
+ <xs:element ref="arccoth"/>
+ <xs:element ref="arccsch"/>
+ <xs:element ref="arcsech"/>
+ <xs:element ref="arcsinh"/>
+ <xs:element ref="arctanh"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/functions.xsd b/schema/mathml2/content/functions.xsd
new file mode 100644
index 000000000000..11a5768dcc2a
--- /dev/null
+++ b/schema/mathml2/content/functions.xsd
@@ -0,0 +1,73 @@
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for operators dealing with functions in content
+ MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- a common type for all this -->
+
+<xs:complexType name="Functions.type">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<!-- "compose" -->
+
+<xs:element name="compose" type="Functions.type"/>
+
+<!-- Domain, codomain and image -->
+
+<xs:element name="domain" type="Functions.type"/>
+<xs:element name="codomain" type="Functions.type"/>
+<xs:element name="image" type="Functions.type"/>
+
+<!-- "domainofapplication" -->
+
+<xs:group name="domainofapplication.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="domainofapplication.type">
+ <xs:group ref="domainofapplication.content"/>
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<xs:element name="domainofapplication" type="domainofapplication.type"/>
+
+<!-- identity -->
+
+<xs:element name="ident" type="Functions.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-functions.class">
+ <xs:choice>
+ <xs:element ref="compose"/>
+ <xs:element ref="domain"/>
+ <xs:element ref="codomain"/>
+ <xs:element ref="image"/>
+ <xs:element ref="domainofapplication"/>
+ <xs:element ref="ident"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/linear-algebra.xsd b/schema/mathml2/content/linear-algebra.xsd
new file mode 100644
index 000000000000..eb62bcb6f218
--- /dev/null
+++ b/schema/mathml2/content/linear-algebra.xsd
@@ -0,0 +1,173 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the linear algebra part of content MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- "vector" -->
+
+<xs:attributeGroup name="vector.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="vector.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="vector.type">
+ <xs:group ref="vector.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="vector.attlist"/>
+</xs:complexType>
+
+<xs:element name="vector" type="vector.type"/>
+
+<!-- "matrix" -->
+
+<xs:attributeGroup name="matrix.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="matrix.content">
+ <xs:sequence>
+ <xs:element ref="matrixrow"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="matrix.type">
+ <xs:group ref="matrix.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="matrix.attlist"/>
+</xs:complexType>
+
+<xs:element name="matrix" type="matrix.type"/>
+
+<!-- "matrixrow" -->
+
+<xs:attributeGroup name="matrixrow.attlist">
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="matrixrow.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="matrixrow.type">
+ <xs:group ref="matrixrow.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="matrixrow.attlist"/>
+</xs:complexType>
+
+<xs:element name="matrixrow" type="matrixrow.type"/>
+
+<!-- "determinant" -->
+
+<xs:attributeGroup name="determinant.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="determinant.type">
+ <xs:attributeGroup ref="determinant.attlist"/>
+</xs:complexType>
+
+<xs:element name="determinant" type="determinant.type"/>
+
+<!-- "transpose" -->
+
+<xs:attributeGroup name="transpose.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="transpose.type">
+ <xs:attributeGroup ref="transpose.attlist"/>
+</xs:complexType>
+
+<xs:element name="transpose" type="transpose.type"/>
+
+<!-- "selector" -->
+
+<xs:attributeGroup name="selector.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="selector.type">
+ <xs:attributeGroup ref="selector.attlist"/>
+</xs:complexType>
+
+<xs:element name="selector" type="selector.type"/>
+
+<!-- "vectorproduct" -->
+
+<xs:attributeGroup name="vectorproduct.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="vectorproduct.type">
+ <xs:attributeGroup ref="vectorproduct.attlist"/>
+</xs:complexType>
+
+<xs:element name="vectorproduct" type="vectorproduct.type"/>
+
+<!-- "scalarproduct" -->
+
+<xs:attributeGroup name="scalarproduct.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="scalarproduct.type">
+ <xs:attributeGroup ref="scalarproduct.attlist"/>
+</xs:complexType>
+
+<xs:element name="scalarproduct" type="scalarproduct.type"/>
+
+<!-- "outerproduct" -->
+
+<xs:attributeGroup name="outerproduct.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="outerproduct.type">
+ <xs:attributeGroup ref="outerproduct.attlist"/>
+</xs:complexType>
+
+<xs:element name="outerproduct" type="outerproduct.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-linear-algebra.class">
+ <xs:choice>
+ <xs:element ref="vector"/>
+ <xs:element ref="matrix"/>
+ <xs:element ref="determinant"/>
+ <xs:element ref="transpose"/>
+ <xs:element ref="selector"/>
+ <xs:element ref="vectorproduct"/>
+ <xs:element ref="scalarproduct"/>
+ <xs:element ref="outerproduct"/>
+ </xs:choice>
+</xs:group>
+</xs:schema>
+
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/logic.xsd b/schema/mathml2/content/logic.xsd
new file mode 100644
index 000000000000..6dac2abe4a31
--- /dev/null
+++ b/schema/mathml2/content/logic.xsd
@@ -0,0 +1,53 @@
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the logic operators of content MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- a common type for all this -->
+
+<xs:complexType name="Logic.type">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<xs:element name="and" type="Elementary-functions.type"/>
+<xs:element name="or" type="Logic.type"/>
+<xs:element name="xor" type="Logic.type"/>
+
+<xs:element name="not" type="Logic.type"/>
+
+<xs:element name="exists" type="Logic.type"/>
+<xs:element name="forall" type="Logic.type"/>
+
+<xs:element name="implies" type="Logic.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-logic.class">
+ <xs:choice>
+ <xs:element ref="and"/>
+ <xs:element ref="or"/>
+ <xs:element ref="xor"/>
+ <xs:element ref="not"/>
+ <xs:element ref="exists"/>
+ <xs:element ref="forall"/>
+ <xs:element ref="implies"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/relations.xsd b/schema/mathml2/content/relations.xsd
new file mode 100644
index 000000000000..87496e5c3a66
--- /dev/null
+++ b/schema/mathml2/content/relations.xsd
@@ -0,0 +1,55 @@
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the relational operators of content MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- a common type for all this -->
+<xs:complexType name="Relations.type">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:complexType>
+
+<xs:element name="eq" type="Relations.type"/>
+<xs:element name="neq" type="Relations.type"/>
+<xs:element name="leq" type="Relations.type"/>
+<xs:element name="lt" type="Relations.type"/>
+<xs:element name="geq" type="Relations.type"/>
+<xs:element name="gt" type="Relations.type"/>
+
+<xs:element name="equivalent" type="Relations.type"/>
+
+<xs:element name="approx" type="Relations.type"/>
+
+<xs:element name="factorof" type="Relations.type"/>
+
+<!-- And the group of everything -->
+<xs:group name="Content-relations.class">
+ <xs:choice>
+ <xs:element ref="eq"/>
+ <xs:element ref="neq"/>
+ <xs:element ref="leq"/>
+ <xs:element ref="lt"/>
+ <xs:element ref="geq"/>
+ <xs:element ref="gt"/>
+ <xs:element ref="equivalent"/>
+ <xs:element ref="approx"/>
+ <xs:element ref="factorof"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/semantics.xsd b/schema/mathml2/content/semantics.xsd
new file mode 100644
index 000000000000..d337ee76f11c
--- /dev/null
+++ b/schema/mathml2/content/semantics.xsd
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the "sematics" element of content MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- "annotation" -->
+
+<xs:attributeGroup name="annotation.attlist">
+ <xs:attribute name="encoding" type="xs:string"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="annotation.type" mixed="true">
+ <xs:attributeGroup ref="annotation.attlist"/>
+</xs:complexType>
+
+<xs:element name="annotation" type="annotation.type"/>
+
+<!-- "annotation-xml" -->
+
+<xs:attributeGroup name="annotation-xml.attlist">
+ <xs:attribute name="encoding" type="xs:string"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="annotation-xml.content">
+ <xs:sequence>
+ <xs:any processContents="lax"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="annotation-xml.type">
+ <xs:group ref="annotation-xml.content"/>
+ <xs:attributeGroup ref="annotation-xml.attlist"/>
+</xs:complexType>
+
+<xs:element name="annotation-xml" type="annotation-xml.type"/>
+
+<!-- "semantics" -->
+
+<xs:attributeGroup name="semantics.attlist">
+ <xs:attribute name="encoding" type="xs:string"/>
+ <xs:attribute name="definitionURL" type="xs:anyURI"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="Annotation.class">
+ <xs:choice>
+ <xs:element ref="annotation"/>
+ <xs:element ref="annotation-xml"/>
+ </xs:choice>
+</xs:group>
+
+<xs:group name="semantics.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ <xs:group ref="Annotation.class" minOccurs="1" maxOccurs="unbounded"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="semantics.type">
+ <xs:group ref="semantics.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="semantics.attlist"/>
+</xs:complexType>
+
+<xs:element name="semantics" type="semantics.type"/>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/sets.xsd b/schema/mathml2/content/sets.xsd
new file mode 100644
index 000000000000..7a7f7f6851dd
--- /dev/null
+++ b/schema/mathml2/content/sets.xsd
@@ -0,0 +1,236 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the part of content MathML dealing with
+ sets and lists.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- "set" -->
+
+<!-- "type" could be "multiset" or "normal" or anything else -->
+<xs:attributeGroup name="set.attlist">
+ <xs:attribute name="type" type="xs:string"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="set.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="set.type">
+ <xs:group ref="set.content" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="set.attlist"/>
+</xs:complexType>
+
+<xs:element name="set" type="set.type"/>
+
+<!-- "list" -->
+
+<xs:attributeGroup name="list.attlist">
+ <xs:attribute name="order">
+ <xs:simpleType>
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="lexicographic"/>
+ <xs:enumeration value="numeric"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="list.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="list.type">
+ <xs:group ref="list.content" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="list.attlist"/>
+</xs:complexType>
+
+<xs:element name="list" type="list.type"/>
+
+<!-- "union" -->
+
+<xs:attributeGroup name="union.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="union.type">
+ <xs:attributeGroup ref="union.attlist"/>
+</xs:complexType>
+
+<xs:element name="union" type="union.type"/>
+
+<!-- "intersect" -->
+
+<xs:attributeGroup name="intersect.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="intersect.type">
+ <xs:attributeGroup ref="intersect.attlist"/>
+</xs:complexType>
+
+<xs:element name="intersect" type="intersect.type"/>
+
+<!-- "in" -->
+
+<xs:attributeGroup name="in.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="in.type">
+ <xs:attributeGroup ref="in.attlist"/>
+</xs:complexType>
+
+<xs:element name="in" type="in.type"/>
+
+<!-- "notin" -->
+
+<xs:attributeGroup name="notin.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="notin.type">
+ <xs:attributeGroup ref="notin.attlist"/>
+</xs:complexType>
+
+<xs:element name="notin" type="notin.type"/>
+
+<!-- "subset" -->
+
+<xs:attributeGroup name="subset.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="subset.type">
+ <xs:attributeGroup ref="subset.attlist"/>
+</xs:complexType>
+
+<xs:element name="subset" type="subset.type"/>
+
+<!-- "prsubset" -->
+
+<xs:attributeGroup name="prsubset.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="prsubset.type">
+ <xs:attributeGroup ref="prsubset.attlist"/>
+</xs:complexType>
+
+<xs:element name="prsubset" type="prsubset.type"/>
+
+<!-- "notsubset" -->
+
+<xs:attributeGroup name="notsubset.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="notsubset.type">
+ <xs:attributeGroup ref="notsubset.attlist"/>
+</xs:complexType>
+
+<xs:element name="notsubset" type="notsubset.type"/>
+
+<!-- "notprsubset" -->
+
+<xs:attributeGroup name="notprsubset.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="notprsubset.type">
+ <xs:attributeGroup ref="notprsubset.attlist"/>
+</xs:complexType>
+
+<xs:element name="notprsubset" type="notprsubset.type"/>
+
+<!-- "setdiff" -->
+
+<xs:attributeGroup name="setdiff.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="setdiff.type">
+ <xs:attributeGroup ref="setdiff.attlist"/>
+</xs:complexType>
+
+<xs:element name="setdiff" type="setdiff.type"/>
+
+<!-- "card" -->
+
+<xs:attributeGroup name="card.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="card.type">
+ <xs:attributeGroup ref="card.attlist"/>
+</xs:complexType>
+
+<xs:element name="card" type="card.type"/>
+
+<!-- "cartesianproduct" -->
+
+<xs:attributeGroup name="cartesianproduct.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="cartesianproduct.type">
+ <xs:attributeGroup ref="cartesianproduct.attlist"/>
+</xs:complexType>
+
+<xs:element name="cartesianproduct" type="cartesianproduct.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-sets.class">
+ <xs:choice>
+ <xs:element ref="set"/>
+ <xs:element ref="list"/>
+ <xs:element ref="union"/>
+ <xs:element ref="intersect"/>
+ <xs:element ref="in"/>
+ <xs:element ref="notin"/>
+ <xs:element ref="subset"/>
+ <xs:element ref="prsubset"/>
+ <xs:element ref="notsubset"/>
+ <xs:element ref="notprsubset"/>
+ <xs:element ref="setdiff"/>
+ <xs:element ref="card"/>
+ <xs:element ref="cartesianproduct"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/statistics.xsd b/schema/mathml2/content/statistics.xsd
new file mode 100644
index 000000000000..cf0f20e329fb
--- /dev/null
+++ b/schema/mathml2/content/statistics.xsd
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the statistical operators of content MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- "mean" -->
+
+<xs:attributeGroup name="mean.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="mean.type">
+ <xs:attributeGroup ref="mean.attlist"/>
+</xs:complexType>
+
+<xs:element name="mean" type="mean.type"/>
+
+<!-- "sdev" -->
+
+<xs:attributeGroup name="sdev.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="sdev.type">
+ <xs:attributeGroup ref="sdev.attlist"/>
+</xs:complexType>
+
+<xs:element name="sdev" type="sdev.type"/>
+
+<!-- "variance" -->
+
+<xs:attributeGroup name="variance.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="variance.type">
+ <xs:attributeGroup ref="variance.attlist"/>
+</xs:complexType>
+
+<xs:element name="variance" type="variance.type"/>
+
+<!-- "median" -->
+
+<xs:attributeGroup name="median.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="median.type">
+ <xs:attributeGroup ref="median.attlist"/>
+</xs:complexType>
+
+<xs:element name="median" type="median.type"/>
+
+<!-- "mode" -->
+
+<xs:attributeGroup name="mode.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="mode.type">
+ <xs:attributeGroup ref="mode.attlist"/>
+</xs:complexType>
+
+<xs:element name="mode" type="mode.type"/>
+
+<!-- "moment" -->
+
+<xs:attributeGroup name="moment.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="moment.type">
+ <xs:attributeGroup ref="moment.attlist"/>
+</xs:complexType>
+
+<xs:element name="moment" type="moment.type"/>
+
+<!-- "momentabout" -->
+
+<xs:attributeGroup name="momentabout.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:group name="momentabout.content">
+ <xs:sequence>
+ <xs:group ref="Content-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<xs:complexType name="momentabout.type">
+ <xs:group ref="momentabout.content" minOccurs="1" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="momentabout.attlist"/>
+</xs:complexType>
+
+<xs:element name="momentabout" type="momentabout.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-statistics.class">
+ <xs:choice>
+ <xs:element ref="mean"/>
+ <xs:element ref="sdev"/>
+ <xs:element ref="variance"/>
+ <xs:element ref="median"/>
+ <xs:element ref="mode"/>
+ <xs:element ref="moment"/>
+ <xs:element ref="momentabout"/>
+ </xs:choice>
+</xs:group>
+
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/tokens.xsd b/schema/mathml2/content/tokens.xsd
new file mode 100644
index 000000000000..7e7f9b81d4dc
--- /dev/null
+++ b/schema/mathml2/content/tokens.xsd
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is the XML schema module for the token elements of the
+ content part of MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- common content for the token elements -->
+
+<xs:group name="Content-token.content">
+ <xs:sequence>
+ <xs:group ref="Presentation-expr.class"/>
+ </xs:sequence>
+</xs:group>
+
+<!-- "cn" -->
+
+<xs:attributeGroup name="cn.attlist">
+ <xs:attribute name="base">
+ <xs:simpleType>
+ <xs:restriction base="xs:positiveInteger">
+ <xs:minInclusive value="2"/>
+ <xs:maxInclusive value="36"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attribute name="type">
+ <xs:simpleType>
+ <xs:restriction base="xs:NMTOKEN">
+ <xs:enumeration value="e-notation"/>
+ <xs:enumeration value="integer"/>
+ <xs:enumeration value="rational"/>
+ <xs:enumeration value="real"/>
+ <xs:enumeration value="complex-cartesian"/>
+ <xs:enumeration value="complex-polar"/>
+ <xs:enumeration value="constant"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<!-- the content of "cn" may have <sep> elements in it -->
+
+<xs:complexType name="sep.type">
+</xs:complexType>
+
+<xs:element name="sep" type="sep.type"/>
+
+<xs:group name="cn.content">
+ <xs:choice>
+ <xs:group ref="Presentation-expr.class"/>
+ <xs:element ref="sep"/>
+ </xs:choice>
+</xs:group>
+
+<xs:complexType name="cn.type" mixed="true">
+ <xs:group ref="cn.content" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:attributeGroup ref="cn.attlist"/>
+</xs:complexType>
+
+<xs:element name="cn" type="cn.type"/>
+
+<!-- "ci" -->
+
+<xs:attributeGroup name="ci.attlist">
+ <xs:attribute name="type" type="xs:string"/>
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="ci.type" mixed="true">
+ <xs:group ref="Content-token.content" minOccurs="0"/>
+ <xs:attributeGroup ref="ci.attlist"/>
+</xs:complexType>
+
+<xs:element name="ci" type="ci.type"/>
+
+<!-- "csymbol" -->
+
+<xs:attributeGroup name="csymbol.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="csymbol.type" mixed="true">
+ <xs:group ref="Content-token.content" minOccurs="0"/>
+ <xs:attributeGroup ref="csymbol.attlist"/>
+</xs:complexType>
+
+<xs:element name="csymbol" type="csymbol.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-tokens.class">
+ <xs:choice>
+ <xs:element ref="cn"/>
+ <xs:element ref="ci"/>
+ <xs:element ref="csymbol"/>
+ </xs:choice>
+</xs:group>
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->
diff --git a/schema/mathml2/content/vector-calculus.xsd b/schema/mathml2/content/vector-calculus.xsd
new file mode 100644
index 000000000000..3e5dd9ce2244
--- /dev/null
+++ b/schema/mathml2/content/vector-calculus.xsd
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.w3.org/1998/Math/MathML"
+ targetNamespace="http://www.w3.org/1998/Math/MathML"
+ elementFormDefault="qualified"
+ >
+
+<xs:annotation>
+ <xs:documentation>
+ This is an XML Schema module for the vector calculs operators of content
+ MathML.
+ Author: St&#233;phane Dalmas, INRIA.
+ </xs:documentation>
+</xs:annotation>
+
+<!-- "divergence" -->
+
+<xs:attributeGroup name="divergence.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="divergence.type">
+ <xs:attributeGroup ref="divergence.attlist"/>
+</xs:complexType>
+
+<xs:element name="divergence" type="divergence.type"/>
+
+<!-- "grad" -->
+
+<xs:attributeGroup name="grad.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="grad.type">
+ <xs:attributeGroup ref="grad.attlist"/>
+</xs:complexType>
+
+<xs:element name="grad" type="grad.type"/>
+
+<!-- "curl" -->
+
+<xs:attributeGroup name="curl.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="curl.type">
+ <xs:attributeGroup ref="curl.attlist"/>
+</xs:complexType>
+
+<xs:element name="curl" type="curl.type"/>
+
+<!-- "laplacian" -->
+
+<xs:attributeGroup name="laplacian.attlist">
+ <xs:attributeGroup ref="Definition.attrib"/>
+ <xs:attributeGroup ref="Common.attrib"/>
+</xs:attributeGroup>
+
+<xs:complexType name="laplacian.type">
+ <xs:attributeGroup ref="laplacian.attlist"/>
+</xs:complexType>
+
+<xs:element name="laplacian" type="laplacian.type"/>
+
+<!-- And the group of everything -->
+
+<xs:group name="Content-vector-calculus.class">
+ <xs:choice>
+ <xs:element ref="divergence"/>
+ <xs:element ref="grad"/>
+ <xs:element ref="curl"/>
+ <xs:element ref="laplacian"/>
+ </xs:choice>
+</xs:group>
+
+
+</xs:schema>
+<!--
+ Copyright &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
+ of Technology, Institut National de Recherche en Informatique et en
+ Automatique, Keio University). All Rights Reserved. See
+ http://www.w3.org/Consortium/Legal/.
+ -->