<?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/.
-->