<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.w3.org/1998/Math/MathML" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:ns1="http://www.tei-c.org/ns/1.0" xmlns:xlink="http://www.w3.org/1999/xlink">
  <xs:import namespace="http://www.tei-c.org/ns/1.0" schemaLocation="ns1.xsd"/>
  <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2004/10/xml.xsd"/>
  <!-- Schema generated from ODD source 2008-07-08T18:04:27Z. -->
  <!--
    
    This template file is freely available and you are hereby
                authorised to copy, modify, and redistribute it in any way without
                further reference or permissions.
    When making such modifications, you are strongly recommended to
                change the present text to include an accurate statement of the
                licencing conditions applicable to your modified text.
  -->
  <!-- MathML 2.0 DTD  ....................................................... -->
  <!-- file: mathml2.dtd -->
  <!--
    MathML 2.0 DTD
    
    This is the Mathematical Markup Language (MathML) 2.0, an XML
    application for describing mathematical notation and capturing
    both its structure and content.
    
    Copyright 1998-2002 World Wide Web Consortium
       (Massachusetts Institute of Technology, Institut National de
        Recherche en Informatique et en Automatique, Keio University).
        All Rights Reserved.
    
    Permission to use, copy, modify and distribute the MathML 2.0 DTD and
    its accompanying documentation for any purpose and without fee is
    hereby granted in perpetuity, provided that the above copyright notice
    and this paragraph appear in all copies.  The copyright holders make
    no representation about the suitability of the DTD for any purpose.
    
    It is provided "as is" without expressed or implied warranty.
    
       Revision:   $Id: tei_math.xsd,v 1.1 2008/10/15 14:46:30 sorin Exp $
    
    This entity may be identified by the PUBLIC and SYSTEM identifiers:
    
      PUBLIC "-//W3C//DTD MathML 2.0//EN"
      SYSTEM "mathml2.dtd"
    
    Revisions: editor and revision history at EOF
  -->
  <!-- MathML Qualified Names module ............................... -->
  <!-- Start of import of mathml2-qname-1.mod.rng -->
  <!-- ....................................................................... -->
  <!-- MathML Qualified Names Module  ........................................ -->
  <!--
    file: mathml2-qname-1.mod
    
    This is the Mathematical Markup Language (MathML) 2.0, an XML 
    application for describing mathematical notation and capturing 
    both its structure and content.
    
    Copyright 1998-2000 W3C (MIT, INRIA, Keio), All Rights Reserved.
    Revision: $Id: tei_math.xsd,v 1.1 2008/10/15 14:46:30 sorin Exp $ 
    
    This DTD module is identified by the PUBLIC and SYSTEM identifiers:
    
      PUBLIC "-//W3C//ENTITIES MathML 2.0 Qualified Names 1.0//EN"
      SYSTEM "mathml2-qname-1.mod"
    
    Revisions:
    (none)
    .......................................................................
  -->
  <!--
    MathML Qualified Names
    
    This module is contained in two parts, labeled Section 'A' and 'B':
    
      Section A declares parameter entities to support namespace-
      qualified names, namespace declarations, and name prefixing 
      for MathML.
    
      Section B declares parameter entities used to provide
      namespace-qualified names for all MathML element types.
    
    This module is derived from the XHTML Qualified Names Template module.
  -->
  <!-- Section A: XHTML XML Namespace Framework :::::::::::::::::::: -->
  <!-- XLink ............... -->
  <!-- MathML .............. -->
  <!-- End of import of mathml2-qname-1.mod.rng -->
  <!--
    if %NS.prefixed; is INCLUDE, include all NS attributes, 
    otherwise just those associated with MathML
  -->
  <!-- Attributes shared by all elements  .......................... -->
  <xs:attributeGroup name="MATHML.Common.attrib">
    <xs:attribute ref="xlink:href"/>
    <xs:attribute ref="xlink:type"/>
    <xs:attribute name="class"/>
    <xs:attribute name="style"/>
    <xs:attribute name="id" type="xs:ID"/>
    <xs:attribute name="xref" type="xs:IDREF"/>
    <xs:attribute name="other"/>
  </xs:attributeGroup>
  <!-- Presentation element set  ................................... -->
  <!-- Attribute definitions -->
  <xs:attributeGroup name="mathml.att-fontsize">
    <xs:attribute name="fontsize"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-fontweight">
    <xs:attribute name="fontweight">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="bold"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-fontstyle">
    <xs:attribute name="fontstyle">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="normal"/>
          <xs:enumeration value="italic"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-fontfamily">
    <xs:attribute name="fontfamily"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-color">
    <xs:attribute name="color"/>
  </xs:attributeGroup>
  <!-- MathML2 typographically-distinguished symbol attributes -->
  <xs:attributeGroup name="mathml.att-mathvariant">
    <xs:attribute name="mathvariant"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-mathsize">
    <xs:attribute name="mathsize"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-mathcolor">
    <xs:attribute name="mathcolor"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-mathbackground">
    <xs:attribute name="mathbackground"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-fontinfo">
    <xs:attributeGroup ref="mathml:mathml.att-fontsize"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontweight"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontstyle"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontfamily"/>
    <xs:attributeGroup ref="mathml:mathml.att-color"/>
    <xs:attributeGroup ref="mathml:mathml.att-mathvariant"/>
    <xs:attributeGroup ref="mathml:mathml.att-mathsize"/>
    <xs:attributeGroup ref="mathml:mathml.att-mathcolor"/>
    <xs:attributeGroup ref="mathml:mathml.att-mathbackground"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-form">
    <xs:attribute name="form">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="prefix"/>
          <xs:enumeration value="infix"/>
          <xs:enumeration value="postfix"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-fence">
    <xs:attribute name="fence">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-separator">
    <xs:attribute name="separator">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-lspace">
    <xs:attribute name="lspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-rspace">
    <xs:attribute name="rspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-stretchy">
    <xs:attribute name="stretchy">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-symmetric">
    <xs:attribute name="symmetric">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-maxsize">
    <xs:attribute name="maxsize"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-minsize">
    <xs:attribute name="minsize"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-largeop">
    <xs:attribute name="largeop">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-movablelimits">
    <xs:attribute name="movablelimits">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-accent">
    <xs:attribute name="accent">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-opinfo">
    <xs:attributeGroup ref="mathml:mathml.att-form"/>
    <xs:attributeGroup ref="mathml:mathml.att-fence"/>
    <xs:attributeGroup ref="mathml:mathml.att-separator"/>
    <xs:attributeGroup ref="mathml:mathml.att-lspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-rspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-stretchy"/>
    <xs:attributeGroup ref="mathml:mathml.att-symmetric"/>
    <xs:attributeGroup ref="mathml:mathml.att-maxsize"/>
    <xs:attributeGroup ref="mathml:mathml.att-minsize"/>
    <xs:attributeGroup ref="mathml:mathml.att-largeop"/>
    <xs:attributeGroup ref="mathml:mathml.att-movablelimits"/>
    <xs:attributeGroup ref="mathml:mathml.att-accent"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-width">
    <xs:attribute name="width"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-height">
    <xs:attribute name="height"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-depth">
    <xs:attribute name="depth"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-linebreak">
    <xs:attribute name="linebreak"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-sizeinfo">
    <xs:attributeGroup ref="mathml:mathml.att-width"/>
    <xs:attributeGroup ref="mathml:mathml.att-height"/>
    <xs:attributeGroup ref="mathml:mathml.att-depth"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-lquote">
    <xs:attribute name="lquote"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-rquote">
    <xs:attribute name="rquote"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-linethickness">
    <xs:attribute name="linethickness"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-scriptlevel">
    <xs:attribute name="scriptlevel"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-displaystyle">
    <xs:attribute name="displaystyle">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-scriptsizemultiplier">
    <xs:attribute name="scriptsizemultiplier"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-scriptminsize">
    <xs:attribute name="scriptminsize"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-background">
    <xs:attribute name="background"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-veryverythinmathspace">
    <xs:attribute name="veryverythinmathspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-verythinmathspace">
    <xs:attribute name="verythinmathspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-thinmathspace">
    <xs:attribute name="thinmathspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-mediummathspace">
    <xs:attribute name="mediummathspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-thickmathspace">
    <xs:attribute name="thickmathspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-verythickmathspace">
    <xs:attribute name="verythickmathspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-veryverythickmathspace">
    <xs:attribute name="veryverythickmathspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-open">
    <xs:attribute name="open"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-close">
    <xs:attribute name="close"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-separators">
    <xs:attribute name="separators"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-subscriptshift">
    <xs:attribute name="subscriptshift"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-superscriptshift">
    <xs:attribute name="superscriptshift"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-accentunder">
    <xs:attribute name="accentunder">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true"/>
          <xs:enumeration value="false"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-align">
    <xs:attribute name="align"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-numalign">
    <xs:attribute name="numalign"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-denomalign">
    <xs:attribute name="denomalign"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-rowalign">
    <xs:attribute name="rowalign"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-columnalign">
    <xs:attribute name="columnalign"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-columnwidth">
    <xs:attribute name="columnwidth"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-groupalign">
    <xs:attribute name="groupalign"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-alignmentscope">
    <xs:attribute name="alignmentscope"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-rowspacing">
    <xs:attribute name="rowspacing"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-columnspacing">
    <xs:attribute name="columnspacing"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-rowlines">
    <xs:attribute name="rowlines"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-columnlines">
    <xs:attribute name="columnlines"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-frame">
    <xs:attribute name="frame">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="none"/>
          <xs:enumeration value="solid"/>
          <xs:enumeration value="dashed"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-side">
    <xs:attribute name="side">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
          <xs:enumeration value="leftoverlap"/>
          <xs:enumeration value="rightoverlap"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-framespacing">
    <xs:attribute name="framespacing"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-equalrows">
    <xs:attribute name="equalrows"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-equalcolumns">
    <xs:attribute name="equalcolumns"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-tableinfo">
    <xs:attributeGroup ref="mathml:mathml.att-align"/>
    <xs:attributeGroup ref="mathml:mathml.att-rowalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnwidth"/>
    <xs:attributeGroup ref="mathml:mathml.att-groupalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-alignmentscope"/>
    <xs:attributeGroup ref="mathml:mathml.att-side"/>
    <xs:attributeGroup ref="mathml:mathml.att-rowspacing"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnspacing"/>
    <xs:attributeGroup ref="mathml:mathml.att-rowlines"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnlines"/>
    <xs:attributeGroup ref="mathml:mathml.att-width"/>
    <xs:attributeGroup ref="mathml:mathml.att-frame"/>
    <xs:attributeGroup ref="mathml:mathml.att-framespacing"/>
    <xs:attributeGroup ref="mathml:mathml.att-equalrows"/>
    <xs:attributeGroup ref="mathml:mathml.att-equalcolumns"/>
    <xs:attributeGroup ref="mathml:mathml.att-displaystyle"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-rowspan">
    <xs:attribute name="rowspan"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-columnspan">
    <xs:attribute name="columnspan"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-edge">
    <xs:attribute name="edge">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="left"/>
          <xs:enumeration value="right"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-actiontype">
    <xs:attribute name="actiontype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-selection">
    <xs:attribute name="selection"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-name">
    <xs:attribute name="name"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-alt">
    <xs:attribute name="alt"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-index">
    <xs:attribute name="index"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-bevelled">
    <xs:attribute name="bevelled"/>
  </xs:attributeGroup>
  <!-- Presentation schemata with content -->
  <xs:group name="mathml.ptoken">
    <xs:choice>
      <xs:element ref="mathml:mi"/>
      <xs:element ref="mathml:mn"/>
      <xs:element ref="mathml:mo"/>
      <xs:element ref="mathml:mtext"/>
      <xs:element ref="mathml:ms"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-mi">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontinfo"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mn">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontinfo"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mo">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontinfo"/>
    <xs:attributeGroup ref="mathml:mathml.att-opinfo"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mtext">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontinfo"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-ms">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontinfo"/>
    <xs:attributeGroup ref="mathml:mathml.att-lquote"/>
    <xs:attributeGroup ref="mathml:mathml.att-rquote"/>
  </xs:attributeGroup>
  <!-- Empty presentation schemata -->
  <xs:group name="mathml.petoken">
    <xs:sequence>
      <xs:element ref="mathml:mspace"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="mspace">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-mspace"/>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="mathml.any" mixed="true">
    <xs:choice minOccurs="0">
      <xs:element ref="mathml:mspace"/>
      <xs:element ref="mathml:mprescripts"/>
      <xs:element ref="mathml:none"/>
      <xs:element ref="mathml:malignmark"/>
      <xs:element ref="mathml:maligngroup"/>
      <xs:element ref="mathml:mglyph"/>
      <xs:element ref="mathml:sep"/>
      <xs:element ref="mathml:integers"/>
      <xs:element ref="mathml:reals"/>
      <xs:element ref="mathml:rationals"/>
      <xs:element ref="mathml:naturalnumbers"/>
      <xs:element ref="mathml:complexes"/>
      <xs:element ref="mathml:primes"/>
      <xs:element ref="mathml:exponentiale"/>
      <xs:element ref="mathml:imaginaryi"/>
      <xs:element ref="mathml:notanumber"/>
      <xs:element ref="mathml:true"/>
      <xs:element ref="mathml:false"/>
      <xs:element ref="mathml:emptyset"/>
      <xs:element ref="mathml:pi"/>
      <xs:element ref="mathml:eulergamma"/>
      <xs:element ref="mathml:infinity"/>
      <xs:element ref="mathml:inverse"/>
      <xs:element ref="mathml:domain"/>
      <xs:element ref="mathml:codomain"/>
      <xs:element ref="mathml:image"/>
      <xs:element ref="mathml:ident"/>
      <xs:element ref="mathml:compose"/>
      <xs:element ref="mathml:exp"/>
      <xs:element ref="mathml:abs"/>
      <xs:element ref="mathml:arg"/>
      <xs:element ref="mathml:real"/>
      <xs:element ref="mathml:imaginary"/>
      <xs:element ref="mathml:conjugate"/>
      <xs:element ref="mathml:factorial"/>
      <xs:element ref="mathml:floor"/>
      <xs:element ref="mathml:ceiling"/>
      <xs:element ref="mathml:minus"/>
      <xs:element ref="mathml:quotient"/>
      <xs:element ref="mathml:divide"/>
      <xs:element ref="mathml:power"/>
      <xs:element ref="mathml:rem"/>
      <xs:element ref="mathml:plus"/>
      <xs:element ref="mathml:max"/>
      <xs:element ref="mathml:min"/>
      <xs:element ref="mathml:times"/>
      <xs:element ref="mathml:gcd"/>
      <xs:element ref="mathml:lcm"/>
      <xs:element ref="mathml:root"/>
      <xs:element ref="mathml:exists"/>
      <xs:element ref="mathml:forall"/>
      <xs:element ref="mathml:and"/>
      <xs:element ref="mathml:or"/>
      <xs:element ref="mathml:xor"/>
      <xs:element ref="mathml:not"/>
      <xs:element ref="mathml:implies"/>
      <xs:element ref="mathml:divergence"/>
      <xs:element ref="mathml:grad"/>
      <xs:element ref="mathml:curl"/>
      <xs:element ref="mathml:laplacian"/>
      <xs:element ref="mathml:log"/>
      <xs:element ref="mathml:int"/>
      <xs:element ref="mathml:diff"/>
      <xs:element ref="mathml:partialdiff"/>
      <xs:element ref="mathml:ln"/>
      <xs:element ref="mathml:card"/>
      <xs:element ref="mathml:setdiff"/>
      <xs:element ref="mathml:union"/>
      <xs:element ref="mathml:intersect"/>
      <xs:element ref="mathml:cartesianproduct"/>
      <xs:element ref="mathml:sum"/>
      <xs:element ref="mathml:product"/>
      <xs:element ref="mathml:limit"/>
      <xs:element ref="mathml:sin"/>
      <xs:element ref="mathml:cos"/>
      <xs:element ref="mathml:tan"/>
      <xs:element ref="mathml:sec"/>
      <xs:element ref="mathml:csc"/>
      <xs:element ref="mathml:cot"/>
      <xs:element ref="mathml:sinh"/>
      <xs:element ref="mathml:cosh"/>
      <xs:element ref="mathml:tanh"/>
      <xs:element ref="mathml:sech"/>
      <xs:element ref="mathml:csch"/>
      <xs:element ref="mathml:coth"/>
      <xs:element ref="mathml:arcsin"/>
      <xs:element ref="mathml:arccos"/>
      <xs:element ref="mathml:arctan"/>
      <xs:element ref="mathml:arccosh"/>
      <xs:element ref="mathml:arccot"/>
      <xs:element ref="mathml:arccoth"/>
      <xs:element ref="mathml:arccsc"/>
      <xs:element ref="mathml:arccsch"/>
      <xs:element ref="mathml:arcsec"/>
      <xs:element ref="mathml:arcsech"/>
      <xs:element ref="mathml:arcsinh"/>
      <xs:element ref="mathml:arctanh"/>
      <xs:element ref="mathml:mean"/>
      <xs:element ref="mathml:sdev"/>
      <xs:element ref="mathml:variance"/>
      <xs:element ref="mathml:median"/>
      <xs:element ref="mathml:mode"/>
      <xs:element ref="mathml:moment"/>
      <xs:element ref="mathml:determinant"/>
      <xs:element ref="mathml:transpose"/>
      <xs:element ref="mathml:vectorproduct"/>
      <xs:element ref="mathml:scalarproduct"/>
      <xs:element ref="mathml:outerproduct"/>
      <xs:element ref="mathml:selector"/>
      <xs:element ref="mathml:neq"/>
      <xs:element ref="mathml:factorof"/>
      <xs:element ref="mathml:eq"/>
      <xs:element ref="mathml:equivalent"/>
      <xs:element ref="mathml:approx"/>
      <xs:element ref="mathml:gt"/>
      <xs:element ref="mathml:lt"/>
      <xs:element ref="mathml:geq"/>
      <xs:element ref="mathml:leq"/>
      <xs:element ref="mathml:in"/>
      <xs:element ref="mathml:notin"/>
      <xs:element ref="mathml:notsubset"/>
      <xs:element ref="mathml:notprsubset"/>
      <xs:element ref="mathml:subset"/>
      <xs:element ref="mathml:prsubset"/>
      <xs:element ref="mathml:tendsto"/>
      <xs:element ref="mathml:ci"/>
      <xs:element ref="mathml:csymbol"/>
      <xs:element ref="mathml:cn"/>
      <xs:element ref="mathml:apply"/>
      <xs:element ref="mathml:reln"/>
      <xs:element ref="mathml:lambda"/>
      <xs:element ref="mathml:condition"/>
      <xs:element ref="mathml:declare"/>
      <xs:element ref="mathml:semantics"/>
      <xs:element ref="mathml:annotation"/>
      <xs:element ref="mathml:annotation-xml"/>
      <xs:element ref="mathml:interval"/>
      <xs:element ref="mathml:set"/>
      <xs:element ref="mathml:list"/>
      <xs:element ref="mathml:vector"/>
      <xs:element ref="mathml:matrix"/>
      <xs:element ref="mathml:matrixrow"/>
      <xs:element ref="mathml:piecewise"/>
      <xs:element ref="mathml:piece"/>
      <xs:element ref="mathml:otherwise"/>
      <xs:element ref="mathml:fn"/>
      <xs:element ref="mathml:lowlimit"/>
      <xs:element ref="mathml:uplimit"/>
      <xs:element ref="mathml:bvar"/>
      <xs:element ref="mathml:degree"/>
      <xs:element ref="mathml:logbase"/>
      <xs:element ref="mathml:momentabout"/>
      <xs:element ref="mathml:domainofapplication"/>
      <xs:element ref="mathml:mstyle"/>
      <xs:element ref="mathml:merror"/>
      <xs:element ref="mathml:mphantom"/>
      <xs:element ref="mathml:mrow"/>
      <xs:element ref="mathml:mfrac"/>
      <xs:element ref="mathml:msqrt"/>
      <xs:element ref="mathml:menclose"/>
      <xs:element ref="mathml:mroot"/>
      <xs:element ref="mathml:msub"/>
      <xs:element ref="mathml:msup"/>
      <xs:element ref="mathml:msubsup"/>
      <xs:element ref="mathml:mmultiscripts"/>
      <xs:element ref="mathml:munder"/>
      <xs:element ref="mathml:mover"/>
      <xs:element ref="mathml:munderover"/>
      <xs:element ref="mathml:mtable"/>
      <xs:element ref="mathml:mtr"/>
      <xs:element ref="mathml:mlabeledtr"/>
      <xs:element ref="mathml:mtd"/>
      <xs:element ref="mathml:maction"/>
      <xs:element ref="mathml:mfenced"/>
      <xs:element ref="mathml:mpadded"/>
      <xs:element ref="mathml:mi"/>
      <xs:element ref="mathml:mn"/>
      <xs:element ref="mathml:mo"/>
      <xs:element ref="mathml:mtext"/>
      <xs:element ref="mathml:ms"/>
      <xs:element ref="mathml:math"/>
    </xs:choice>
  </xs:complexType>
  <xs:attributeGroup name="mathml.attlist-mspace">
    <xs:attributeGroup ref="mathml:mathml.att-sizeinfo"/>
    <xs:attributeGroup ref="mathml:mathml.att-linebreak"/>
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <!-- Presentation: general layout schemata -->
  <xs:group name="mathml.pgenschema">
    <xs:choice>
      <xs:element ref="mathml:mrow"/>
      <xs:element ref="mathml:mfrac"/>
      <xs:element ref="mathml:msqrt"/>
      <xs:element ref="mathml:mroot"/>
      <xs:element ref="mathml:menclose"/>
      <xs:element ref="mathml:mstyle"/>
      <xs:element ref="mathml:merror"/>
      <xs:element ref="mathml:mpadded"/>
      <xs:element ref="mathml:mphantom"/>
      <xs:element ref="mathml:mfenced"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-mrow">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mfrac">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-bevelled"/>
    <xs:attributeGroup ref="mathml:mathml.att-numalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-denomalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-linethickness"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-msqrt">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-menclose">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attribute name="notation" default="longdiv"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mroot">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mstyle">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontinfo"/>
    <xs:attributeGroup ref="mathml:mathml.att-opinfo"/>
    <xs:attributeGroup ref="mathml:mathml.att-lquote"/>
    <xs:attributeGroup ref="mathml:mathml.att-rquote"/>
    <xs:attributeGroup ref="mathml:mathml.att-linethickness"/>
    <xs:attributeGroup ref="mathml:mathml.att-scriptlevel"/>
    <xs:attributeGroup ref="mathml:mathml.att-scriptsizemultiplier"/>
    <xs:attributeGroup ref="mathml:mathml.att-scriptminsize"/>
    <xs:attributeGroup ref="mathml:mathml.att-background"/>
    <xs:attributeGroup ref="mathml:mathml.att-veryverythinmathspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-verythinmathspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-thinmathspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-mediummathspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-thickmathspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-verythickmathspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-veryverythickmathspace"/>
    <xs:attributeGroup ref="mathml:mathml.att-open"/>
    <xs:attributeGroup ref="mathml:mathml.att-close"/>
    <xs:attributeGroup ref="mathml:mathml.att-separators"/>
    <xs:attributeGroup ref="mathml:mathml.att-subscriptshift"/>
    <xs:attributeGroup ref="mathml:mathml.att-superscriptshift"/>
    <xs:attributeGroup ref="mathml:mathml.att-accentunder"/>
    <xs:attributeGroup ref="mathml:mathml.att-tableinfo"/>
    <xs:attributeGroup ref="mathml:mathml.att-rowspan"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnspan"/>
    <xs:attributeGroup ref="mathml:mathml.att-edge"/>
    <xs:attributeGroup ref="mathml:mathml.att-actiontype"/>
    <xs:attributeGroup ref="mathml:mathml.att-selection"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-merror">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mpadded">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-sizeinfo"/>
    <xs:attributeGroup ref="mathml:mathml.att-lspace"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mphantom">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mfenced">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-open"/>
    <xs:attributeGroup ref="mathml:mathml.att-close"/>
    <xs:attributeGroup ref="mathml:mathml.att-separators"/>
  </xs:attributeGroup>
  <!-- Presentation layout schemata: scripts and limits -->
  <xs:group name="mathml.pscrschema">
    <xs:choice>
      <xs:element ref="mathml:msub"/>
      <xs:element ref="mathml:msup"/>
      <xs:element ref="mathml:msubsup"/>
      <xs:element ref="mathml:munder"/>
      <xs:element ref="mathml:mover"/>
      <xs:element ref="mathml:munderover"/>
      <xs:element ref="mathml:mmultiscripts"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-msub">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-subscriptshift"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-msup">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-superscriptshift"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-msubsup">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-subscriptshift"/>
    <xs:attributeGroup ref="mathml:mathml.att-superscriptshift"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-munder">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-accentunder"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mover">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-accent"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-munderover">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-accent"/>
    <xs:attributeGroup ref="mathml:mathml.att-accentunder"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mmultiscripts">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-subscriptshift"/>
    <xs:attributeGroup ref="mathml:mathml.att-superscriptshift"/>
  </xs:attributeGroup>
  <!-- Presentation layout schemata: empty elements for scripts -->
  <xs:group name="mathml.pscreschema">
    <xs:choice>
      <xs:element ref="mathml:mprescripts"/>
      <xs:element ref="mathml:none"/>
    </xs:choice>
  </xs:group>
  <xs:element name="mprescripts">
    <xs:complexType/>
  </xs:element>
  <xs:element name="none">
    <xs:complexType/>
  </xs:element>
  <!-- Presentation layout schemata: tables -->
  <xs:group name="mathml.ptabschema">
    <xs:choice>
      <xs:element ref="mathml:mtable"/>
      <xs:element ref="mathml:mtr"/>
      <xs:element ref="mathml:mlabeledtr"/>
      <xs:element ref="mathml:mtd"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-mtable">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-tableinfo"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mtr">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-rowalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-groupalign"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mlabeledtr">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-rowalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-groupalign"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-mtd">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-rowalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-groupalign"/>
    <xs:attributeGroup ref="mathml:mathml.att-rowspan"/>
    <xs:attributeGroup ref="mathml:mathml.att-columnspan"/>
  </xs:attributeGroup>
  <xs:group name="mathml.plschema">
    <xs:choice>
      <xs:group ref="mathml:mathml.pgenschema"/>
      <xs:group ref="mathml:mathml.pscrschema"/>
      <xs:group ref="mathml:mathml.ptabschema"/>
    </xs:choice>
  </xs:group>
  <!-- Empty presentation layout schemata -->
  <xs:group name="mathml.peschema">
    <xs:choice>
      <xs:element ref="mathml:maligngroup"/>
      <xs:element ref="mathml:malignmark"/>
    </xs:choice>
  </xs:group>
  <xs:element name="malignmark">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-malignmark"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-malignmark">
    <xs:attributeGroup ref="mathml:mathml.att-edge"/>
  </xs:attributeGroup>
  <xs:element name="maligngroup">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-maligngroup"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-maligngroup">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-groupalign"/>
  </xs:attributeGroup>
  <xs:element name="mglyph">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-mglyph"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-mglyph">
    <xs:attributeGroup ref="mathml:mathml.att-alt"/>
    <xs:attributeGroup ref="mathml:mathml.att-fontfamily"/>
    <xs:attributeGroup ref="mathml:mathml.att-index"/>
  </xs:attributeGroup>
  <!-- Presentation action schemata -->
  <xs:group name="mathml.pactions">
    <xs:sequence>
      <xs:element ref="mathml:maction"/>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-maction">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-actiontype"/>
    <xs:attributeGroup ref="mathml:mathml.att-selection"/>
  </xs:attributeGroup>
  <!--
    The following entity for substitution into
    content constructs excludes elements that
    are not valid as expressions.
  -->
  <xs:group name="mathml.PresInCont">
    <xs:choice>
      <xs:group ref="mathml:mathml.ptoken"/>
      <xs:group ref="mathml:mathml.petoken"/>
      <xs:group ref="mathml:mathml.plschema"/>
      <xs:group ref="mathml:mathml.peschema"/>
      <xs:group ref="mathml:mathml.pactions"/>
    </xs:choice>
  </xs:group>
  <!-- Presentation entity: all presentation constructs -->
  <xs:group name="mathml.Presentation">
    <xs:choice>
      <xs:group ref="mathml:mathml.ptoken"/>
      <xs:group ref="mathml:mathml.petoken"/>
      <xs:group ref="mathml:mathml.pscreschema"/>
      <xs:group ref="mathml:mathml.plschema"/>
      <xs:group ref="mathml:mathml.peschema"/>
      <xs:group ref="mathml:mathml.pactions"/>
    </xs:choice>
  </xs:group>
  <!-- Content element set  ........................................ -->
  <!-- Attribute definitions -->
  <xs:attributeGroup name="mathml.att-base">
    <xs:attribute name="base" default="10"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-closure">
    <xs:attribute name="closure" default="closed"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-definition">
    <xs:attribute name="definitionURL" default=""/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-encoding">
    <xs:attribute name="encoding" default=""/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-nargs">
    <xs:attribute name="nargs" default="1"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-occurrence">
    <xs:attribute name="occurrence" default="function-model"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-order">
    <xs:attribute name="order" default="numeric"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-scope">
    <xs:attribute name="scope" default="local"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-type">
    <xs:attribute name="type"/>
  </xs:attributeGroup>
  <!-- Content elements: leaf nodes -->
  <xs:group name="mathml.ctoken">
    <xs:choice>
      <xs:element ref="mathml:csymbol"/>
      <xs:element ref="mathml:ci"/>
      <xs:element ref="mathml:cn"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-ci">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-type"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-csymbol">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
    <xs:attributeGroup ref="mathml:mathml.att-type"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-cn">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-type"/>
    <xs:attributeGroup ref="mathml:mathml.att-base"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <!-- Content elements: specials -->
  <xs:group name="mathml.cspecial">
    <xs:choice>
      <xs:element ref="mathml:apply"/>
      <xs:element ref="mathml:reln"/>
      <xs:element ref="mathml:lambda"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-apply">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-reln">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-lambda">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <!-- Content elements: others -->
  <xs:group name="mathml.cother">
    <xs:choice>
      <xs:element ref="mathml:condition"/>
      <xs:element ref="mathml:declare"/>
      <xs:element ref="mathml:sep"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-condition">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-declare">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-type"/>
    <xs:attributeGroup ref="mathml:mathml.att-scope"/>
    <xs:attributeGroup ref="mathml:mathml.att-nargs"/>
    <xs:attributeGroup ref="mathml:mathml.att-occurrence"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="sep">
    <xs:complexType/>
  </xs:element>
  <!-- Content elements: semantic mapping -->
  <xs:group name="mathml.csemantics">
    <xs:choice>
      <xs:element ref="mathml:semantics"/>
      <xs:element ref="mathml:annotation"/>
      <xs:element ref="mathml:annotation-xml"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-semantics">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-annotation">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-annotation-xml">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <!-- Content elements: constructors -->
  <xs:group name="mathml.cconstructor">
    <xs:choice>
      <xs:element ref="mathml:interval"/>
      <xs:element ref="mathml:list"/>
      <xs:element ref="mathml:matrix"/>
      <xs:element ref="mathml:matrixrow"/>
      <xs:element ref="mathml:set"/>
      <xs:element ref="mathml:vector"/>
      <xs:element ref="mathml:piecewise"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-interval">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-closure"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-set">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-type"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-list">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-order"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-vector">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-matrix">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-matrixrow">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-piecewise">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-piece">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-otherwise">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <!-- Content elements: symbols -->
  <xs:group name="mathml.c0ary">
    <xs:choice>
      <xs:element ref="mathml:integers"/>
      <xs:element ref="mathml:reals"/>
      <xs:element ref="mathml:rationals"/>
      <xs:element ref="mathml:naturalnumbers"/>
      <xs:element ref="mathml:complexes"/>
      <xs:element ref="mathml:primes"/>
      <xs:element ref="mathml:exponentiale"/>
      <xs:element ref="mathml:imaginaryi"/>
      <xs:element ref="mathml:notanumber"/>
      <xs:element ref="mathml:true"/>
      <xs:element ref="mathml:false"/>
      <xs:element ref="mathml:emptyset"/>
      <xs:element ref="mathml:pi"/>
      <xs:element ref="mathml:eulergamma"/>
      <xs:element ref="mathml:infinity"/>
    </xs:choice>
  </xs:group>
  <xs:element name="integers">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-integers"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-integers">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="reals">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-reals"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-reals">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="rationals">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-rationals"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-rationals">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="naturalnumbers">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-naturalnumbers"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-naturalnumbers">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="complexes">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-complexes"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-complexes">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="primes">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-primes"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-primes">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="exponentiale">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-exponentiale"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-exponentiale">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="imaginaryi">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-imaginaryi"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-imaginaryi">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="notanumber">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-notanumber"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-notanumber">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="true">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-true"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-true">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="false">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-false"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-false">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="emptyset">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-emptyset"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-emptyset">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="pi">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-pi"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-pi">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="eulergamma">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-eulergamma"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-eulergamma">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="infinity">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-infinity"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-infinity">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <!-- Content elements: operators -->
  <xs:group name="mathml.cfuncop1ary">
    <xs:choice>
      <xs:element ref="mathml:inverse"/>
      <xs:element ref="mathml:ident"/>
      <xs:element ref="mathml:domain"/>
      <xs:element ref="mathml:codomain"/>
      <xs:element ref="mathml:image"/>
    </xs:choice>
  </xs:group>
  <xs:element name="inverse">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-inverse"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-inverse">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="domain">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-domain"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-domain">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="codomain">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-codomain"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-codomain">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="image">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-image"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-image">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.cfuncopnary">
    <xs:choice>
      <xs:element ref="mathml:fn"/>
      <xs:element ref="mathml:compose"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-fn">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="ident">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-ident"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-ident">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="compose">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-compose"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-compose">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.carithop1ary">
    <xs:choice>
      <xs:element ref="mathml:abs"/>
      <xs:element ref="mathml:conjugate"/>
      <xs:element ref="mathml:exp"/>
      <xs:element ref="mathml:factorial"/>
      <xs:element ref="mathml:arg"/>
      <xs:element ref="mathml:real"/>
      <xs:element ref="mathml:imaginary"/>
      <xs:element ref="mathml:floor"/>
      <xs:element ref="mathml:ceiling"/>
    </xs:choice>
  </xs:group>
  <xs:element name="exp">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-exp"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-exp">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="abs">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-abs"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-abs">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arg">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arg"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arg">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="real">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-real"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-real">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="imaginary">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-imaginary"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-imaginary">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="conjugate">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-conjugate"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-conjugate">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="factorial">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-factorial"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-factorial">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="floor">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-floor"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-floor">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="ceiling">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-ceiling"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-ceiling">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.carithop1or2ary">
    <xs:sequence>
      <xs:element ref="mathml:minus"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="minus">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-minus"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-minus">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.carithop2ary">
    <xs:choice>
      <xs:element ref="mathml:quotient"/>
      <xs:element ref="mathml:divide"/>
      <xs:element ref="mathml:power"/>
      <xs:element ref="mathml:rem"/>
    </xs:choice>
  </xs:group>
  <xs:element name="quotient">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-quotient"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-quotient">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="divide">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-divide"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-divide">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="power">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-power"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-power">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="rem">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-rem"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-rem">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.carithopnary">
    <xs:choice>
      <xs:element ref="mathml:plus"/>
      <xs:element ref="mathml:times"/>
      <xs:element ref="mathml:max"/>
      <xs:element ref="mathml:min"/>
      <xs:element ref="mathml:gcd"/>
      <xs:element ref="mathml:lcm"/>
    </xs:choice>
  </xs:group>
  <xs:element name="plus">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-plus"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-plus">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="max">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-max"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-max">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="min">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-min"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-min">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="times">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-times"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-times">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="gcd">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-gcd"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-gcd">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="lcm">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-lcm"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-lcm">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.carithoproot">
    <xs:sequence>
      <xs:element ref="mathml:root"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="root">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-root"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-root">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.clogicopquant">
    <xs:choice>
      <xs:element ref="mathml:exists"/>
      <xs:element ref="mathml:forall"/>
    </xs:choice>
  </xs:group>
  <xs:element name="exists">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-exists"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-exists">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="forall">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-forall"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-forall">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.clogicopnary">
    <xs:choice>
      <xs:element ref="mathml:and"/>
      <xs:element ref="mathml:or"/>
      <xs:element ref="mathml:xor"/>
    </xs:choice>
  </xs:group>
  <xs:element name="and">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-and"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-and">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="or">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-or"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-or">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="xor">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-xor"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-xor">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.clogicop1ary">
    <xs:sequence>
      <xs:element ref="mathml:not"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="not">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-not"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-not">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.clogicop2ary">
    <xs:sequence>
      <xs:element ref="mathml:implies"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="implies">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-implies"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-implies">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.ccalcop">
    <xs:choice>
      <xs:element ref="mathml:log"/>
      <xs:element ref="mathml:int"/>
      <xs:element ref="mathml:diff"/>
      <xs:element ref="mathml:partialdiff"/>
      <xs:element ref="mathml:divergence"/>
      <xs:element ref="mathml:grad"/>
      <xs:element ref="mathml:curl"/>
      <xs:element ref="mathml:laplacian"/>
    </xs:choice>
  </xs:group>
  <xs:element name="divergence">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-divergence"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-divergence">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="grad">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-grad"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-grad">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="curl">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-curl"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-curl">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="laplacian">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-laplacian"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-laplacian">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="log">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-log"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-log">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="int">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-int"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-int">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="diff">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-diff"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-diff">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="partialdiff">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-partialdiff"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-partialdiff">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.ccalcop1ary">
    <xs:sequence>
      <xs:element ref="mathml:ln"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="ln">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-ln"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-ln">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.csetop1ary">
    <xs:sequence>
      <xs:element ref="mathml:card"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="card">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-card"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-card">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.csetop2ary">
    <xs:sequence>
      <xs:element ref="mathml:setdiff"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="setdiff">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-setdiff"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-setdiff">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.csetopnary">
    <xs:choice>
      <xs:element ref="mathml:union"/>
      <xs:element ref="mathml:intersect"/>
      <xs:element ref="mathml:cartesianproduct"/>
    </xs:choice>
  </xs:group>
  <xs:element name="union">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-union"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-union">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="intersect">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-intersect"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-intersect">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="cartesianproduct">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-cartesianproduct"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-cartesianproduct">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.cseqop">
    <xs:choice>
      <xs:element ref="mathml:sum"/>
      <xs:element ref="mathml:product"/>
      <xs:element ref="mathml:limit"/>
    </xs:choice>
  </xs:group>
  <xs:element name="sum">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-sum"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-sum">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="product">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-product"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-product">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="limit">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-limit"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-limit">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.ctrigop">
    <xs:choice>
      <xs:element ref="mathml:sin"/>
      <xs:element ref="mathml:cos"/>
      <xs:element ref="mathml:tan"/>
      <xs:element ref="mathml:sec"/>
      <xs:element ref="mathml:csc"/>
      <xs:element ref="mathml:cot"/>
      <xs:element ref="mathml:sinh"/>
      <xs:element ref="mathml:cosh"/>
      <xs:element ref="mathml:tanh"/>
      <xs:element ref="mathml:sech"/>
      <xs:element ref="mathml:csch"/>
      <xs:element ref="mathml:coth"/>
      <xs:element ref="mathml:arcsin"/>
      <xs:element ref="mathml:arccos"/>
      <xs:element ref="mathml:arctan"/>
      <xs:element ref="mathml:arccosh"/>
      <xs:element ref="mathml:arccot"/>
      <xs:element ref="mathml:arccoth"/>
      <xs:element ref="mathml:arccsc"/>
      <xs:element ref="mathml:arccsch"/>
      <xs:element ref="mathml:arcsec"/>
      <xs:element ref="mathml:arcsech"/>
      <xs:element ref="mathml:arcsinh"/>
      <xs:element ref="mathml:arctanh"/>
    </xs:choice>
  </xs:group>
  <xs:element name="sin">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-sin"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-sin">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="cos">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-cos"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-cos">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="tan">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-tan"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-tan">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="sec">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-sec"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-sec">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="csc">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-csc"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-csc">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="cot">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-cot"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-cot">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="sinh">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-sinh"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-sinh">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="cosh">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-cosh"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-cosh">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="tanh">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-tanh"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-tanh">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="sech">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-sech"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-sech">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="csch">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-csch"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-csch">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="coth">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-coth"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-coth">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arcsin">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arcsin"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arcsin">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arccos">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arccos"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arccos">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arctan">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arctan"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arctan">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arccosh">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arccosh"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arccosh">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arccot">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arccot"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arccot">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arccoth">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arccoth"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arccoth">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arccsc">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arccsc"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arccsc">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arccsch">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arccsch"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arccsch">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arcsec">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arcsec"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arcsec">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arcsech">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arcsech"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arcsech">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arcsinh">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arcsinh"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arcsinh">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="arctanh">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-arctanh"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-arctanh">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.cstatopnary">
    <xs:choice>
      <xs:element ref="mathml:mean"/>
      <xs:element ref="mathml:sdev"/>
      <xs:element ref="mathml:variance"/>
      <xs:element ref="mathml:median"/>
      <xs:element ref="mathml:mode"/>
    </xs:choice>
  </xs:group>
  <xs:element name="mean">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-mean"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-mean">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="sdev">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-sdev"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-sdev">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="variance">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-variance"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-variance">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="median">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-median"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-median">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="mode">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-mode"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-mode">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.cstatopmoment">
    <xs:sequence>
      <xs:element ref="mathml:moment"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="moment">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-moment"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-moment">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.clalgop1ary">
    <xs:choice>
      <xs:element ref="mathml:determinant"/>
      <xs:element ref="mathml:transpose"/>
    </xs:choice>
  </xs:group>
  <xs:element name="determinant">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-determinant"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-determinant">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="transpose">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-transpose"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-transpose">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.clalgop2ary">
    <xs:choice>
      <xs:element ref="mathml:vectorproduct"/>
      <xs:element ref="mathml:scalarproduct"/>
      <xs:element ref="mathml:outerproduct"/>
    </xs:choice>
  </xs:group>
  <xs:element name="vectorproduct">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-vectorproduct"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-vectorproduct">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="scalarproduct">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-scalarproduct"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-scalarproduct">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="outerproduct">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-outerproduct"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-outerproduct">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.clalgopnary">
    <xs:sequence>
      <xs:element ref="mathml:selector"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="selector">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-selector"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-selector">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <!-- Content elements: relations -->
  <xs:group name="mathml.cgenrel2ary">
    <xs:choice>
      <xs:element ref="mathml:neq"/>
      <xs:element ref="mathml:factorof"/>
    </xs:choice>
  </xs:group>
  <xs:element name="neq">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-neq"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-neq">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="factorof">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-factorof"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-factorof">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.cgenrelnary">
    <xs:choice>
      <xs:element ref="mathml:eq"/>
      <xs:element ref="mathml:leq"/>
      <xs:element ref="mathml:lt"/>
      <xs:element ref="mathml:geq"/>
      <xs:element ref="mathml:gt"/>
      <xs:element ref="mathml:equivalent"/>
      <xs:element ref="mathml:approx"/>
    </xs:choice>
  </xs:group>
  <xs:element name="eq">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-eq"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-eq">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="equivalent">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-equivalent"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-equivalent">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="approx">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-approx"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-approx">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="gt">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-gt"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-gt">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="lt">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-lt"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-lt">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="geq">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-geq"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-geq">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="leq">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-leq"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-leq">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.csetrel2ary">
    <xs:choice>
      <xs:element ref="mathml:in"/>
      <xs:element ref="mathml:notin"/>
      <xs:element ref="mathml:notsubset"/>
      <xs:element ref="mathml:notprsubset"/>
    </xs:choice>
  </xs:group>
  <xs:element name="in">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-in"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-in">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="notin">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-notin"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-notin">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="notsubset">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-notsubset"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-notsubset">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="notprsubset">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-notprsubset"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-notprsubset">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.csetrelnary">
    <xs:choice>
      <xs:element ref="mathml:subset"/>
      <xs:element ref="mathml:prsubset"/>
    </xs:choice>
  </xs:group>
  <xs:element name="subset">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-subset"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-subset">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:element name="prsubset">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-prsubset"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-prsubset">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
  </xs:attributeGroup>
  <xs:group name="mathml.cseqrel2ary">
    <xs:sequence>
      <xs:element ref="mathml:tendsto"/>
    </xs:sequence>
  </xs:group>
  <xs:element name="tendsto">
    <xs:complexType>
      <xs:attributeGroup ref="mathml:mathml.attlist-tendsto"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-tendsto">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-definition"/>
    <xs:attributeGroup ref="mathml:mathml.att-encoding"/>
    <xs:attributeGroup ref="mathml:mathml.att-type"/>
  </xs:attributeGroup>
  <!-- Content elements: quantifiers -->
  <xs:group name="mathml.cquantifier">
    <xs:choice>
      <xs:element ref="mathml:lowlimit"/>
      <xs:element ref="mathml:uplimit"/>
      <xs:element ref="mathml:bvar"/>
      <xs:element ref="mathml:degree"/>
      <xs:element ref="mathml:logbase"/>
      <xs:element ref="mathml:momentabout"/>
      <xs:element ref="mathml:domainofapplication"/>
    </xs:choice>
  </xs:group>
  <xs:attributeGroup name="mathml.attlist-lowlimit">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-uplimit">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-bvar">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-degree">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-logbase">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-momentabout">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.attlist-domainofapplication">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
  </xs:attributeGroup>
  <!-- Operator groups -->
  <xs:group name="mathml.cop1ary">
    <xs:choice>
      <xs:group ref="mathml:mathml.cfuncop1ary"/>
      <xs:group ref="mathml:mathml.carithop1ary"/>
      <xs:group ref="mathml:mathml.clogicop1ary"/>
      <xs:group ref="mathml:mathml.ccalcop1ary"/>
      <xs:group ref="mathml:mathml.ctrigop"/>
      <xs:group ref="mathml:mathml.clalgop1ary"/>
      <xs:group ref="mathml:mathml.csetop1ary"/>
    </xs:choice>
  </xs:group>
  <xs:group name="mathml.cop2ary">
    <xs:choice>
      <xs:group ref="mathml:mathml.carithop2ary"/>
      <xs:group ref="mathml:mathml.clogicop2ary"/>
      <xs:group ref="mathml:mathml.clalgop2ary"/>
      <xs:group ref="mathml:mathml.csetop2ary"/>
    </xs:choice>
  </xs:group>
  <xs:group name="mathml.copnary">
    <xs:choice>
      <xs:group ref="mathml:mathml.cfuncopnary"/>
      <xs:group ref="mathml:mathml.carithopnary"/>
      <xs:group ref="mathml:mathml.clogicopnary"/>
      <xs:group ref="mathml:mathml.csetopnary"/>
      <xs:group ref="mathml:mathml.cstatopnary"/>
      <xs:group ref="mathml:mathml.clalgopnary"/>
    </xs:choice>
  </xs:group>
  <xs:group name="mathml.copmisc">
    <xs:choice>
      <xs:group ref="mathml:mathml.carithoproot"/>
      <xs:group ref="mathml:mathml.carithop1or2ary"/>
      <xs:group ref="mathml:mathml.ccalcop"/>
      <xs:group ref="mathml:mathml.cseqop"/>
      <xs:group ref="mathml:mathml.cstatopmoment"/>
      <xs:group ref="mathml:mathml.clogicopquant"/>
    </xs:choice>
  </xs:group>
  <!-- Relation groups -->
  <xs:group name="mathml.crel2ary">
    <xs:choice>
      <xs:group ref="mathml:mathml.cgenrel2ary"/>
      <xs:group ref="mathml:mathml.csetrel2ary"/>
      <xs:group ref="mathml:mathml.cseqrel2ary"/>
    </xs:choice>
  </xs:group>
  <xs:group name="mathml.crelnary">
    <xs:choice>
      <xs:group ref="mathml:mathml.cgenrelnary"/>
      <xs:group ref="mathml:mathml.csetrelnary"/>
    </xs:choice>
  </xs:group>
  <!-- Content constructs: all -->
  <xs:group name="mathml.Content">
    <xs:choice>
      <xs:group ref="mathml:mathml.ctoken"/>
      <xs:group ref="mathml:mathml.cspecial"/>
      <xs:group ref="mathml:mathml.cother"/>
      <xs:group ref="mathml:mathml.csemantics"/>
      <xs:group ref="mathml:mathml.c0ary"/>
      <xs:group ref="mathml:mathml.cconstructor"/>
      <xs:group ref="mathml:mathml.cquantifier"/>
      <xs:group ref="mathml:mathml.cop1ary"/>
      <xs:group ref="mathml:mathml.cop2ary"/>
      <xs:group ref="mathml:mathml.copnary"/>
      <xs:group ref="mathml:mathml.copmisc"/>
      <xs:group ref="mathml:mathml.crel2ary"/>
      <xs:group ref="mathml:mathml.crelnary"/>
    </xs:choice>
  </xs:group>
  <!-- Content constructs for substitution in presentation structures -->
  <xs:group name="mathml.ContInPres">
    <xs:choice>
      <xs:element ref="mathml:ci"/>
      <xs:element ref="mathml:csymbol"/>
      <xs:element ref="mathml:cn"/>
      <xs:group ref="mathml:mathml.c0ary"/>
      <xs:element ref="mathml:apply"/>
      <xs:element ref="mathml:fn"/>
      <xs:element ref="mathml:lambda"/>
      <xs:element ref="mathml:reln"/>
      <xs:group ref="mathml:mathml.cconstructor"/>
      <xs:element ref="mathml:semantics"/>
      <xs:element ref="mathml:declare"/>
    </xs:choice>
  </xs:group>
  <!-- ............................................................. -->
  <!--
    Recursive definition for content of expressions. Include
    presentation constructs at lowest level so presentation
    layout schemata hold presentation or content elements.
    Include content constructs at lowest level so content
    elements hold PCDATA or presentation elements at leaf
    level (for permitted substitutable elements in context)
  -->
  <xs:complexType name="mathml.ContentExpression">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="mathml:mathml.Content"/>
      <xs:group ref="mathml:mathml.PresInCont"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="mathml.PresExpression">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="mathml:mathml.Presentation"/>
      <xs:group ref="mathml:mathml.ContInPres"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="mathml.MathExpression">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="mathml:mathml.PresInCont"/>
      <xs:group ref="mathml:mathml.ContInPres"/>
    </xs:choice>
  </xs:complexType>
  <!-- PCDATA or MathML character elements -->
  <xs:group name="mathml.MathMLCharacters">
    <xs:sequence>
      <xs:element minOccurs="0" ref="mathml:mglyph"/>
    </xs:sequence>
  </xs:group>
  <!-- Content elements: tokens -->
  <!-- (may contain embedded presentation constructs) -->
  <xs:element name="ci">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="mathml:mathml.MathMLCharacters"/>
        <xs:group ref="mathml:mathml.PresInCont"/>
      </xs:choice>
      <xs:attributeGroup ref="mathml:mathml.attlist-ci"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="csymbol">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="mathml:mathml.MathMLCharacters"/>
        <xs:group ref="mathml:mathml.PresInCont"/>
      </xs:choice>
      <xs:attributeGroup ref="mathml:mathml.attlist-csymbol"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="cn">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="mathml:mathml.MathMLCharacters"/>
        <xs:element ref="mathml:sep"/>
        <xs:group ref="mathml:mathml.PresInCont"/>
      </xs:choice>
      <xs:attributeGroup ref="mathml:mathml.attlist-cn"/>
    </xs:complexType>
  </xs:element>
  <!-- Content elements: special -->
  <xs:element name="apply">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-apply"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="reln">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-reln"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="lambda">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-lambda"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- Content elements: other -->
  <xs:element name="condition">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-condition"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="declare">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-declare"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- Content elements: semantics -->
  <xs:element name="semantics">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-semantics"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="annotation">
    <xs:complexType mixed="true">
      <xs:attributeGroup ref="mathml:mathml.attlist-annotation"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="annotation-xml">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.any">
          <xs:attributeGroup ref="mathml:mathml.attlist-annotation-xml"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- Content elements: constructors -->
  <xs:element name="interval">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-interval"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="set">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-set"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="list">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-list"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="vector">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-vector"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="matrix">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-matrix"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="matrixrow">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-matrixrow"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="piecewise">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="mathml:piece"/>
        <xs:element minOccurs="0" ref="mathml:otherwise"/>
      </xs:sequence>
      <xs:attributeGroup ref="mathml:mathml.attlist-piecewise"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="piece">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-piece"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="otherwise">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-otherwise"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- Content elements: operator (user-defined) -->
  <xs:element name="fn">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-fn"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- Content elements: quantifiers -->
  <xs:element name="lowlimit">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-lowlimit"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="uplimit">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-uplimit"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="bvar">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-bvar"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="degree">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-degree"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="logbase">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-logbase"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="momentabout">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-momentabout"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="domainofapplication">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.ContentExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-domainofapplication"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- ............................................................. -->
  <!--
    Presentation layout schemata contain tokens,
    layout and content schemata.
  -->
  <xs:element name="mstyle">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mstyle"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="merror">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-merror"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mphantom">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mphantom"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mrow">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mrow"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mfrac">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mfrac"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="msqrt">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-msqrt"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="menclose">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-menclose"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mroot">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mroot"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="msub">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-msub"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="msup">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-msup"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="msubsup">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-msubsup"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mmultiscripts">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mmultiscripts"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="munder">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-munder"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mover">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mover"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="munderover">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-munderover"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mtable">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mtable"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mtr">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mtr"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mlabeledtr">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mlabeledtr"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mtd">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mtd"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="maction">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-maction"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mfenced">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mfenced"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="mpadded">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.PresExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-mpadded"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <!-- Presentation elements contain PCDATA or malignmark constructs. -->
  <xs:element name="mi">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="mathml:mathml.MathMLCharacters"/>
        <xs:element ref="mathml:malignmark"/>
      </xs:choice>
      <xs:attributeGroup ref="mathml:mathml.attlist-mi"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="mn">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="mathml:mathml.MathMLCharacters"/>
        <xs:element ref="mathml:malignmark"/>
      </xs:choice>
      <xs:attributeGroup ref="mathml:mathml.attlist-mn"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="mo">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="mathml:mathml.MathMLCharacters"/>
        <xs:element ref="mathml:malignmark"/>
      </xs:choice>
      <xs:attributeGroup ref="mathml:mathml.attlist-mo"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="mtext">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="mathml:mathml.MathMLCharacters"/>
        <xs:element ref="mathml:malignmark"/>
      </xs:choice>
      <xs:attributeGroup ref="mathml:mathml.attlist-mtext"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="ms">
    <xs:complexType mixed="true">
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:group ref="mathml:mathml.MathMLCharacters"/>
        <xs:element ref="mathml:malignmark"/>
      </xs:choice>
      <xs:attributeGroup ref="mathml:mathml.attlist-ms"/>
    </xs:complexType>
  </xs:element>
  <!-- Browser interface definition  ............................... -->
  <!-- Attributes for top-level element "math" -->
  <xs:attributeGroup name="mathml.att-macros">
    <xs:attribute name="macros"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-mode">
    <xs:attribute name="mode"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-display">
    <xs:attribute name="display"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-topinfo">
    <xs:attributeGroup ref="mathml:MATHML.Common.attrib"/>
    <xs:attributeGroup ref="mathml:mathml.att-macros"/>
    <xs:attributeGroup ref="mathml:mathml.att-mode"/>
    <xs:attributeGroup ref="mathml:mathml.att-display"/>
  </xs:attributeGroup>
  <!-- Attributes for browser interface element -->
  <xs:attributeGroup name="mathml.att-baseline">
    <xs:attribute name="baseline"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-overflow">
    <xs:attribute name="overflow" default="scroll">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="scroll"/>
          <xs:enumeration value="elide"/>
          <xs:enumeration value="truncate"/>
          <xs:enumeration value="scale"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-altimg">
    <xs:attribute name="altimg"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-alttext">
    <xs:attribute name="alttext"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="mathml.att-browif">
    <xs:attributeGroup ref="mathml:mathml.att-type"/>
    <xs:attributeGroup ref="mathml:mathml.att-name"/>
    <xs:attributeGroup ref="mathml:mathml.att-height"/>
    <xs:attributeGroup ref="mathml:mathml.att-width"/>
    <xs:attributeGroup ref="mathml:mathml.att-baseline"/>
    <xs:attributeGroup ref="mathml:mathml.att-overflow"/>
    <xs:attributeGroup ref="mathml:mathml.att-altimg"/>
    <xs:attributeGroup ref="mathml:mathml.att-alttext"/>
  </xs:attributeGroup>
  <!-- ............................................................. -->
  <!--
    The top-level element "math" contains MathML encoded
    mathematics. The "math" element has the browser info
    attributes iff it is also the browser interface element.
  -->
  <xs:element name="math">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="mathml:mathml.MathExpression">
          <xs:attributeGroup ref="mathml:mathml.attlist-math"/>
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="mathml.attlist-math">
    <xs:attributeGroup ref="mathml:mathml.att-topinfo"/>
    <xs:attributeGroup ref="mathml:mathml.att-browif"/>
  </xs:attributeGroup>
  <!-- MathML Character Entities .............................................. -->
  <!-- Entity sets from ISO Technical Report 9573-13 ..... -->
  <!-- Entity sets from informative annex to ISO 8879:1986 (SGML) ....... -->
  <!-- New characters defined by MathML ............................ -->
  <!-- MathML aliases for characters defined above ................. -->
  <!-- end of MathML Character Entity section -->
  <!--
    Revision History:
    
    Initial draft (syntax = XML) 1997-05-09
       Stephen Buswell
    Revised 1997-05-14
       Robert Miner
    Revised 1997-06-29 and 1997-07-02
       Stephen Buswell
    Revised 1997-12-15
       Stephen Buswell
    Revised 1998-02-08
       Stephen Buswell
    Revised 1998-04-04
       Stephen Buswell
    Entities and small revisions 1999-02-21
       David Carlisle
    Added attribute definitionURL to ci and cn 1999-10-11
       Nico Poppelier
    Additions for MathML 2  1999-12-16
       David Carlisle
    Namespace support 2000-01-14
       David Carlisle
    XHTML Compatibility 2000-02-23
       Murray Altheim
    New content elements 2000-03-26
       David Carlisle
    Further revisions for MathML2 CR draft 2000-07-11
       David Carlisle
    Further revisions for MathML2 CR draft 2000-10-31
       David Carlisle
    Revisions for Unicode 3.2  2002-05-21
       David Carlisle
    Add width and side attributes to mtable (to align with the specification)  2002-06-05
       David Carlisle
    Use %XLINK.prefix rather than hardwired xlink:, add xlink:type 2002-06-12
       David Carlisle
    Add missing numalign and denomalign attributes for mfrac 2002-07-05
       David Carlisle
    
  -->
  <!-- end of MathML 2.0 DTD  ................................................ -->
  <!-- ....................................................................... -->
  <xs:complexType name="tei_macro.paraContent" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="mathml:tei_model.phrase"/>
      <xs:group ref="mathml:tei_model.inter"/>
      <xs:group ref="mathml:tei_model.global"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="tei_macro.limitedContent" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="mathml:tei_model.limitedPhrase"/>
      <xs:group ref="mathml:tei_model.inter"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="tei_macro.phraseSeq" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="mathml:tei_model.phrase"/>
      <xs:group ref="mathml:tei_model.global"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="tei_macro.phraseSeq.limited" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="mathml:tei_model.limitedPhrase"/>
      <xs:group ref="mathml:tei_model.global"/>
    </xs:choice>
  </xs:complexType>
  <xs:complexType name="tei_macro.specialPara" mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:group ref="mathml:tei_model.phrase"/>
      <xs:group ref="mathml:tei_model.inter"/>
      <xs:group ref="mathml:tei_model.divPart"/>
      <xs:group ref="mathml:tei_model.global"/>
    </xs:choice>
  </xs:complexType>
  <xs:attributeGroup name="tei_att.ascribed.attributes">
    <xs:attributeGroup ref="mathml:att.ascribed.attribute.who"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.ascribed.attribute.who">
    <xs:attribute name="who">
      <xs:annotation>
        <xs:documentation>indicates the person, or group of
	people, to whom the element content is ascribed.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:anyURI"/>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.datable.w3c.attributes">
    <xs:attributeGroup ref="mathml:att.datable.w3c.attribute.period"/>
    <xs:attributeGroup ref="mathml:att.datable.w3c.attribute.when"/>
    <xs:attributeGroup ref="mathml:att.datable.w3c.attribute.notBefore"/>
    <xs:attributeGroup ref="mathml:att.datable.w3c.attribute.notAfter"/>
    <xs:attributeGroup ref="mathml:att.datable.w3c.attribute.from"/>
    <xs:attributeGroup ref="mathml:att.datable.w3c.attribute.to"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datable.w3c.attribute.period">
    <xs:attribute name="period" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>supplies a pointer to some location defining a named
      period of time within which the datable item is understood to
      have occurred.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datable.w3c.attribute.when">
    <xs:attribute name="when">
      <xs:annotation>
        <xs:documentation>supplies the value of a date or time in a standard form,
      e.g. yyyy-mm-dd.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:date xs:gYear xs:gMonth xs:gDay xs:gYearMonth xs:gMonthDay xs:time xs:dateTime"/>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datable.w3c.attribute.notBefore">
    <xs:attribute name="notBefore">
      <xs:annotation>
        <xs:documentation>specifies the earliest possible date for the event in
	  standard form, e.g. yyyy-mm-dd.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:date xs:gYear xs:gMonth xs:gDay xs:gYearMonth xs:gMonthDay xs:time xs:dateTime"/>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datable.w3c.attribute.notAfter">
    <xs:attribute name="notAfter">
      <xs:annotation>
        <xs:documentation>specifies the latest possible date for the event in
	  standard form, e.g. yyyy-mm-dd.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:date xs:gYear xs:gMonth xs:gDay xs:gYearMonth xs:gMonthDay xs:time xs:dateTime"/>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datable.w3c.attribute.from">
    <xs:attribute name="from">
      <xs:annotation>
        <xs:documentation>indicates the starting point of the period in standard form, e.g. yyyy-mm-dd.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:date xs:gYear xs:gMonth xs:gDay xs:gYearMonth xs:gMonthDay xs:time xs:dateTime"/>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.datable.w3c.attribute.to">
    <xs:attribute name="to">
      <xs:annotation>
        <xs:documentation>indicates the ending point of the period in standard
	  form, e.g. yyyy-mm-dd.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:date xs:gYear xs:gMonth xs:gDay xs:gYearMonth xs:gMonthDay xs:time xs:dateTime"/>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.declarable.attributes">
    <xs:attributeGroup ref="mathml:att.declarable.attribute.default"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.declarable.attribute.default">
    <xs:attribute name="default" default="false">
      <xs:annotation>
        <xs:documentation>indicates whether or not this element is selected by default when
