Files
Michael Stahl a09ed7100e 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>
2018-06-26 12:20:31 +02:00

187 lines
5.2 KiB
XML

<?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&#233;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 &#251; 2002 World Wide Web Consortium, (Massachusetts Institute
of Technology, Institut National de Recherche en Informatique et en
Automatique, Keio University). All Rights Reserved. See
http://www.w3.org/Consortium/Legal/.
-->