diff options
author | Michael Stahl <Michael.Stahl@cib.de> | 2018-06-22 18:20:46 +0200 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2018-06-26 12:20:31 +0200 |
commit | a09ed7100e07c0416017c06de9e22fa888377d15 (patch) | |
tree | 146739719a89a7ca98dd3fad1afe619c242fd011 /schema | |
parent | b88706f98b0859a40b5e50596c9fa75398c90c2f (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')
31 files changed, 3172 insertions, 0 deletions
diff --git a/schema/mathml2/README b/schema/mathml2/README new file mode 100644 index 000000000000..6a06be0fa9dd --- /dev/null +++ b/schema/mathml2/README @@ -0,0 +1,2 @@ +Copyright © 2015 W3C® (MIT, ERCIM, Keio, Beihang). This software or document includes material copied from or derived from Mathematical Markup Language (MathML) Version 2.0 https://www.w3.org/TR/MathML2/ https://www.w3.org/Math/XMLSchema/mathml2.tgz +STATUS: W3C Recommendation diff --git a/schema/mathml2/common/common-attribs.xsd b/schema/mathml2/common/common-attribs.xsd new file mode 100644 index 000000000000..33698b8f86d6 --- /dev/null +++ b/schema/mathml2/common/common-attribs.xsd @@ -0,0 +1,41 @@ +<?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" + xmlns:xlink="http://www.w3.org/1999/xlink" + targetNamespace="http://www.w3.org/1998/Math/MathML" + elementFormDefault="qualified" +> + +<xs:annotation> + <xs:documentation> + This is the common attributes module for MathML. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + + +<xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink-href.xsd"/> +<xs:import/> <!-- import any foreign namespace --> + + +<!-- The type of "class" is from the XHTML modularization with Schema + document --> +<xs:attributeGroup name="Common.attrib"> + <xs:attribute name="class" type="xs:NMTOKENS"/> + <xs:attribute name="style" type="xs:string"/> + <xs:attribute name="xref" type="xs:IDREF"/> + <xs:attribute name="id" type="xs:ID"/> + <xs:attribute ref="xlink:href"/> + <!-- allow attributes from foreign namespaces, and don't check them --> + <xs:anyAttribute namespace="##other" processContents="skip"/> +</xs:attributeGroup> + +</xs:schema> +<!-- + Copyright û 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/common/math.xsd b/schema/mathml2/common/math.xsd new file mode 100644 index 000000000000..51eb51c87d5b --- /dev/null +++ b/schema/mathml2/common/math.xsd @@ -0,0 +1,126 @@ +<?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 defining the "math" element of MathML. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- The four groups that govern a lot of things --> + +<!-- currently very lax. Should be tightened from Chapter 5 --> + +<xs:group name="Presentation-expr.class"> + <xs:choice> + <xs:group ref="PresExpr.class"/> + <xs:group ref="ContExpr.class"/> + </xs:choice> +</xs:group> + +<xs:group name="Content-expr.class"> + <xs:choice> + <xs:group ref="ContExpr.class"/> + <xs:group ref="PresExpr.class"/> + </xs:choice> +</xs:group> + +<xs:group name="PresExpr.class"> + <xs:choice> + <xs:group ref="Presentation-token.class"/> + <xs:group ref="Presentation-layout.class"/> + <xs:group ref="Presentation-script.class"/> + <xs:group ref="Presentation-table.class"/> + <xs:element ref="mspace"/> + <xs:element ref="maction"/> + <xs:element ref="merror"/> + <xs:element ref="mstyle"/> + </xs:choice> +</xs:group> + +<xs:group name="ContExpr.class"> + <xs:choice> + <xs:group ref="Content-tokens.class"/> + <xs:group ref="Content-arith.class"/> + <xs:group ref="Content-functions.class"/> + <xs:group ref="Content-logic.class"/> + <xs:group ref="Content-constants.class"/> + <xs:group ref="Content-sets.class"/> + <xs:group ref="Content-relations.class"/> + <xs:group ref="Content-elementary-functions.class"/> + <xs:group ref="Content-calculus.class"/> + <xs:group ref="Content-linear-algebra.class"/> + <xs:group ref="Content-vector-calculus.class"/> + <xs:group ref="Content-statistics.class"/> + <xs:group ref="Content-constructs.class"/> + <xs:element ref="semantics"/> + </xs:choice> +</xs:group> + +<!-- "math" --> + +<xs:attributeGroup name="Browser-interface.attrib"> + <xs:attribute name="baseline" type="xs:string"/> + <xs:attribute name="overflow" default="scroll"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="scroll"/> + <xs:enumeration value="elide"/> + <xs:enumeration value="truncate"/> + <xs:enumeration value="scale"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="altimg" type="xs:anyURI"/> + <xs:attribute name="alttext" type="xs:string"/> + <xs:attribute name="type" type="xs:string"/> + <xs:attribute name="name" type="xs:string"/> + <xs:attribute name="height" type="xs:string"/> + <xs:attribute name="width" type="xs:string"/> +</xs:attributeGroup> + +<xs:attributeGroup name="math.attlist"> + <xs:attributeGroup ref="Browser-interface.attrib"/> + <xs:attribute name="macros" type="xs:string"/> +<!-- deprecated + <xs:attribute name="mode" type="xs:string"/> +--> + <xs:attribute name="display" default="inline"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="block"/> + <xs:enumeration value="inline"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="math.content"> + <xs:choice> + <xs:group ref="PresExpr.class"/> + <xs:group ref="ContExpr.class"/> + </xs:choice> +</xs:group> + +<xs:complexType name="math.type"> + <xs:group ref="math.content" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="math.attlist"/> +</xs:complexType> + +<xs:element name="math" type="math.type"/> + +</xs:schema> +<!-- + Copyright û 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/common/xlink-href.xsd b/schema/mathml2/common/xlink-href.xsd new file mode 100644 index 000000000000..a386bc9fba5e --- /dev/null +++ b/schema/mathml2/common/xlink-href.xsd @@ -0,0 +1,20 @@ +<schema targetNamespace="http://www.w3.org/1999/xlink" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns="http://www.w3.org/2001/XMLSchema"> + <annotation> + <documentation xml:lang="en"> + This schema provides the XLink href attribute for use in the MathML2 + schema. Written by Max Froumentin, W3C. + </documentation> + </annotation> + + <attribute name="href" type="anyURI"/> +</schema> + + +<!-- + Copyright û 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/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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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é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 û 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/mathml2.xsd b/schema/mathml2/mathml2.xsd new file mode 100644 index 000000000000..2bd76bfb67d4 --- /dev/null +++ b/schema/mathml2/mathml2.xsd @@ -0,0 +1,59 @@ +<?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 for MathML. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- common stuff --> + +<xs:include schemaLocation="common/math.xsd"/> +<xs:include schemaLocation="common/common-attribs.xsd"/> + +<!-- Presentation --> +<xs:include schemaLocation="presentation/common-types.xsd"/> +<xs:include schemaLocation="presentation/common-attribs.xsd"/> +<xs:include schemaLocation="presentation/characters.xsd"/> +<xs:include schemaLocation="presentation/tokens.xsd"/> +<xs:include schemaLocation="presentation/scripts.xsd"/> +<xs:include schemaLocation="presentation/space.xsd"/> +<xs:include schemaLocation="presentation/layout.xsd"/> +<xs:include schemaLocation="presentation/table.xsd"/> +<xs:include schemaLocation="presentation/style.xsd"/> +<xs:include schemaLocation="presentation/error.xsd"/> +<xs:include schemaLocation="presentation/action.xsd"/> + +<!-- Content --> + +<xs:include schemaLocation="content/common-attrib.xsd"/> +<xs:include schemaLocation="content/tokens.xsd"/> +<xs:include schemaLocation="content/arith.xsd"/> +<xs:include schemaLocation="content/functions.xsd"/> +<xs:include schemaLocation="content/logic.xsd"/> +<xs:include schemaLocation="content/constructs.xsd"/> +<xs:include schemaLocation="content/constants.xsd"/> +<xs:include schemaLocation="content/elementary-functions.xsd"/> +<xs:include schemaLocation="content/relations.xsd"/> +<xs:include schemaLocation="content/semantics.xsd"/> +<xs:include schemaLocation="content/sets.xsd"/> +<xs:include schemaLocation="content/linear-algebra.xsd"/> +<xs:include schemaLocation="content/calculus.xsd"/> +<xs:include schemaLocation="content/vector-calculus.xsd"/> +<xs:include schemaLocation="content/statistics.xsd"/> + + +</xs:schema> +<!-- + Copyright û 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/presentation/action.xsd b/schema/mathml2/presentation/action.xsd new file mode 100644 index 000000000000..9633698509c4 --- /dev/null +++ b/schema/mathml2/presentation/action.xsd @@ -0,0 +1,44 @@ +<?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 MathML "maction" element. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<xs:attributeGroup name="maction.attlist"> + <xs:attribute name="actiontype" type="xs:string" use="required"/> + <xs:attribute name="selection" type="xs:positiveInteger" default="1"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="maction.content"> + <xs:sequence> + <xs:group ref="Presentation-expr.class"/> + </xs:sequence> +</xs:group> + +<xs:complexType name="maction.type"> + <xs:group ref="maction.content" minOccurs="1" maxOccurs="unbounded"/> + <xs:attributeGroup ref="maction.attlist"/> +</xs:complexType> + +<xs:element name="maction" type="maction.type"/> + +</xs:schema> + + +<!-- + Copyright û 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/presentation/characters.xsd b/schema/mathml2/presentation/characters.xsd new file mode 100644 index 000000000000..32b4d3f78cdd --- /dev/null +++ b/schema/mathml2/presentation/characters.xsd @@ -0,0 +1,37 @@ +<?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 MathML "mglyph" element. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<xs:attributeGroup name="mglyph.attlist"> + <xs:attribute name="alt" type="xs:string"/> + <xs:attribute name="fontfamily" type="xs:string"/> + <xs:attribute name="index" type="xs:positiveInteger"/> +</xs:attributeGroup> + +<xs:complexType name="mglyph.type"> + <xs:attributeGroup ref="mglyph.attlist"/> +</xs:complexType> + +<xs:element name="mglyph" type="mglyph.type"/> + +</xs:schema> + + +<!-- + Copyright û 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/presentation/common-attribs.xsd b/schema/mathml2/presentation/common-attribs.xsd new file mode 100644 index 000000000000..2dff7e33a0e1 --- /dev/null +++ b/schema/mathml2/presentation/common-attribs.xsd @@ -0,0 +1,113 @@ +<?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 schema module defines sets of attributes common to several elements + of presentation MathML. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- The mathematics style attributes. These attributes are valid on all + presentation token elements except "mspace" and "mglyph", and on no + other elements except "mstyle". --> + +<xs:attributeGroup name="Token-style.attrib"> + <xs:attribute name="mathvariant"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="normal"/> + <xs:enumeration value="bold"/> + <xs:enumeration value="italic"/> + <xs:enumeration value="bold-italic"/> + <xs:enumeration value="double-struck"/> + <xs:enumeration value="bold-fraktur"/> + <xs:enumeration value="script"/> + <xs:enumeration value="bold-script"/> + <xs:enumeration value="fraktur"/> + <xs:enumeration value="sans-serif"/> + <xs:enumeration value="bold-sans-serif"/> + <xs:enumeration value="sans-serif-italic"/> + <xs:enumeration value="sans-serif-bold-italic"/> + <xs:enumeration value="monospace"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="mathsize"> + <xs:simpleType> + <xs:union memberTypes="simple-size length-with-unit"/> + </xs:simpleType> + </xs:attribute> + <!-- For both of the following attributes the types should be + more restricted --> + <xs:attribute name="mathcolor" type="xs:string"/> + <xs:attribute name="mathbackground" type="xs:string"/> +</xs:attributeGroup> + +<!-- These operators are all related to operators. They are valid on "mo" + and "mstyle". --> + +<xs:attributeGroup name="Operator.attrib"> + <!-- this attribute value is normally inferred from the position of + the operator in its "<mrow"> --> + <xs:attribute name="form"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="prefix"/> + <xs:enumeration value="infix"/> + <xs:enumeration value="postfix"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <!-- set by dictionnary, else it is "thickmathspace" --> + <xs:attribute name="lspace"> + <xs:simpleType> + <xs:union memberTypes="length-with-unit named-space"/> + </xs:simpleType> + </xs:attribute> + <!-- set by dictionnary, else it is "thickmathspace" --> + <xs:attribute name="rspace"> + <xs:simpleType> + <xs:union memberTypes="length-with-unit named-space"/> + </xs:simpleType> + </xs:attribute> + <!-- set by dictionnary, else it is "false" --> + <xs:attribute name="fence" type="xs:boolean"/> + <!-- set by dictionnary, else it is "false" --> + <xs:attribute name="separator" type="xs:boolean"/> + <!-- set by dictionnary, else it is "false" --> + <xs:attribute name="stretchy" type="xs:boolean"/> + <!-- set by dictionnary, else it is "true" --> + <xs:attribute name="symmetric" type="xs:boolean"/> + <!-- set by dictionnary, else it is "false" --> + <xs:attribute name="movablelimits" type="xs:boolean"/> + <!-- set by dictionnary, else it is "false" --> + <xs:attribute name="accent" type="xs:boolean"/> + <!-- set by dictionnary, else it is "false" --> + <xs:attribute name="largeop" type="xs:boolean"/> + <xs:attribute name="minsize"> + <xs:simpleType> + <xs:union memberTypes="length-with-unit named-space"/> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="maxsize"> + <xs:simpleType> + <xs:union memberTypes="length-with-unit named-space infinity xs:float"/> + </xs:simpleType> + </xs:attribute> +</xs:attributeGroup> + +</xs:schema> +<!-- + Copyright û 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/presentation/common-types.xsd b/schema/mathml2/presentation/common-types.xsd new file mode 100644 index 000000000000..a44c3bfc8cb5 --- /dev/null +++ b/schema/mathml2/presentation/common-types.xsd @@ -0,0 +1,103 @@ +<?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 containing some type definitions for MathML. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- Simple sizes --> + +<xs:simpleType name="simple-size"> + <xs:restriction base="xs:string"> + <xs:enumeration value="small"/> + <xs:enumeration value="normal"/> + <xs:enumeration value="big"/> + </xs:restriction> +</xs:simpleType> + +<!-- Centering values --> + +<xs:simpleType name="centering"> + <xs:restriction base="xs:string"> + <xs:enumeration value="left"/> + <xs:enumeration value="center"/> + <xs:enumeration value="right"/> + </xs:restriction> +</xs:simpleType> + +<!-- The named spaces --> + +<!-- this is also used in the value of the "width" attribute on the + "mpadded" element --> +<xs:simpleType name="named-space"> + <xs:restriction base="xs:string"> + <xs:enumeration value="veryverythinmathspace"/> + <xs:enumeration value="verythinmathspace"/> + <xs:enumeration value="thinmathspace"/> + <xs:enumeration value="mediummathspace"/> + <xs:enumeration value="thickmathspace"/> + <xs:enumeration value="verythickmathspace"/> + <xs:enumeration value="veryverythickmathspace"/> + </xs:restriction> +</xs:simpleType> + +<!-- Thickness --> + +<xs:simpleType name="thickness"> + <xs:restriction base="xs:string"> + <xs:enumeration value="thin"/> + <xs:enumeration value="medium"/> + <xs:enumeration value="thick"/> + </xs:restriction> +</xs:simpleType> + + +<!-- number with units used to specified lengths --> + +<xs:simpleType name="length-with-unit"> + <xs:restriction base="xs:string"> + <xs:pattern + value="(-?([0-9]+|[0-9]*\.[0-9]+)*(em|ex|px|in|cm|mm|pt|pc|%))|0"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="length-with-optional-unit"> + <xs:restriction base="xs:string"> + <xs:pattern + value="-?([0-9]+|[0-9]*\.[0-9]+)*(em|ex|px|in|cm|mm|pt|pc|%)?"/> + </xs:restriction> +</xs:simpleType> + +<!-- This is just "infinity" that can be used as a length --> + +<xs:simpleType name="infinity"> + <xs:restriction base="xs:string"> + <xs:enumeration value="infinity"/> + </xs:restriction> +</xs:simpleType> + +<!-- colors defined as RGB --> + +<xs:simpleType name="RGB-color"> + <xs:restriction base="xs:string"> + <xs:pattern value="#(([0-9]|[a-f]){3}|([0-9]|[a-f]){6})"/> + </xs:restriction> +</xs:simpleType> + +</xs:schema> + +<!-- + Copyright û 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/presentation/error.xsd b/schema/mathml2/presentation/error.xsd new file mode 100644 index 000000000000..01b5b960069e --- /dev/null +++ b/schema/mathml2/presentation/error.xsd @@ -0,0 +1,40 @@ +<?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 MathML "merror" element. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<xs:attributeGroup name="merror.attlist"> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="merror.content"> + <xs:sequence> + <xs:group ref="Presentation-expr.class"/> + </xs:sequence> +</xs:group> + +<xs:complexType name="merror.type"> + <xs:group ref="merror.content" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="merror.attlist"/> +</xs:complexType> + +<xs:element name="merror" type="merror.type"/> + +</xs:schema> +<!-- + Copyright û 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/presentation/layout.xsd b/schema/mathml2/presentation/layout.xsd new file mode 100644 index 000000000000..80b005efd7e9 --- /dev/null +++ b/schema/mathml2/presentation/layout.xsd @@ -0,0 +1,195 @@ +<?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 layout elements of the + presentation part of MathML. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- "mrow" --> + +<xs:attributeGroup name="mrow.attlist"> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mrow.type"> + <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mrow.attlist"/> +</xs:complexType> + +<xs:element name="mrow" type="mrow.type"/> + +<!-- "mfrac" --> + +<xs:attributeGroup name="mfrac.attlist"> + <xs:attribute name="bevelled" type="xs:boolean"/> + <xs:attribute name="denomalign" type="centering" default="center"/> + <xs:attribute name="numalign" type="centering" default="center"/> + <xs:attribute name="linethickness" default="1"> + <xs:simpleType> + <xs:union memberTypes="length-with-optional-unit thickness"/> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mfrac.type"> + <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/> + <xs:attributeGroup ref="mfrac.attlist"/> +</xs:complexType> + +<xs:element name="mfrac" type="mfrac.type"/> + +<!-- "msqrt" --> + +<xs:attributeGroup name="msqrt.attlist"> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<!-- "msqrt" has an "inferred mrow" if more than one argument --> +<xs:complexType name="msqrt.type"> + <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="msqrt.attlist"/> +</xs:complexType> + +<xs:element name="msqrt" type="msqrt.type"/> + +<!-- "mroot" --> + +<xs:attributeGroup name="mroot.attlist"> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mroot.type"> + <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/> + <xs:attributeGroup ref="mroot.attlist"/> +</xs:complexType> + +<xs:element name="mroot" type="mroot.type"/> + +<!-- "mpadded" --> + +<xs:simpleType name="mpadded-space"> + <xs:restriction base="xs:string"> + <xs:pattern +value="(\+|-)?([0-9]+|[0-9]*\.[0-9]+)(((%?) *(width|lspace|height|depth))|(em|ex|px|in|cm|mm|pt|pc))"/> + </xs:restriction> +</xs:simpleType> + +<xs:simpleType name="mpadded-width-space"> + <xs:restriction base="xs:string"> + <!-- MaxF: definition from spec seems wrong, fixing to ([+|-] unsigned-number (%[pseudo-unit]|pseudo-unit|h-unit)) | namedspace | 0 --> + <xs:pattern value="((\+|-)?([0-9]+|[0-9]*\.[0-9]+)(((%?) *(width|lspace|height|depth)?)|(width|lspace|height|depth)|(em|ex|px|in|cm|mm|pt|pc)))|((veryverythin|verythin|thin|medium|thick|verythick|veryverythick)mathspace)|0"/> + </xs:restriction> +</xs:simpleType> + +<xs:attributeGroup name="mpadded.attlist"> + <xs:attribute name="width" type="mpadded-width-space"/> + <!-- should have default=0 below but '0' is not in value space --> + <!-- see bug #425 --> + <xs:attribute name="lspace" type="mpadded-space"/> + <xs:attribute name="height" type="mpadded-space"/> + <xs:attribute name="depth" type="mpadded-space"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mpadded.type"> + <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mpadded.attlist"/> +</xs:complexType> + +<xs:element name="mpadded" type="mpadded.type"/> + +<!-- "mphantom" --> + +<xs:attributeGroup name="mphantom.attlist"> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mphantom.type"> + <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mphantom.attlist"/> +</xs:complexType> + +<xs:element name="mphantom" type="mphantom.type"/> + +<!-- "mfenced" --> + +<xs:attributeGroup name="mfenced.attlist"> + <xs:attribute name="open" type="xs:string" default="("/> + <xs:attribute name="close" type="xs:string" default=")"/> + <xs:attribute name="separators" type="xs:string" default=","/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mfenced.type"> + <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mfenced.attlist"/> +</xs:complexType> + +<xs:element name="mfenced" type="mfenced.type"/> + +<!-- "menclose" --> + +<xs:attributeGroup name="menclose.attlist"> + <xs:attribute name="notation" default="longdiv"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="actuarial"/> + <xs:enumeration value="longdiv"/> + <xs:enumeration value="radical"/> + <xs:enumeration value="box"/> + <xs:enumeration value="roundedbox"/> + <xs:enumeration value="circle"/> + <xs:enumeration value="left"/> + <xs:enumeration value="right"/> + <xs:enumeration value="top"/> + <xs:enumeration value="bottom"/> + <xs:enumeration value="updiagonalstrike"/> + <xs:enumeration value="downdiagonalstrike"/> + <xs:enumeration value="verticalstrike"/> + <xs:enumeration value="horizontalstrike"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="menclose.type"> + <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="menclose.attlist"/> +</xs:complexType> + +<xs:element name="menclose" type="menclose.type"/> + +<!-- And the group of everything --> + +<xs:group name="Presentation-layout.class"> + <xs:choice> + <xs:element ref="mrow"/> + <xs:element ref="mfrac"/> + <xs:element ref="msqrt"/> + <xs:element ref="mroot"/> + <xs:element ref="mpadded"/> + <xs:element ref="mphantom"/> + <xs:element ref="mfenced"/> + <xs:element ref="menclose"/> + </xs:choice> +</xs:group> + +</xs:schema> + +<!-- + Copyright û 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/presentation/scripts.xsd b/schema/mathml2/presentation/scripts.xsd new file mode 100644 index 000000000000..cf7eea1543f9 --- /dev/null +++ b/schema/mathml2/presentation/scripts.xsd @@ -0,0 +1,186 @@ +<?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 presentation elements of MathML + dealing with subscripts and superscripts. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- "msub" --> + +<xs:attributeGroup name="msub.attlist"> + <xs:attribute name="subscriptshift" type="length-with-unit"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="msub.type"> + <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/> + <xs:attributeGroup ref="msub.attlist"/> +</xs:complexType> + +<xs:element name="msub" type="msub.type"/> + +<!-- "msup" --> + +<xs:attributeGroup name="msup.attlist"> + <xs:attribute name="superscriptshift" type="length-with-unit"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="msup.type"> + <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/> + <xs:attributeGroup ref="msup.attlist"/> +</xs:complexType> + +<xs:element name="msup" type="msup.type"/> + +<!-- "msubsup" --> + +<xs:attributeGroup name="msubsup.attlist"> + <xs:attribute name="subscriptshift" type="length-with-unit"/> + <xs:attribute name="superscriptshift" type="length-with-unit"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="msubsup.type"> + <xs:group ref="Presentation-expr.class" minOccurs="3" maxOccurs="3"/> + <xs:attributeGroup ref="msubsup.attlist"/> +</xs:complexType> + +<xs:element name="msubsup" type="msubsup.type"/> + +<!-- "munder" --> + +<xs:attributeGroup name="munder.attlist"> + <xs:attribute name="accentunder" type="xs:boolean"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="munder.type"> + <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/> + <xs:attributeGroup ref="munder.attlist"/> +</xs:complexType> + +<xs:element name="munder" type="munder.type"/> + +<!-- "mover" --> + +<xs:attributeGroup name="mover.attlist"> + <xs:attribute name="accent" type="xs:boolean"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mover.type"> + <xs:group ref="Presentation-expr.class" minOccurs="2" maxOccurs="2"/> + <xs:attributeGroup ref="mover.attlist"/> +</xs:complexType> + +<xs:element name="mover" type="mover.type"/> + +<!-- "munderover" --> + +<xs:attributeGroup name="munderover.attlist"> + <xs:attribute name="accent" type="xs:boolean"/> + <xs:attribute name="accentunder" type="xs:boolean"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="munderover.type"> + <xs:group ref="Presentation-expr.class" minOccurs="3" maxOccurs="3"/> + <xs:attributeGroup ref="munderover.attlist"/> +</xs:complexType> + +<xs:element name="munderover" type="munderover.type"/> + +<!-- "mmultiscripts", "mprescripts" and "none" --> + +<xs:attributeGroup name="mmultiscripts.attlist"> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="Presentation-expr-or-none.class"> + <xs:choice> + <xs:group ref="Presentation-expr.class"/> + <xs:element ref="none"/> + </xs:choice> +</xs:group> + +<!-- not used +<xs:group name="mprescripts.group"> + <xs:sequence> + <xs:element ref="mprescripts"/> + <xs:choice minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="Presentation-expr.class"/> + <xs:element ref="none"/> + </xs:choice> + </xs:sequence> +</xs:group> +--> + +<xs:group name="mmultiscripts.content"> + <xs:sequence> + <xs:group ref="Presentation-expr.class"/> + <xs:sequence minOccurs="0" maxOccurs="unbounded"> + <xs:group ref="Presentation-expr-or-none.class"/> + <xs:group ref="Presentation-expr-or-none.class"/> + </xs:sequence> + <xs:sequence minOccurs="0"> + <xs:element ref="mprescripts"/> + <xs:sequence maxOccurs="unbounded"> + <xs:group ref="Presentation-expr-or-none.class"/> + <xs:group ref="Presentation-expr-or-none.class"/> + </xs:sequence> + </xs:sequence> + </xs:sequence> +</xs:group> + +<xs:complexType name="mmultiscripts.type"> + <xs:group ref="mmultiscripts.content"/> + <xs:attributeGroup ref="mmultiscripts.attlist"/> +</xs:complexType> + +<xs:element name="mmultiscripts" type="mmultiscripts.type"/> + +<!-- Nothing... --> +<xs:complexType name="none.type"> +</xs:complexType> + +<xs:element name="none" type="none.type"/> + +<!-- also void --> +<xs:complexType name="mprescripts.type"> +</xs:complexType> + +<xs:element name="mprescripts" type="mprescripts.type"/> + +<!-- And the group of everything --> + +<xs:group name="Presentation-script.class"> + <xs:choice> + <xs:element ref="msub"/> + <xs:element ref="msup"/> + <xs:element ref="msubsup"/> + <xs:element ref="munder"/> + <xs:element ref="mover"/> + <xs:element ref="munderover"/> + <xs:element ref="mmultiscripts"/> + </xs:choice> +</xs:group> + +</xs:schema> + +<!-- + Copyright û 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/presentation/space.xsd b/schema/mathml2/presentation/space.xsd new file mode 100644 index 000000000000..243735385d76 --- /dev/null +++ b/schema/mathml2/presentation/space.xsd @@ -0,0 +1,52 @@ +<?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 MathML "mspace" element. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<xs:attributeGroup name="mspace.attlist"> + <xs:attribute name="width" default="0em"> + <xs:simpleType> + <xs:union memberTypes="length-with-unit named-space"/> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="height" type="length-with-unit" default="0ex"/> + <xs:attribute name="depth" type="length-with-unit" default="0ex"/> + <xs:attribute name="linebreak" default="auto"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="auto"/> + <xs:enumeration value="newline"/> + <xs:enumeration value="indentingnewline"/> + <xs:enumeration value="nobreak"/> + <xs:enumeration value="goodbreak"/> + <xs:enumeration value="badbreak"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mspace.type"> + <xs:attributeGroup ref="mspace.attlist"/> +</xs:complexType> + +<xs:element name="mspace" type="mspace.type"/> + +</xs:schema> +<!-- + Copyright û 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/presentation/style.xsd b/schema/mathml2/presentation/style.xsd new file mode 100644 index 000000000000..a0181218b303 --- /dev/null +++ b/schema/mathml2/presentation/style.xsd @@ -0,0 +1,69 @@ +<?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 for the "mstyle" element of MathML. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- "mstyle" --> + +<xs:attributeGroup name="mstyle.attlist"> + <xs:attribute name="scriptlevel" type="xs:integer"/> + <xs:attribute name="displaystyle" type="xs:boolean"/> + <xs:attribute name="scriptsizemultiplier" type="xs:decimal" default="0.71"/> + <xs:attribute name="scriptminsize" type="length-with-unit" default="8pt"/> + <xs:attribute name="color" type="xs:string"/> + <xs:attribute name="background" type="xs:string" default="transparent"/> + <xs:attribute name="veryverythinmathspace" type="length-with-unit" + default="0.0555556em"/> + <xs:attribute name="verythinmathspace" type="length-with-unit" + default="0.111111em"/> + <xs:attribute name="thinmathspace" type="length-with-unit" + default="0.166667em"/> + <xs:attribute name="mediummathspace" type="length-with-unit" + default="0.222222em"/> + <xs:attribute name="thickmathspace" type="length-with-unit" + default="0.277778em"/> + <xs:attribute name="verythickmathspace" type="length-with-unit" + default="0.333333em"/> + <xs:attribute name="veryverythickmathspace" type="length-with-unit" + default="0.388889em"/> + <xs:attribute name="linethickness" default="1"> + <xs:simpleType> + <xs:union memberTypes="length-with-optional-unit thickness"/> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="Operator.attrib"/> + <xs:attributeGroup ref="Token-style.attrib"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="mstyle.content"> + <xs:sequence> + <xs:group ref="Presentation-expr.class"/> + </xs:sequence> +</xs:group> + +<xs:complexType name="mstyle.type"> + <xs:group ref="mstyle.content" minOccurs="1" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mstyle.attlist"/> +</xs:complexType> + +<xs:element name="mstyle" type="mstyle.type"/> + +</xs:schema> +<!-- + Copyright û 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/presentation/table.xsd b/schema/mathml2/presentation/table.xsd new file mode 100644 index 000000000000..968f7bc82e59 --- /dev/null +++ b/schema/mathml2/presentation/table.xsd @@ -0,0 +1,216 @@ +<?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 tables in MathML presentation. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- Common attributes --> + +<xs:attributeGroup name="Table-alignment.attrib"> + <xs:attribute name="rowalign" default="baseline"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="(top|bottom|center|baseline|axis)( top| bottom| center| baseline| axis)*"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="columnalign" default="center"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="(left|center|right)( left| center| right)*"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="groupalign" type="xs:string"/> +</xs:attributeGroup> + +<!-- "mtr" --> + +<xs:attributeGroup name="mtr.attlist"> + <xs:attributeGroup ref="Table-alignment.attrib"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="mtr.content"> + <xs:sequence> + <xs:element ref="mtd"/> + </xs:sequence> +</xs:group> + +<xs:complexType name="mtr.type"> + <xs:group ref="mtr.content" minOccurs="1" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mtr.attlist"/> +</xs:complexType> + +<xs:element name="mtr" type="mtr.type"/> + +<!-- "labeledtr" --> + +<xs:attributeGroup name="mlabeledtr.attlist"> + <xs:attributeGroup ref="Table-alignment.attrib"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="mlabeledtr.content"> + <xs:sequence> + <xs:element ref="mtd"/> + </xs:sequence> +</xs:group> + +<xs:complexType name="mlabeledtr.type"> + <xs:group ref="mlabeledtr.content" minOccurs="1" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mlabeledtr.attlist"/> +</xs:complexType> + +<xs:element name="mlabeledtr" type="mlabeledtr.type"/> + +<!-- "mtd" --> + +<xs:attributeGroup name="mtd.attlist"> + <xs:attributeGroup ref="Table-alignment.attrib"/> + <xs:attribute name="columnspan" type="xs:positiveInteger" default="1"/> + <xs:attribute name="rowspan" type="xs:positiveInteger" default="1"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="mtd.content"> + <xs:sequence> + <xs:group ref="Presentation-expr.class" minOccurs="0" maxOccurs="1"/> + </xs:sequence> +</xs:group> + +<xs:complexType name="mtd.type"> + <xs:group ref="mtd.content" minOccurs="1" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mtd.attlist"/> +</xs:complexType> + +<xs:element name="mtd" type="mtd.type"/> + +<!-- "mtable" --> + +<xs:attributeGroup name="mtable.attlist"> + <xs:attributeGroup ref="Table-alignment.attrib"/> + <xs:attribute name="align" type="xs:string" default="axis"/> + <xs:attribute name="alignmentscope" default="true"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:pattern value="(true|false)( true| false)*"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="columnwidth" type="xs:string" default="auto"/> + <xs:attribute name="width" type="xs:string" default="auto"/> + <xs:attribute name="rowspacing" type="xs:string" default="1.0ex"/> + <xs:attribute name="columnspacing" type="xs:string" default="0.8em"/> + <xs:attribute name="rowlines" type="xs:string" default="none"/> + <xs:attribute name="columnlines" type="xs:string" default="none"/> + <xs:attribute name="frame" default="none"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="none"/> + <xs:enumeration value="solid"/> + <xs:enumeration value="dashed"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="framespacing" type="xs:string" default="0.4em 0.5ex"/> + <xs:attribute name="equalrows" type="xs:boolean" default="false"/> + <xs:attribute name="equalcolumns" type="xs:boolean" default="false"/> + <xs:attribute name="displaystyle" type="xs:boolean" default="false"/> + <xs:attribute name="side" default="right"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="left"/> + <xs:enumeration value="right"/> + <xs:enumeration value="leftoverlap"/> + <xs:enumeration value="rightoverlap"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attribute name="minlabelspacing" type="length-with-unit" default="0.8em"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:group name="mtable.content"> + <xs:choice> + <xs:element ref="mtr"/> + <xs:element ref="mlabeledtr"/> + </xs:choice> +</xs:group> + +<xs:complexType name="mtable.type"> + <xs:group ref="mtable.content" minOccurs="1" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mtable.attlist"/> +</xs:complexType> + +<xs:element name="mtable" type="mtable.type"/> + +<!-- "maligngroup" --> + +<xs:attributeGroup name="maligngroup.attlist"> + <xs:attribute name="groupalign"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="left"/> + <xs:enumeration value="center"/> + <xs:enumeration value="right"/> + <xs:enumeration value="decimalpoint"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="maligngroup.type"> + <xs:attributeGroup ref="maligngroup.attlist"/> +</xs:complexType> + +<xs:element name="maligngroup" type="maligngroup.type"/> + +<!-- "malignmark" --> + +<xs:attributeGroup name="malignmark.attlist"> + <xs:attribute name="edge" default="left"> + <xs:simpleType> + <xs:restriction base="xs:string"> + <xs:enumeration value="left"/> + <xs:enumeration value="right"/> + </xs:restriction> + </xs:simpleType> + </xs:attribute> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="malignmark.type"> + <xs:attributeGroup ref="malignmark.attlist"/> +</xs:complexType> + +<xs:element name="malignmark" type="malignmark.type"/> + +<!-- The group of everything --> + +<xs:group name="Presentation-table.class"> + <xs:choice> + <xs:element ref="mtable"/> + <xs:element ref="maligngroup"/> + <xs:element ref="malignmark"/> + </xs:choice> +</xs:group> + +</xs:schema> +<!-- + Copyright û 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/presentation/tokens.xsd b/schema/mathml2/presentation/tokens.xsd new file mode 100644 index 000000000000..56d156c6590f --- /dev/null +++ b/schema/mathml2/presentation/tokens.xsd @@ -0,0 +1,124 @@ +<?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 + presentation part of MathML. + Author: Stéphane Dalmas, INRIA. + </xs:documentation> +</xs:annotation> + +<!-- The content of presentation token elements is either normal + characters, "mglyph" ones or alignment marks --> + +<xs:group name="Glyph-alignmark.class"> + <xs:choice> + <xs:element ref="malignmark"/> + <xs:element ref="mglyph"/> + </xs:choice> +</xs:group> + +<!-- "mi" --> + +<!-- "mi" is supposed to have a default value of its "mathvariant" attribute + set to "italic" --> +<xs:attributeGroup name="mi.attlist"> + <xs:attributeGroup ref="Token-style.attrib"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mi.type" mixed="true"> + <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mi.attlist"/> +</xs:complexType> + +<xs:element name="mi" type="mi.type"/> + +<!-- "mo" --> + +<xs:attributeGroup name="mo.attlist"> + <xs:attributeGroup ref="Operator.attrib"/> + <xs:attributeGroup ref="Token-style.attrib"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mo.type" mixed="true"> + <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mo.attlist"/> +</xs:complexType> + +<xs:element name="mo" type="mo.type"/> + +<!-- "mn" --> + +<xs:attributeGroup name="mn.attlist"> + <xs:attributeGroup ref="Token-style.attrib"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mn.type" mixed="true"> + <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mi.attlist"/> +</xs:complexType> + +<xs:element name="mn" type="mn.type"/> + +<!-- "mtext" --> + +<xs:attributeGroup name="mtext.attlist"> + <xs:attributeGroup ref="Token-style.attrib"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="mtext.type" mixed="true"> + <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="mtext.attlist"/> +</xs:complexType> + +<xs:element name="mtext" type="mtext.type"/> + +<!-- "ms" --> + +<xs:attributeGroup name="ms.attlist"> + <!-- the values of "lquote" or "rquote" are not restricted to be + one character strings... --> + <xs:attribute name="lquote" type="xs:string" default="""/> + <xs:attribute name="rquote" type="xs:string" default="""/> + <xs:attributeGroup ref="Token-style.attrib"/> + <xs:attributeGroup ref="Common.attrib"/> +</xs:attributeGroup> + +<xs:complexType name="ms.type" mixed="true"> + <xs:group ref="Glyph-alignmark.class" minOccurs="0" maxOccurs="unbounded"/> + <xs:attributeGroup ref="ms.attlist"/> +</xs:complexType> + +<xs:element name="ms" type="ms.type"/> + +<!-- And the group of any token --> + +<xs:group name="Presentation-token.class"> + <xs:choice> + <xs:element ref="mi"/> + <xs:element ref="mo"/> + <xs:element ref="mn"/> + <xs:element ref="mtext"/> + <xs:element ref="ms"/> + </xs:choice> +</xs:group> + +</xs:schema> + +<!-- + Copyright û 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/. + --> |