its parent is selected.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="true">
            <xs:annotation>
              <xs:documentation>This element is selected if its parent is selected</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="false">
            <xs:annotation>
              <xs:documentation>This element can only be selected explicitly, unless it is the
only one of its kind, in which case it is selected if its parent is selected.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.declaring.attributes">
    <xs:attributeGroup ref="mathml:att.declaring.attribute.decls"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.declaring.attribute.decls">
    <xs:attribute name="decls">
      <xs:annotation>
        <xs:documentation>identifies one or more declarable elements within the
header, which are understood to apply to the element bearing this
attribute and its content.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:anyURI"/>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.divLike.attributes">
    <xs:attributeGroup ref="mathml:att.divLike.attribute.org"/>
    <xs:attributeGroup ref="mathml:att.divLike.attribute.sample"/>
    <xs:attributeGroup ref="mathml:att.divLike.attribute.part"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.divLike.attribute.org">
    <xs:attribute name="org" default="uniform">
      <xs:annotation>
        <xs:documentation>(organization) specifies how the content of the division is organized.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="composite">
            <xs:annotation>
              <xs:documentation>composite content: i.e. no claim is made about the
		  sequence in which the immediate contents of this division
		  are to be processed, or their inter-relationships.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="uniform">
            <xs:annotation>
              <xs:documentation>uniform content: i.e. the immediate contents of this
		  element are regarded as forming a logical unit, to be
		  processed in sequence.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.divLike.attribute.sample">
    <xs:attribute name="sample" default="complete">
      <xs:annotation>
        <xs:documentation>indicates whether this division is a sample of the
		original source and if so, from which part.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="initial">
            <xs:annotation>
              <xs:documentation>division lacks material present at end in source.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="medial">
            <xs:annotation>
              <xs:documentation>division lacks material at start and end.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="final">
            <xs:annotation>
              <xs:documentation>division lacks material at start.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="unknown">
            <xs:annotation>
              <xs:documentation>position of sampled material within original unknown.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="complete">
            <xs:annotation>
              <xs:documentation>division is not a sample.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.divLike.attribute.part">
    <xs:attribute name="part" default="N">
      <xs:annotation>
        <xs:documentation>specifies whether or not the division is fragmented by
		some other structural element, for example a speech which is
		divided between two or more verse stanzas.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="Y">
            <xs:annotation>
              <xs:documentation>(yes) the division is incomplete in some respect</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="N">
            <xs:annotation>
              <xs:documentation>(no) either the division is complete, or no claim is made as to its completeness.</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="I">
            <xs:annotation>
              <xs:documentation>(initial) the initial part of an incomplete division</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="M">
            <xs:annotation>
              <xs:documentation>(medial) a medial part of an incomplete division</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="F">
            <xs:annotation>
              <xs:documentation>(final) the final part of an incomplete division</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.duration.w3c.attributes">
    <xs:attributeGroup ref="mathml:att.duration.w3c.attribute.dur"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.duration.w3c.attribute.dur">
    <xs:attribute name="dur" type="xs:duration">
      <xs:annotation>
        <xs:documentation>(duration) indicates the length of this element in time.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.editLike.attributes">
    <xs:attributeGroup ref="mathml:att.editLike.attribute.cert"/>
    <xs:attributeGroup ref="mathml:att.editLike.attribute.resp"/>
    <xs:attributeGroup ref="mathml:att.editLike.attribute.evidence"/>
    <xs:attributeGroup ref="mathml:att.editLike.attribute.source"/>
    <xs:attributeGroup ref="mathml:att.editLike.attribute.precision"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.editLike.attribute.cert">
    <xs:attribute name="cert">
      <xs:annotation>
        <xs:documentation>(certainty) signifies the degree of certainty associated with the
	intervention or interpretation.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="high"/>
          <xs:enumeration value="medium"/>
          <xs:enumeration value="low"/>
          <xs:enumeration value="unknown"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.editLike.attribute.resp">
    <xs:attribute name="resp">
      <xs:annotation>
        <xs:documentation>(responsible party) indicates the agency responsible for the
	intervention or interpretation, for example an editor or transcriber.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:anyURI"/>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.editLike.attribute.evidence">
    <xs:attribute name="evidence">
      <xs:annotation>
        <xs:documentation>indicates the nature of the evidence supporting the reliability or
  accuracy of the intervention or interpretation.
Suggested values include: 1] internal; 2] external; 3] conjecture</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:Name">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="internal">
                <xs:annotation>
                  <xs:documentation>there is internal evidence to support the intervention.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="external">
                <xs:annotation>
                  <xs:documentation>there is external evidence to support the intervention.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="conjecture">
                <xs:annotation>
                  <xs:documentation>the intervention or interpretation has been made by
	    the editor, cataloguer, or scholar on the basis of their
	    expertise.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.editLike.attribute.source">
    <xs:attribute name="source">
      <xs:annotation>
        <xs:documentation>contains a list of one or more pointers indicating the
      sources which support the given reading.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:anyURI"/>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.editLike.attribute.precision">
    <xs:attribute name="precision">
      <xs:annotation>
        <xs:documentation>characterizes the precision of the specified intervention
      or dating.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="high"/>
          <xs:enumeration value="medium"/>
          <xs:enumeration value="low"/>
          <xs:enumeration value="unknown"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.global.attributes">
    <xs:attributeGroup ref="mathml:att.global.attribute.xmlid"/>
    <xs:attributeGroup ref="mathml:att.global.attribute.n"/>
    <xs:attributeGroup ref="mathml:att.global.attribute.xmllang"/>
    <xs:attributeGroup ref="mathml:att.global.attribute.rend"/>
    <xs:attributeGroup ref="mathml:att.global.attribute.rendition"/>
    <xs:attributeGroup ref="mathml:att.global.attribute.xmlbase"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.global.attribute.xmlid">
    <xs:attribute ref="xml:id"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.global.attribute.n">
    <xs:attribute name="n">
      <xs:annotation>
        <xs:documentation>(number) gives a number (or other label) for an element, which is
      not necessarily unique within the document.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:pattern value="(\p{L}|\p{N}|\p{P}|\p{S})+"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:list>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.global.attribute.xmllang">
    <xs:attribute ref="xml:lang"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.global.attribute.rend">
    <xs:attribute name="rend">
      <xs:annotation>
        <xs:documentation>(rendition) indicates how the element in question was rendered or
	presented in the source text.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:pattern value="(\p{L}|\p{N}|\p{P}|\p{S})+"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:list>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.global.attribute.rendition">
    <xs:attribute name="rendition">
      <xs:annotation>
        <xs:documentation>points to a description of the rendering  or
	presentation used for this element in the source text.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:anyURI"/>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.global.attribute.xmlbase">
    <xs:attribute ref="xml:base"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.internetMedia.attributes">
    <xs:attributeGroup ref="mathml:att.internetMedia.attribute.mimeType"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.internetMedia.attribute.mimeType">
    <xs:attribute name="mimeType">
      <xs:annotation>
        <xs:documentation>(MIME media type) specifies the applicable multimedia internet mail extension (MIME) media type</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="(\p{L}|\p{N}|\p{P}|\p{S})+"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.measurement.attributes">
    <xs:attributeGroup ref="mathml:att.measurement.attribute.unit"/>
    <xs:attributeGroup ref="mathml:att.measurement.attribute.quantity"/>
    <xs:attributeGroup ref="mathml:att.measurement.attribute.commodity"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.measurement.attribute.unit">
    <xs:attribute name="unit">
      <xs:annotation>
        <xs:documentation>indicates the units used for the measurement, usually
      using the standard symbol for the desired units.
Suggested values include: 1] m (metre); 2] kg (kilogram); 3] s (second); 4] Hz (hertz); 5] Pa (pascal); 6] Ω (ohm); 7] L (litre); 8] t (tonne); 9] ha (hectare); 10] Å (ångström); 11] mL (millilitre); 12] cm (centimetre); 13] dB (decibel); 14] kbit (kilobit); 15] Kibit (kibibit); 16] kB (kilobyte); 17] KiB (kibibyte); 18] MB (megabyte); 19] MiB (mebibyte)</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:Name">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="m">
                <xs:annotation>
                  <xs:documentation>(metre) SI base unit of length</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="kg">
                <xs:annotation>
                  <xs:documentation>(kilogram) SI base unit of mass</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="s">
                <xs:annotation>
                  <xs:documentation>(second) SI base unit of time</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Hz">
                <xs:annotation>
                  <xs:documentation>(hertz) SI unit of frequency</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Pa">
                <xs:annotation>
                  <xs:documentation>(pascal) SI unit of pressure or stress</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Ω">
                <xs:annotation>
                  <xs:documentation>(ohm) SI unit of electric resistance</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="L">
                <xs:annotation>
                  <xs:documentation>(litre) 1 dm³</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="t">
                <xs:annotation>
                  <xs:documentation>(tonne) 10³ kg</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="ha">
                <xs:annotation>
                  <xs:documentation>(hectare) 1 hm²</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Å">
                <xs:annotation>
                  <xs:documentation>(ångström) 10⁻¹⁰ m</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="mL">
                <xs:annotation>
                  <xs:documentation>(millilitre) </xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="cm">
                <xs:annotation>
                  <xs:documentation>(centimetre) </xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="dB">
                <xs:annotation>
                  <xs:documentation>(decibel) see remarks, below</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="kbit">
                <xs:annotation>
                  <xs:documentation> (kilobit) 10³ or 1000 bits</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="Kibit">
                <xs:annotation>
                  <xs:documentation> (kibibit) 2¹⁰ or 1024 bits</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="kB">
                <xs:annotation>
                  <xs:documentation> (kilobyte) 10³ or 1000 bytes</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="KiB">
                <xs:annotation>
                  <xs:documentation> (kibibyte) 2¹⁰ or 1024 bytes</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="MB">
                <xs:annotation>
                  <xs:documentation> (megabyte) 10⁶ or 1 000 000 bytes</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="MiB">
                <xs:annotation>
                  <xs:documentation> (mebibyte) 2²⁰ or 1 048 576 bytes</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.measurement.attribute.quantity">
    <xs:attribute name="quantity">
      <xs:annotation>
        <xs:documentation>specifies the number of the specified units that
      comprise the measurement</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:double xs:decimal"/>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.measurement.attribute.commodity">
    <xs:attribute name="commodity">
      <xs:annotation>
        <xs:documentation>indicates the substance that is being measured</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list>
              <xs:simpleType>
                <xs:restriction base="xs:token">
                  <xs:pattern value="(\p{L}|\p{N}|\p{P}|\p{S})+"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:list>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.naming.attributes">
    <xs:attributeGroup ref="mathml:att.naming.attribute.key"/>
    <xs:attributeGroup ref="mathml:att.naming.attribute.ref"/>
    <xs:attributeGroup ref="mathml:att.naming.attribute.nymRef"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.naming.attribute.key">
    <xs:attribute name="key" type="xs:string">
      <xs:annotation>
        <xs:documentation>provides an external means
 of locating a full definition for the entity (or entities) being named, such as a database record key
      or other token.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.naming.attribute.ref">
    <xs:attribute name="ref">
      <xs:annotation>
        <xs:documentation>(reference) provides an explicit means
 of locating a full definition for the entity being named by means of
 a URI.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:anyURI"/>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.naming.attribute.nymRef">
    <xs:attribute name="nymRef">
      <xs:annotation>
        <xs:documentation>(reference to the canonical name) provides a means of locating the canonical form
      (nym) of the names associated with the object
       named by
      the element bearing it.</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction>
          <xs:simpleType>
            <xs:list itemType="xs:anyURI"/>
          </xs:simpleType>
          <xs:minLength value="1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.placement.attributes">
    <xs:attributeGroup ref="mathml:att.placement.attribute.place"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.placement.attribute.place">
    <xs:attribute name="place">
      <xs:annotation>
        <xs:documentation>
Suggested values include: 1] infralinear; 2] margin-bot (bottom margin); 3] margin-left (left margin); 4] margin-right (right margin); 5] margin-top (top margin); 6] opposite; 7] overleaf; 8] supralinear; 9] verso; 10] app (apparatus); 11] end; 12] foot; 13] inline; 14] interlinear; 15] inline; 16] mixed</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:Name">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="infralinear">
                <xs:annotation>
                  <xs:documentation>below the line</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="margin-bot">
                <xs:annotation>
                  <xs:documentation>(bottom margin) in the bottom margin</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="margin-left">
                <xs:annotation>
                  <xs:documentation>(left margin) in the left margin</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="margin-right">
                <xs:annotation>
                  <xs:documentation>(right margin) in the right margin</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="margin-top">
                <xs:annotation>
                  <xs:documentation>(top margin) in the top margin</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="opposite">
                <xs:annotation>
                  <xs:documentation>on the opposite, i.e. facing, page</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="overleaf">
                <xs:annotation>
                  <xs:documentation>on the other side of the leaf</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="supralinear">
                <xs:annotation>
                  <xs:documentation>above the line</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="verso">
                <xs:annotation>
                  <xs:documentation>on verso of the sheet or page</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="app">
                <xs:annotation>
                  <xs:documentation>(apparatus) note appears in the apparatus at the foot of the page.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="end">
                <xs:annotation>
                  <xs:documentation>note appears at end of chapter or volume.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="foot">
                <xs:annotation>
                  <xs:documentation>note appears at foot of page.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="inline">
                <xs:annotation>
                  <xs:documentation>note appears as a marked paragraph in the body of the text.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="interlinear">
                <xs:annotation>
                  <xs:documentation>note appears between lines of the text; a less precise form of either infralinear or supralinear.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="inline">
                <xs:annotation>
                  <xs:documentation>addition is made in a space left in the witness by an earlier scribe.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="mixed">
                <xs:annotation>
                  <xs:documentation>one or more of the other values</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.spanning.attributes">
    <xs:attributeGroup ref="mathml:att.spanning.attribute.spanTo"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.spanning.attribute.spanTo">
    <xs:attribute name="spanTo" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>indicates the end of a span initiated by the element
	bearing this attribute.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.tableDecoration.attributes">
    <xs:attributeGroup ref="mathml:att.tableDecoration.attribute.role"/>
    <xs:attributeGroup ref="mathml:att.tableDecoration.attribute.rows"/>
    <xs:attributeGroup ref="mathml:att.tableDecoration.attribute.cols"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.tableDecoration.attribute.role">
    <xs:attribute name="role" default="data">
      <xs:annotation>
        <xs:documentation>indicates the kind of information held in this cell or
in each cell of this row.
Suggested values include: 1] label; 2] data</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:union memberTypes="xs:Name">
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="label">
                <xs:annotation>
                  <xs:documentation>labelling or descriptive information only.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
          <xs:simpleType>
            <xs:restriction base="xs:token">
              <xs:enumeration value="data">
                <xs:annotation>
                  <xs:documentation>data values.</xs:documentation>
                </xs:annotation>
              </xs:enumeration>
            </xs:restriction>
          </xs:simpleType>
        </xs:union>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.tableDecoration.attribute.rows">
    <xs:attribute name="rows" default="1" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>indicates the number of rows occupied by this cell or row.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.tableDecoration.attribute.cols">
    <xs:attribute name="cols" default="1" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>(columns) indicates the number of columns occupied by this cell or
	row.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.transcriptional.attributes">
    <xs:attributeGroup ref="mathml:att.transcriptional.attribute.hand"/>
    <xs:attributeGroup ref="mathml:att.transcriptional.attribute.status"/>
    <xs:attributeGroup ref="mathml:att.transcriptional.attribute.seq"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.transcriptional.attribute.hand">
    <xs:attribute name="hand" type="xs:anyURI">
      <xs:annotation>
        <xs:documentation>signifies the hand of the agent which made the intervention.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.transcriptional.attribute.status">
    <xs:attribute name="status" default="unremarkable" type="xs:Name">
      <xs:annotation>
        <xs:documentation>indicates the effect of the intervention, for example in
      the case of a deletion, strikeouts
      which include too much or too little text, or in the case of an
      addition, an insertion which duplicates some of the text
      already present.
Sample values include: 1] duplicate; 2] duplicate-partial; 3] excessStart; 4] excessEnd; 5] shortStart; 6] shortEnd; 7] partial; 8] unremarkable</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.transcriptional.attribute.seq">
    <xs:attribute name="seq" type="xs:nonNegativeInteger">
      <xs:annotation>
        <xs:documentation>(sequence) assigns a sequence number related to the order in which
      the encoded features carrying this attribute are believed to have occurred.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.translatable.attributes">
    <xs:attributeGroup ref="mathml:att.translatable.attribute.version"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.translatable.attribute.version">
    <xs:attribute name="version">
      <xs:annotation>
        <xs:documentation>specifies the version name or number of the source from
	which the translated version was derived</xs:documentation>
      </xs:annotation>
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:pattern value="(\p{L}|\p{N}|\p{P}|\p{S})+"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="tei_att.typed.attributes">
    <xs:attributeGroup ref="mathml:att.typed.attribute.type"/>
    <xs:attributeGroup ref="mathml:att.typed.attribute.subtype"/>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.typed.attribute.type">
    <xs:attribute name="type" type="xs:Name">
      <xs:annotation>
        <xs:documentation>characterizes the element in some sense, using any convenient
 classification scheme or typology.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:attributeGroup name="att.typed.attribute.subtype">
    <xs:attribute name="subtype" type="xs:Name">
      <xs:annotation>
        <xs:documentation>provides a sub-categorization of the element, if needed</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:group name="tei_model.nameLike.agent">
    <xs:sequence>
      <xs:element ref="ns1:name"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.hiLike">
    <xs:sequence>
      <xs:element ref="ns1:hi"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.emphLike">
    <xs:choice>
      <xs:element ref="ns1:foreign"/>
      <xs:element ref="ns1:emph"/>
      <xs:element ref="ns1:distinct"/>
      <xs:element ref="ns1:mentioned"/>
      <xs:element ref="ns1:soCalled"/>
      <xs:element ref="ns1:gloss"/>
      <xs:element ref="ns1:term"/>
      <xs:element ref="ns1:title"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.highlighted">
    <xs:choice>
      <xs:group ref="mathml:tei_model.hiLike"/>
      <xs:group ref="mathml:tei_model.emphLike"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.dateLike">
    <xs:choice>
      <xs:element ref="ns1:date"/>
      <xs:element ref="ns1:time"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.measureLike">
    <xs:choice>
      <xs:element ref="ns1:num"/>
      <xs:element ref="ns1:measure"/>
      <xs:element ref="ns1:measureGrp"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.graphicLike">
    <xs:choice>
      <xs:element ref="ns1:graphic"/>
      <xs:element ref="ns1:binaryObject"/>
      <xs:element ref="ns1:formula"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.pPart.editorial">
    <xs:choice>
      <xs:element ref="ns1:choice"/>
      <xs:element ref="ns1:abbr"/>
      <xs:element ref="ns1:expan"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.pPart.transcriptional">
    <xs:choice>
      <xs:element ref="ns1:sic"/>
      <xs:element ref="ns1:corr"/>
      <xs:element ref="ns1:reg"/>
      <xs:element ref="ns1:orig"/>
      <xs:element ref="ns1:add"/>
      <xs:element ref="ns1:del"/>
      <xs:element ref="ns1:unclear"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.pPart.edit">
    <xs:choice>
      <xs:group ref="mathml:tei_model.pPart.editorial"/>
      <xs:group ref="mathml:tei_model.pPart.transcriptional"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.ptrLike">
    <xs:choice>
      <xs:element ref="ns1:ptr"/>
      <xs:element ref="ns1:ref"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.global.meta">
    <xs:sequence>
      <xs:element ref="ns1:index"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.milestoneLike">
    <xs:choice>
      <xs:element ref="ns1:milestone"/>
      <xs:element ref="ns1:pb"/>
      <xs:element ref="ns1:lb"/>
      <xs:element ref="ns1:cb"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.biblLike">
    <xs:choice>
      <xs:element ref="ns1:bibl"/>
      <xs:element ref="ns1:biblStruct"/>
      <xs:element ref="ns1:biblFull"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.headLike">
    <xs:sequence>
      <xs:element ref="ns1:head"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.labelLike">
    <xs:choice>
      <xs:element ref="ns1:desc"/>
      <xs:element ref="ns1:label"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.listLike">
    <xs:choice>
      <xs:element ref="ns1:list"/>
      <xs:element ref="ns1:listBibl"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.noteLike">
    <xs:sequence>
      <xs:element ref="ns1:note"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.lLike">
    <xs:sequence>
      <xs:element ref="ns1:l"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.pLike">
    <xs:sequence>
      <xs:element ref="ns1:p"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.stageLike">
    <xs:sequence>
      <xs:element ref="ns1:stage"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.global.edit">
    <xs:sequence>
      <xs:element ref="ns1:gap"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.divPart">
    <xs:choice>
      <xs:group ref="mathml:tei_model.lLike"/>
      <xs:group ref="mathml:tei_model.pLike"/>
      <xs:element ref="ns1:lg"/>
      <xs:element ref="ns1:sp"/>
      <xs:element ref="ns1:floatingText"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.publicationStmtPart">
    <xs:choice>
      <xs:element ref="ns1:address"/>
      <xs:element ref="ns1:date"/>
      <xs:element ref="ns1:publisher"/>
      <xs:element ref="ns1:pubPlace"/>
      <xs:element ref="ns1:distributor"/>
      <xs:element ref="ns1:authority"/>
      <xs:element ref="ns1:idno"/>
      <xs:element ref="ns1:availability"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.glossLike">
    <xs:choice>
      <xs:element ref="ns1:desc"/>
      <xs:element ref="ns1:gloss"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.quoteLike">
    <xs:choice>
      <xs:element ref="ns1:quote"/>
      <xs:element ref="ns1:cit"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.qLike">
    <xs:choice>
      <xs:group ref="mathml:tei_model.quoteLike"/>
      <xs:element ref="ns1:said"/>
      <xs:element ref="ns1:q"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.respLike">
    <xs:choice>
      <xs:element ref="ns1:author"/>
      <xs:element ref="ns1:editor"/>
      <xs:element ref="ns1:respStmt"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.divWrapper">
    <xs:choice>
      <xs:element ref="ns1:meeting"/>
      <xs:element ref="ns1:byline"/>
      <xs:element ref="ns1:dateline"/>
      <xs:element ref="ns1:argument"/>
      <xs:element ref="ns1:epigraph"/>
      <xs:element ref="ns1:docAuthor"/>
      <xs:element ref="ns1:docDate"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.divTopPart">
    <xs:choice>
      <xs:group ref="mathml:tei_model.headLike"/>
      <xs:element ref="ns1:opener"/>
      <xs:element ref="ns1:salute"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.divTop">
    <xs:choice>
      <xs:group ref="mathml:tei_model.divWrapper"/>
      <xs:group ref="mathml:tei_model.divTopPart"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.pLike.front">
    <xs:choice>
      <xs:element ref="ns1:head"/>
      <xs:element ref="ns1:byline"/>
      <xs:element ref="ns1:argument"/>
      <xs:element ref="ns1:epigraph"/>
      <xs:element ref="ns1:docTitle"/>
      <xs:element ref="ns1:titlePart"/>
      <xs:element ref="ns1:docAuthor"/>
      <xs:element ref="ns1:docEdition"/>
      <xs:element ref="ns1:docImprint"/>
      <xs:element ref="ns1:docDate"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.divBottomPart">
    <xs:choice>
      <xs:element ref="ns1:trailer"/>
      <xs:element ref="ns1:closer"/>
      <xs:element ref="ns1:signed"/>
      <xs:element ref="ns1:postscript"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.divBottom">
    <xs:choice>
      <xs:group ref="mathml:tei_model.divWrapper"/>
      <xs:group ref="mathml:tei_model.divBottomPart"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.titlepagePart">
    <xs:choice>
      <xs:element ref="ns1:graphic"/>
      <xs:element ref="ns1:binaryObject"/>
      <xs:element ref="ns1:byline"/>
      <xs:element ref="ns1:epigraph"/>
      <xs:element ref="ns1:docTitle"/>
      <xs:element ref="ns1:titlePart"/>
      <xs:element ref="ns1:docAuthor"/>
      <xs:element ref="ns1:imprimatur"/>
      <xs:element ref="ns1:docEdition"/>
      <xs:element ref="ns1:docImprint"/>
      <xs:element ref="ns1:docDate"/>
      <xs:element ref="ns1:figure"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.choicePart">
    <xs:choice>
      <xs:element ref="ns1:sic"/>
      <xs:element ref="ns1:corr"/>
      <xs:element ref="ns1:reg"/>
      <xs:element ref="ns1:orig"/>
      <xs:element ref="ns1:unclear"/>
      <xs:element ref="ns1:abbr"/>
      <xs:element ref="ns1:expan"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.imprintPart">
    <xs:choice>
      <xs:element ref="ns1:publisher"/>
      <xs:element ref="ns1:biblScope"/>
      <xs:element ref="ns1:pubPlace"/>
      <xs:element ref="ns1:distributor"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.addressLike">
    <xs:choice>
      <xs:element ref="ns1:email"/>
      <xs:element ref="ns1:address"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.nameLike">
    <xs:choice>
      <xs:group ref="mathml:tei_model.nameLike.agent"/>
      <xs:element ref="ns1:rs"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.global">
    <xs:choice>
      <xs:group ref="mathml:tei_model.global.meta"/>
      <xs:group ref="mathml:tei_model.milestoneLike"/>
      <xs:group ref="mathml:tei_model.noteLike"/>
      <xs:group ref="mathml:tei_model.global.edit"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.biblPart">
    <xs:choice>
      <xs:group ref="mathml:tei_model.respLike"/>
      <xs:group ref="mathml:tei_model.imprintPart"/>
      <xs:element ref="ns1:series"/>
      <xs:element ref="ns1:meeting"/>
      <xs:element ref="ns1:relatedItem"/>
      <xs:element ref="ns1:edition"/>
      <xs:element ref="ns1:extent"/>
      <xs:element ref="ns1:idno"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.frontPart">
    <xs:choice>
      <xs:element ref="ns1:divGen"/>
      <xs:element ref="ns1:titlePage"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.addrPart">
    <xs:choice>
      <xs:group ref="mathml:tei_model.nameLike"/>
      <xs:element ref="ns1:addrLine"/>
      <xs:element ref="ns1:street"/>
      <xs:element ref="ns1:postCode"/>
      <xs:element ref="ns1:postBox"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.pPart.data">
    <xs:choice>
      <xs:group ref="mathml:tei_model.dateLike"/>
      <xs:group ref="mathml:tei_model.measureLike"/>
      <xs:group ref="mathml:tei_model.addressLike"/>
      <xs:group ref="mathml:tei_model.nameLike"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.inter">
    <xs:choice>
      <xs:group ref="mathml:tei_model.biblLike"/>
      <xs:group ref="mathml:tei_model.labelLike"/>
      <xs:group ref="mathml:tei_model.listLike"/>
      <xs:group ref="mathml:tei_model.stageLike"/>
      <xs:group ref="mathml:tei_model.qLike"/>
      <xs:element ref="ns1:table"/>
      <xs:element ref="ns1:figure"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.common">
    <xs:choice>
      <xs:group ref="mathml:tei_model.divPart"/>
      <xs:group ref="mathml:tei_model.inter"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.phrase">
    <xs:choice>
      <xs:group ref="mathml:tei_model.highlighted"/>
      <xs:group ref="mathml:tei_model.graphicLike"/>
      <xs:group ref="mathml:tei_model.pPart.edit"/>
      <xs:group ref="mathml:tei_model.ptrLike"/>
      <xs:group ref="mathml:tei_model.pPart.data"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.limitedPhrase">
    <xs:choice>
      <xs:group ref="mathml:tei_model.emphLike"/>
      <xs:group ref="mathml:tei_model.pPart.editorial"/>
      <xs:group ref="mathml:tei_model.ptrLike"/>
      <xs:group ref="mathml:tei_model.pPart.data"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.divLike">
    <xs:sequence>
      <xs:element ref="ns1:div"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.divGenLike">
    <xs:sequence>
      <xs:element ref="ns1:divGen"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.div1Like">
    <xs:sequence>
      <xs:element ref="ns1:div1"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.div2Like">
    <xs:sequence>
      <xs:element ref="ns1:div2"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.div3Like">
    <xs:sequence>
      <xs:element ref="ns1:div3"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.div4Like">
    <xs:sequence>
      <xs:element ref="ns1:div4"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.div5Like">
    <xs:sequence>
      <xs:element ref="ns1:div5"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.div6Like">
    <xs:sequence>
      <xs:element ref="ns1:div6"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.div7Like">
    <xs:sequence>
      <xs:element ref="ns1:div7"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.headerPart">
    <xs:choice>
      <xs:element ref="ns1:encodingDesc"/>
      <xs:element ref="ns1:profileDesc"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.encodingPart">
    <xs:choice>
      <xs:element ref="ns1:projectDesc"/>
      <xs:element ref="ns1:samplingDecl"/>
      <xs:element ref="ns1:editorialDecl"/>
      <xs:element ref="ns1:tagsDecl"/>
      <xs:element ref="ns1:refsDecl"/>
      <xs:element ref="ns1:classDecl"/>
      <xs:element ref="ns1:appInfo"/>
      <xs:element ref="ns1:geoDecl"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.editorialDeclPart">
    <xs:choice>
      <xs:element ref="ns1:correction"/>
      <xs:element ref="ns1:normalization"/>
      <xs:element ref="ns1:quotation"/>
      <xs:element ref="ns1:hyphenation"/>
      <xs:element ref="ns1:segmentation"/>
      <xs:element ref="ns1:stdVals"/>
      <xs:element ref="ns1:interpretation"/>
    </xs:choice>
  </xs:group>
  <xs:group name="tei_model.applicationLike">
    <xs:sequence>
      <xs:element ref="ns1:application"/>
    </xs:sequence>
  </xs:group>
  <xs:group name="tei_model.profileDescPart">
    <xs:choice>
      <xs:element ref="ns1:langUsage"/>
      <xs:element ref="ns1:textClass"/>
    </xs:choice>
  </xs:group>
</xs:schema>
