https://github.com/TEIC/TEI
Raw File
Tip revision: 6f86eb3006d815bb183e0d0d8f94a9b3357d38a4 authored by Syd Bauman on 10 September 2014, 03:37:43 UTC
Tag this version which has Schematron code in biblStruct.xml for deprecating <idno> as a direct child of <biblStruct>. I can't implement this for the upcoming release, as we have 29 cases of biblStruct/idno in P5's own bibliogrraphy.
Tip revision: 6f86eb3
mathml2-main.rng
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by DTDinst version 2001-12-03. -->
<grammar xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" ns="http://www.w3.org/1998/Math/MathML" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <!-- 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$
    
    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 ............................... -->
  <include href="mathml2-qname-1.mod.rng"/>
  <!--
    if %NS.prefixed; is INCLUDE, include all NS attributes, 
    otherwise just those associated with MathML
  -->
  <define name="MATHML.NamespaceDecl.attrib">
    <ref name="MATHML.xmlns.attrib"/>
  </define>
  <!-- Attributes shared by all elements  .......................... -->
  <define name="MATHML.Common.attrib">
    <ref name="MATHML.NamespaceDecl.attrib"/>
    <optional>
      <attribute name="xlink:href"/>
    </optional>
    <optional>
      <attribute name="xlink:type"/>
    </optional>
    <optional>
      <attribute name="class"/>
    </optional>
    <optional>
      <attribute name="style"/>
    </optional>
    <optional>
      <attribute name="id">
        <data type="ID"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="xref">
        <data type="IDREF"/>
      </attribute>
    </optional>
    <optional>
      <attribute name="other"/>
    </optional>
  </define>
  <!-- Presentation element set  ................................... -->
  <!-- Attribute definitions -->
  <define name="mathml.att-fontsize">
    <optional>
      <attribute name="fontsize"/>
    </optional>
  </define>
  <define name="mathml.att-fontweight">
    <optional>
      <attribute name="fontweight">
        <choice>
          <value>normal</value>
          <value>bold</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-fontstyle">
    <optional>
      <attribute name="fontstyle">
        <choice>
          <value>normal</value>
          <value>italic</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-fontfamily">
    <optional>
      <attribute name="fontfamily"/>
    </optional>
  </define>
  <define name="mathml.att-color">
    <optional>
      <attribute name="color"/>
    </optional>
  </define>
  <!-- MathML2 typographically-distinguished symbol attributes -->
  <define name="mathml.att-mathvariant">
    <optional>
      <attribute name="mathvariant"/>
    </optional>
  </define>
  <define name="mathml.att-mathsize">
    <optional>
      <attribute name="mathsize"/>
    </optional>
  </define>
  <define name="mathml.att-mathcolor">
    <optional>
      <attribute name="mathcolor"/>
    </optional>
  </define>
  <define name="mathml.att-mathbackground">
    <optional>
      <attribute name="mathbackground"/>
    </optional>
  </define>
  <define name="mathml.att-fontinfo">
    <ref name="mathml.att-fontsize"/>
    <ref name="mathml.att-fontweight"/>
    <ref name="mathml.att-fontstyle"/>
    <ref name="mathml.att-fontfamily"/>
    <ref name="mathml.att-color"/>
    <ref name="mathml.att-mathvariant"/>
    <ref name="mathml.att-mathsize"/>
    <ref name="mathml.att-mathcolor"/>
    <ref name="mathml.att-mathbackground"/>
  </define>
  <define name="mathml.att-form">
    <optional>
      <attribute name="form">
        <choice>
          <value>prefix</value>
          <value>infix</value>
          <value>postfix</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-fence">
    <optional>
      <attribute name="fence">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-separator">
    <optional>
      <attribute name="separator">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-lspace">
    <optional>
      <attribute name="lspace"/>
    </optional>
  </define>
  <define name="mathml.att-rspace">
    <optional>
      <attribute name="rspace"/>
    </optional>
  </define>
  <define name="mathml.att-stretchy">
    <optional>
      <attribute name="stretchy">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-symmetric">
    <optional>
      <attribute name="symmetric">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-maxsize">
    <optional>
      <attribute name="maxsize"/>
    </optional>
  </define>
  <define name="mathml.att-minsize">
    <optional>
      <attribute name="minsize"/>
    </optional>
  </define>
  <define name="mathml.att-largeop">
    <optional>
      <attribute name="largeop">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-movablelimits">
    <optional>
      <attribute name="movablelimits">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-accent">
    <optional>
      <attribute name="accent">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-opinfo">
    <ref name="mathml.att-form"/>
    <ref name="mathml.att-fence"/>
    <ref name="mathml.att-separator"/>
    <ref name="mathml.att-lspace"/>
    <ref name="mathml.att-rspace"/>
    <ref name="mathml.att-stretchy"/>
    <ref name="mathml.att-symmetric"/>
    <ref name="mathml.att-maxsize"/>
    <ref name="mathml.att-minsize"/>
    <ref name="mathml.att-largeop"/>
    <ref name="mathml.att-movablelimits"/>
    <ref name="mathml.att-accent"/>
  </define>
  <define name="mathml.att-width">
    <optional>
      <attribute name="width"/>
    </optional>
  </define>
  <define name="mathml.att-height">
    <optional>
      <attribute name="height"/>
    </optional>
  </define>
  <define name="mathml.att-depth">
    <optional>
      <attribute name="depth"/>
    </optional>
  </define>
  <define name="mathml.att-linebreak">
    <optional>
      <attribute name="linebreak"/>
    </optional>
  </define>
  <define name="mathml.att-sizeinfo">
    <ref name="mathml.att-width"/>
    <ref name="mathml.att-height"/>
    <ref name="mathml.att-depth"/>
  </define>
  <define name="mathml.att-lquote">
    <optional>
      <attribute name="lquote"/>
    </optional>
  </define>
  <define name="mathml.att-rquote">
    <optional>
      <attribute name="rquote"/>
    </optional>
  </define>
  <define name="mathml.att-linethickness">
    <optional>
      <attribute name="linethickness"/>
    </optional>
  </define>
  <define name="mathml.att-scriptlevel">
    <optional>
      <attribute name="scriptlevel"/>
    </optional>
  </define>
  <define name="mathml.att-displaystyle">
    <optional>
      <attribute name="displaystyle">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-scriptsizemultiplier">
    <optional>
      <attribute name="scriptsizemultiplier"/>
    </optional>
  </define>
  <define name="mathml.att-scriptminsize">
    <optional>
      <attribute name="scriptminsize"/>
    </optional>
  </define>
  <define name="mathml.att-background">
    <optional>
      <attribute name="background"/>
    </optional>
  </define>
  <define name="mathml.att-veryverythinmathspace">
    <optional>
      <attribute name="veryverythinmathspace"/>
    </optional>
  </define>
  <define name="mathml.att-verythinmathspace">
    <optional>
      <attribute name="verythinmathspace"/>
    </optional>
  </define>
  <define name="mathml.att-thinmathspace">
    <optional>
      <attribute name="thinmathspace"/>
    </optional>
  </define>
  <define name="mathml.att-mediummathspace">
    <optional>
      <attribute name="mediummathspace"/>
    </optional>
  </define>
  <define name="mathml.att-thickmathspace">
    <optional>
      <attribute name="thickmathspace"/>
    </optional>
  </define>
  <define name="mathml.att-verythickmathspace">
    <optional>
      <attribute name="verythickmathspace"/>
    </optional>
  </define>
  <define name="mathml.att-veryverythickmathspace">
    <optional>
      <attribute name="veryverythickmathspace"/>
    </optional>
  </define>
  <define name="mathml.att-open">
    <optional>
      <attribute name="open"/>
    </optional>
  </define>
  <define name="mathml.att-close">
    <optional>
      <attribute name="close"/>
    </optional>
  </define>
  <define name="mathml.att-separators">
    <optional>
      <attribute name="separators"/>
    </optional>
  </define>
  <define name="mathml.att-subscriptshift">
    <optional>
      <attribute name="subscriptshift"/>
    </optional>
  </define>
  <define name="mathml.att-superscriptshift">
    <optional>
      <attribute name="superscriptshift"/>
    </optional>
  </define>
  <define name="mathml.att-accentunder">
    <optional>
      <attribute name="accentunder">
        <choice>
          <value>true</value>
          <value>false</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-align">
    <optional>
      <attribute name="align"/>
    </optional>
  </define>
  <define name="mathml.att-numalign">
    <optional>
      <attribute name="numalign"/>
    </optional>
  </define>
  <define name="mathml.att-denomalign">
    <optional>
      <attribute name="denomalign"/>
    </optional>
  </define>
  <define name="mathml.att-rowalign">
    <optional>
      <attribute name="rowalign"/>
    </optional>
  </define>
  <define name="mathml.att-columnalign">
    <optional>
      <attribute name="columnalign"/>
    </optional>
  </define>
  <define name="mathml.att-columnwidth">
    <optional>
      <attribute name="columnwidth"/>
    </optional>
  </define>
  <define name="mathml.att-groupalign">
    <optional>
      <attribute name="groupalign"/>
    </optional>
  </define>
  <define name="mathml.att-alignmentscope">
    <optional>
      <attribute name="alignmentscope"/>
    </optional>
  </define>
  <define name="mathml.att-rowspacing">
    <optional>
      <attribute name="rowspacing"/>
    </optional>
  </define>
  <define name="mathml.att-columnspacing">
    <optional>
      <attribute name="columnspacing"/>
    </optional>
  </define>
  <define name="mathml.att-rowlines">
    <optional>
      <attribute name="rowlines"/>
    </optional>
  </define>
  <define name="mathml.att-columnlines">
    <optional>
      <attribute name="columnlines"/>
    </optional>
  </define>
  <define name="mathml.att-frame">
    <optional>
      <attribute name="frame">
        <choice>
          <value>none</value>
          <value>solid</value>
          <value>dashed</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-side">
    <optional>
      <attribute name="side">
        <choice>
          <value>left</value>
          <value>right</value>
          <value>leftoverlap</value>
          <value>rightoverlap</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-framespacing">
    <optional>
      <attribute name="framespacing"/>
    </optional>
  </define>
  <define name="mathml.att-equalrows">
    <optional>
      <attribute name="equalrows"/>
    </optional>
  </define>
  <define name="mathml.att-equalcolumns">
    <optional>
      <attribute name="equalcolumns"/>
    </optional>
  </define>
  <define name="mathml.att-tableinfo">
    <ref name="mathml.att-align"/>
    <ref name="mathml.att-rowalign"/>
    <ref name="mathml.att-columnalign"/>
    <ref name="mathml.att-columnwidth"/>
    <ref name="mathml.att-groupalign"/>
    <ref name="mathml.att-alignmentscope"/>
    <ref name="mathml.att-side"/>
    <ref name="mathml.att-rowspacing"/>
    <ref name="mathml.att-columnspacing"/>
    <ref name="mathml.att-rowlines"/>
    <ref name="mathml.att-columnlines"/>
    <ref name="mathml.att-width"/>
    <ref name="mathml.att-frame"/>
    <ref name="mathml.att-framespacing"/>
    <ref name="mathml.att-equalrows"/>
    <ref name="mathml.att-equalcolumns"/>
    <ref name="mathml.att-displaystyle"/>
  </define>
  <define name="mathml.att-rowspan">
    <optional>
      <attribute name="rowspan"/>
    </optional>
  </define>
  <define name="mathml.att-columnspan">
    <optional>
      <attribute name="columnspan"/>
    </optional>
  </define>
  <define name="mathml.att-edge">
    <optional>
      <attribute name="edge">
        <choice>
          <value>left</value>
          <value>right</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-actiontype">
    <optional>
      <attribute name="actiontype"/>
    </optional>
  </define>
  <define name="mathml.att-selection">
    <optional>
      <attribute name="selection"/>
    </optional>
  </define>
  <define name="mathml.att-name">
    <optional>
      <attribute name="name"/>
    </optional>
  </define>
  <define name="mathml.att-alt">
    <optional>
      <attribute name="alt"/>
    </optional>
  </define>
  <define name="mathml.att-index">
    <optional>
      <attribute name="index"/>
    </optional>
  </define>
  <define name="mathml.att-bevelled">
    <optional>
      <attribute name="bevelled"/>
    </optional>
  </define>
  <!-- Presentation schemata with content -->
  <define name="mathml.ptoken">
    <choice>
      <ref name="mathml.mi"/>
      <ref name="mathml.mn"/>
      <ref name="mathml.mo"/>
      <ref name="mathml.mtext"/>
      <ref name="mathml.ms"/>
    </choice>
  </define>
  <define name="mathml.attlist-mi" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-fontinfo"/>
  </define>
  <define name="mathml.attlist-mn" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-fontinfo"/>
  </define>
  <define name="mathml.attlist-mo" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-fontinfo"/>
    <ref name="mathml.att-opinfo"/>
  </define>
  <define name="mathml.attlist-mtext" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-fontinfo"/>
  </define>
  <define name="mathml.attlist-ms" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-fontinfo"/>
    <ref name="mathml.att-lquote"/>
    <ref name="mathml.att-rquote"/>
  </define>
  <!-- Empty presentation schemata -->
  <define name="mathml.petoken">
    <ref name="mathml.mspace"/>
  </define>
  <define name="mathml.mspace">
    <element name="mspace">
      <ref name="mathml.attlist-mspace"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mspace"/>
  </define>
  <define name="mathml.attlist-mspace" combine="interleave">
    <ref name="mathml.att-sizeinfo"/>
    <ref name="mathml.att-linebreak"/>
    <ref name="MATHML.Common.attrib"/>
  </define>
  <!-- Presentation: general layout schemata -->
  <define name="mathml.pgenschema">
    <choice>
      <ref name="mathml.mrow"/>
      <ref name="mathml.mfrac"/>
      <ref name="mathml.msqrt"/>
      <ref name="mathml.mroot"/>
      <ref name="mathml.menclose"/>
      <ref name="mathml.mstyle"/>
      <ref name="mathml.merror"/>
      <ref name="mathml.mpadded"/>
      <ref name="mathml.mphantom"/>
      <ref name="mathml.mfenced"/>
    </choice>
  </define>
  <define name="mathml.attlist-mrow" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-mfrac" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-bevelled"/>
    <ref name="mathml.att-numalign"/>
    <ref name="mathml.att-denomalign"/>
    <ref name="mathml.att-linethickness"/>
  </define>
  <define name="mathml.attlist-msqrt" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-menclose" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <optional>
      <attribute name="notation" a:defaultValue="longdiv"/>
    </optional>
  </define>
  <define name="mathml.attlist-mroot" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-mstyle" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-fontinfo"/>
    <ref name="mathml.att-opinfo"/>
    <ref name="mathml.att-lquote"/>
    <ref name="mathml.att-rquote"/>
    <ref name="mathml.att-linethickness"/>
    <ref name="mathml.att-scriptlevel"/>
    <ref name="mathml.att-scriptsizemultiplier"/>
    <ref name="mathml.att-scriptminsize"/>
    <ref name="mathml.att-background"/>
    <ref name="mathml.att-veryverythinmathspace"/>
    <ref name="mathml.att-verythinmathspace"/>
    <ref name="mathml.att-thinmathspace"/>
    <ref name="mathml.att-mediummathspace"/>
    <ref name="mathml.att-thickmathspace"/>
    <ref name="mathml.att-verythickmathspace"/>
    <ref name="mathml.att-veryverythickmathspace"/>
    <ref name="mathml.att-open"/>
    <ref name="mathml.att-close"/>
    <ref name="mathml.att-separators"/>
    <ref name="mathml.att-subscriptshift"/>
    <ref name="mathml.att-superscriptshift"/>
    <ref name="mathml.att-accentunder"/>
    <ref name="mathml.att-tableinfo"/>
    <ref name="mathml.att-rowspan"/>
    <ref name="mathml.att-columnspan"/>
    <ref name="mathml.att-edge"/>
    <ref name="mathml.att-actiontype"/>
    <ref name="mathml.att-selection"/>
  </define>
  <define name="mathml.attlist-merror" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-mpadded" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-sizeinfo"/>
    <ref name="mathml.att-lspace"/>
  </define>
  <define name="mathml.attlist-mphantom" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-mfenced" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-open"/>
    <ref name="mathml.att-close"/>
    <ref name="mathml.att-separators"/>
  </define>
  <!-- Presentation layout schemata: scripts and limits -->
  <define name="mathml.pscrschema">
    <choice>
      <ref name="mathml.msub"/>
      <ref name="mathml.msup"/>
      <ref name="mathml.msubsup"/>
      <ref name="mathml.munder"/>
      <ref name="mathml.mover"/>
      <ref name="mathml.munderover"/>
      <ref name="mathml.mmultiscripts"/>
    </choice>
  </define>
  <define name="mathml.attlist-msub" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-subscriptshift"/>
  </define>
  <define name="mathml.attlist-msup" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-superscriptshift"/>
  </define>
  <define name="mathml.attlist-msubsup" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-subscriptshift"/>
    <ref name="mathml.att-superscriptshift"/>
  </define>
  <define name="mathml.attlist-munder" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-accentunder"/>
  </define>
  <define name="mathml.attlist-mover" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-accent"/>
  </define>
  <define name="mathml.attlist-munderover" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-accent"/>
    <ref name="mathml.att-accentunder"/>
  </define>
  <define name="mathml.attlist-mmultiscripts" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-subscriptshift"/>
    <ref name="mathml.att-superscriptshift"/>
  </define>
  <!-- Presentation layout schemata: empty elements for scripts -->
  <define name="mathml.pscreschema">
    <choice>
      <ref name="mathml.mprescripts"/>
      <ref name="mathml.none"/>
    </choice>
  </define>
  <define name="mathml.mprescripts">
    <element name="mprescripts">
      <ref name="mathml.attlist-mprescripts"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mprescripts"/>
  </define>
  <define name="mathml.attlist-mprescripts" combine="interleave">
    <ref name="MATHML.xmlns.attrib"/>
  </define>
  <define name="mathml.none">
    <element name="none">
      <ref name="mathml.attlist-none"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.none"/>
  </define>
  <define name="mathml.attlist-none" combine="interleave">
    <ref name="MATHML.xmlns.attrib"/>
  </define>
  <!-- Presentation layout schemata: tables -->
  <define name="mathml.ptabschema">
    <choice>
      <ref name="mathml.mtable"/>
      <ref name="mathml.mtr"/>
      <ref name="mathml.mlabeledtr"/>
      <ref name="mathml.mtd"/>
    </choice>
  </define>
  <define name="mathml.attlist-mtable" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-tableinfo"/>
  </define>
  <define name="mathml.attlist-mtr" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-rowalign"/>
    <ref name="mathml.att-columnalign"/>
    <ref name="mathml.att-groupalign"/>
  </define>
  <define name="mathml.attlist-mlabeledtr" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-rowalign"/>
    <ref name="mathml.att-columnalign"/>
    <ref name="mathml.att-groupalign"/>
  </define>
  <define name="mathml.attlist-mtd" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-rowalign"/>
    <ref name="mathml.att-columnalign"/>
    <ref name="mathml.att-groupalign"/>
    <ref name="mathml.att-rowspan"/>
    <ref name="mathml.att-columnspan"/>
  </define>
  <define name="mathml.plschema">
    <choice>
      <ref name="mathml.pgenschema"/>
      <ref name="mathml.pscrschema"/>
      <ref name="mathml.ptabschema"/>
    </choice>
  </define>
  <!-- Empty presentation layout schemata -->
  <define name="mathml.peschema">
    <choice>
      <ref name="mathml.maligngroup"/>
      <ref name="mathml.malignmark"/>
    </choice>
  </define>
  <define name="mathml.malignmark">
    <element name="malignmark">
      <ref name="mathml.attlist-malignmark"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.malignmark"/>
  </define>
  <define name="mathml.attlist-malignmark" combine="interleave">
    <ref name="mathml.att-edge"/>
  </define>
  <define name="mathml.maligngroup">
    <element name="maligngroup">
      <ref name="mathml.attlist-maligngroup"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.maligngroup"/>
  </define>
  <define name="mathml.attlist-maligngroup" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-groupalign"/>
  </define>
  <define name="mathml.mglyph">
    <element name="mglyph">
      <ref name="mathml.attlist-mglyph"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mglyph"/>
  </define>
  <define name="mathml.attlist-mglyph" combine="interleave">
    <ref name="mathml.att-alt"/>
    <ref name="mathml.att-fontfamily"/>
    <ref name="mathml.att-index"/>
  </define>
  <!-- Presentation action schemata -->
  <define name="mathml.pactions">
    <ref name="mathml.maction"/>
  </define>
  <define name="mathml.attlist-maction" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-actiontype"/>
    <ref name="mathml.att-selection"/>
  </define>
  <!--
    The following entity for substitution into
    content constructs excludes elements that
    are not valid as expressions.
  -->
  <define name="mathml.PresInCont">
    <choice>
      <ref name="mathml.ptoken"/>
      <ref name="mathml.petoken"/>
      <ref name="mathml.plschema"/>
      <ref name="mathml.peschema"/>
      <ref name="mathml.pactions"/>
    </choice>
  </define>
  <!-- Presentation entity: all presentation constructs -->
  <define name="mathml.Presentation">
    <choice>
      <ref name="mathml.ptoken"/>
      <ref name="mathml.petoken"/>
      <ref name="mathml.pscreschema"/>
      <ref name="mathml.plschema"/>
      <ref name="mathml.peschema"/>
      <ref name="mathml.pactions"/>
    </choice>
  </define>
  <!-- Content element set  ........................................ -->
  <!-- Attribute definitions -->
  <define name="mathml.att-base">
    <optional>
      <attribute name="base" a:defaultValue="10"/>
    </optional>
  </define>
  <define name="mathml.att-closure">
    <optional>
      <attribute name="closure" a:defaultValue="closed"/>
    </optional>
  </define>
  <define name="mathml.att-definition">
    <optional>
      <attribute name="definitionURL" a:defaultValue=""/>
    </optional>
  </define>
  <define name="mathml.att-encoding">
    <optional>
      <attribute name="encoding" a:defaultValue=""/>
    </optional>
  </define>
  <define name="mathml.att-nargs">
    <optional>
      <attribute name="nargs" a:defaultValue="1"/>
    </optional>
  </define>
  <define name="mathml.att-occurrence">
    <optional>
      <attribute name="occurrence" a:defaultValue="function-model"/>
    </optional>
  </define>
  <define name="mathml.att-order">
    <optional>
      <attribute name="order" a:defaultValue="numeric"/>
    </optional>
  </define>
  <define name="mathml.att-scope">
    <optional>
      <attribute name="scope" a:defaultValue="local"/>
    </optional>
  </define>
  <define name="mathml.att-type">
    <optional>
      <attribute name="type"/>
    </optional>
  </define>
  <!-- Content elements: leaf nodes -->
  <define name="mathml.ctoken">
    <choice>
      <ref name="mathml.csymbol"/>
      <ref name="mathml.ci"/>
      <ref name="mathml.cn"/>
    </choice>
  </define>
  <define name="mathml.attlist-ci" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-type"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.attlist-csymbol" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-encoding"/>
    <ref name="mathml.att-type"/>
    <ref name="mathml.att-definition"/>
  </define>
  <define name="mathml.attlist-cn" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-type"/>
    <ref name="mathml.att-base"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <!-- Content elements: specials -->
  <define name="mathml.cspecial">
    <choice>
      <ref name="mathml.apply"/>
      <ref name="mathml.reln"/>
      <ref name="mathml.lambda"/>
    </choice>
  </define>
  <define name="mathml.attlist-apply" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-reln" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-lambda" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <!-- Content elements: others -->
  <define name="mathml.cother">
    <choice>
      <ref name="mathml.condition"/>
      <ref name="mathml.declare"/>
      <ref name="mathml.sep"/>
    </choice>
  </define>
  <define name="mathml.attlist-condition" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-declare" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-type"/>
    <ref name="mathml.att-scope"/>
    <ref name="mathml.att-nargs"/>
    <ref name="mathml.att-occurrence"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.sep">
    <element name="sep">
      <ref name="mathml.attlist-sep"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.sep"/>
  </define>
  <define name="mathml.attlist-sep" combine="interleave">
    <ref name="MATHML.xmlns.attrib"/>
  </define>
  <!-- Content elements: semantic mapping -->
  <define name="mathml.csemantics">
    <choice>
      <ref name="mathml.semantics"/>
      <ref name="mathml.annotation"/>
      <ref name="mathml.annotation-xml"/>
    </choice>
  </define>
  <define name="mathml.attlist-semantics" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.attlist-annotation" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.attlist-annotation-xml" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <!-- Content elements: constructors -->
  <define name="mathml.cconstructor">
    <choice>
      <ref name="mathml.interval"/>
      <ref name="mathml.list"/>
      <ref name="mathml.matrix"/>
      <ref name="mathml.matrixrow"/>
      <ref name="mathml.set"/>
      <ref name="mathml.vector"/>
      <ref name="mathml.piecewise"/>
    </choice>
  </define>
  <define name="mathml.attlist-interval" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-closure"/>
  </define>
  <define name="mathml.attlist-set" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-type"/>
  </define>
  <define name="mathml.attlist-list" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-order"/>
  </define>
  <define name="mathml.attlist-vector" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-matrix" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-matrixrow" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-piecewise" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-piece" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-otherwise" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <!-- Content elements: symbols -->
  <define name="mathml.c0ary">
    <choice>
      <ref name="mathml.integers"/>
      <ref name="mathml.reals"/>
      <ref name="mathml.rationals"/>
      <ref name="mathml.naturalnumbers"/>
      <ref name="mathml.complexes"/>
      <ref name="mathml.primes"/>
      <ref name="mathml.exponentiale"/>
      <ref name="mathml.imaginaryi"/>
      <ref name="mathml.notanumber"/>
      <ref name="mathml.true"/>
      <ref name="mathml.false"/>
      <ref name="mathml.emptyset"/>
      <ref name="mathml.pi"/>
      <ref name="mathml.eulergamma"/>
      <ref name="mathml.infinity"/>
    </choice>
  </define>
  <define name="mathml.integers">
    <element name="integers">
      <ref name="mathml.attlist-integers"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.integers"/>
  </define>
  <define name="mathml.attlist-integers" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.reals">
    <element name="reals">
      <ref name="mathml.attlist-reals"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.reals"/>
  </define>
  <define name="mathml.attlist-reals" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.rationals">
    <element name="rationals">
      <ref name="mathml.attlist-rationals"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.rationals"/>
  </define>
  <define name="mathml.attlist-rationals" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.naturalnumbers">
    <element name="naturalnumbers">
      <ref name="mathml.attlist-naturalnumbers"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.naturalnumbers"/>
  </define>
  <define name="mathml.attlist-naturalnumbers" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.complexes">
    <element name="complexes">
      <ref name="mathml.attlist-complexes"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.complexes"/>
  </define>
  <define name="mathml.attlist-complexes" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.primes">
    <element name="primes">
      <ref name="mathml.attlist-primes"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.primes"/>
  </define>
  <define name="mathml.attlist-primes" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.exponentiale">
    <element name="exponentiale">
      <ref name="mathml.attlist-exponentiale"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.exponentiale"/>
  </define>
  <define name="mathml.attlist-exponentiale" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.imaginaryi">
    <element name="imaginaryi">
      <ref name="mathml.attlist-imaginaryi"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.imaginaryi"/>
  </define>
  <define name="mathml.attlist-imaginaryi" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.notanumber">
    <element name="notanumber">
      <ref name="mathml.attlist-notanumber"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.notanumber"/>
  </define>
  <define name="mathml.attlist-notanumber" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.true">
    <element name="true">
      <ref name="mathml.attlist-true"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.true"/>
  </define>
  <define name="mathml.attlist-true" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.false">
    <element name="false">
      <ref name="mathml.attlist-false"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.false"/>
  </define>
  <define name="mathml.attlist-false" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.emptyset">
    <element name="emptyset">
      <ref name="mathml.attlist-emptyset"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.emptyset"/>
  </define>
  <define name="mathml.attlist-emptyset" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.pi">
    <element name="pi">
      <ref name="mathml.attlist-pi"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.pi"/>
  </define>
  <define name="mathml.attlist-pi" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.eulergamma">
    <element name="eulergamma">
      <ref name="mathml.attlist-eulergamma"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.eulergamma"/>
  </define>
  <define name="mathml.attlist-eulergamma" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.infinity">
    <element name="infinity">
      <ref name="mathml.attlist-infinity"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.infinity"/>
  </define>
  <define name="mathml.attlist-infinity" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <!-- Content elements: operators -->
  <define name="mathml.cfuncop1ary">
    <choice>
      <ref name="mathml.inverse"/>
      <ref name="mathml.ident"/>
      <ref name="mathml.domain"/>
      <ref name="mathml.codomain"/>
      <ref name="mathml.image"/>
    </choice>
  </define>
  <define name="mathml.inverse">
    <element name="inverse">
      <ref name="mathml.attlist-inverse"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.inverse"/>
  </define>
  <define name="mathml.attlist-inverse" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.domain">
    <element name="domain">
      <ref name="mathml.attlist-domain"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.domain"/>
  </define>
  <define name="mathml.attlist-domain" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.codomain">
    <element name="codomain">
      <ref name="mathml.attlist-codomain"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.codomain"/>
  </define>
  <define name="mathml.attlist-codomain" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.image">
    <element name="image">
      <ref name="mathml.attlist-image"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.image"/>
  </define>
  <define name="mathml.attlist-image" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cfuncopnary">
    <choice>
      <ref name="mathml.fn"/>
      <ref name="mathml.compose"/>
    </choice>
  </define>
  <define name="mathml.attlist-fn" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.ident">
    <element name="ident">
      <ref name="mathml.attlist-ident"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.ident"/>
  </define>
  <define name="mathml.attlist-ident" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.compose">
    <element name="compose">
      <ref name="mathml.attlist-compose"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.compose"/>
  </define>
  <define name="mathml.attlist-compose" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.carithop1ary">
    <choice>
      <ref name="mathml.abs"/>
      <ref name="mathml.conjugate"/>
      <ref name="mathml.exp"/>
      <ref name="mathml.factorial"/>
      <ref name="mathml.arg"/>
      <ref name="mathml.real"/>
      <ref name="mathml.imaginary"/>
      <ref name="mathml.floor"/>
      <ref name="mathml.ceiling"/>
    </choice>
  </define>
  <define name="mathml.exp">
    <element name="exp">
      <ref name="mathml.attlist-exp"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.exp"/>
  </define>
  <define name="mathml.attlist-exp" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.abs">
    <element name="abs">
      <ref name="mathml.attlist-abs"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.abs"/>
  </define>
  <define name="mathml.attlist-abs" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arg">
    <element name="arg">
      <ref name="mathml.attlist-arg"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arg"/>
  </define>
  <define name="mathml.attlist-arg" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.real">
    <element name="real">
      <ref name="mathml.attlist-real"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.real"/>
  </define>
  <define name="mathml.attlist-real" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.imaginary">
    <element name="imaginary">
      <ref name="mathml.attlist-imaginary"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.imaginary"/>
  </define>
  <define name="mathml.attlist-imaginary" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.conjugate">
    <element name="conjugate">
      <ref name="mathml.attlist-conjugate"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.conjugate"/>
  </define>
  <define name="mathml.attlist-conjugate" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.factorial">
    <element name="factorial">
      <ref name="mathml.attlist-factorial"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.factorial"/>
  </define>
  <define name="mathml.attlist-factorial" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.floor">
    <element name="floor">
      <ref name="mathml.attlist-floor"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.floor"/>
  </define>
  <define name="mathml.attlist-floor" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.ceiling">
    <element name="ceiling">
      <ref name="mathml.attlist-ceiling"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.ceiling"/>
  </define>
  <define name="mathml.attlist-ceiling" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.carithop1or2ary">
    <ref name="mathml.minus"/>
  </define>
  <define name="mathml.minus">
    <element name="minus">
      <ref name="mathml.attlist-minus"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.minus"/>
  </define>
  <define name="mathml.attlist-minus" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.carithop2ary">
    <choice>
      <ref name="mathml.quotient"/>
      <ref name="mathml.divide"/>
      <ref name="mathml.power"/>
      <ref name="mathml.rem"/>
    </choice>
  </define>
  <define name="mathml.quotient">
    <element name="quotient">
      <ref name="mathml.attlist-quotient"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.quotient"/>
  </define>
  <define name="mathml.attlist-quotient" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.divide">
    <element name="divide">
      <ref name="mathml.attlist-divide"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.divide"/>
  </define>
  <define name="mathml.attlist-divide" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.power">
    <element name="power">
      <ref name="mathml.attlist-power"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.power"/>
  </define>
  <define name="mathml.attlist-power" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.rem">
    <element name="rem">
      <ref name="mathml.attlist-rem"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.rem"/>
  </define>
  <define name="mathml.attlist-rem" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.carithopnary">
    <choice>
      <ref name="mathml.plus"/>
      <ref name="mathml.times"/>
      <ref name="mathml.max"/>
      <ref name="mathml.min"/>
      <ref name="mathml.gcd"/>
      <ref name="mathml.lcm"/>
    </choice>
  </define>
  <define name="mathml.plus">
    <element name="plus">
      <ref name="mathml.attlist-plus"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.plus"/>
  </define>
  <define name="mathml.attlist-plus" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.max">
    <element name="max">
      <ref name="mathml.attlist-max"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.max"/>
  </define>
  <define name="mathml.attlist-max" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.min">
    <element name="min">
      <ref name="mathml.attlist-min"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.min"/>
  </define>
  <define name="mathml.attlist-min" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.times">
    <element name="times">
      <ref name="mathml.attlist-times"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.times"/>
  </define>
  <define name="mathml.attlist-times" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.gcd">
    <element name="gcd">
      <ref name="mathml.attlist-gcd"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.gcd"/>
  </define>
  <define name="mathml.attlist-gcd" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.lcm">
    <element name="lcm">
      <ref name="mathml.attlist-lcm"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.lcm"/>
  </define>
  <define name="mathml.attlist-lcm" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.carithoproot">
    <ref name="mathml.root"/>
  </define>
  <define name="mathml.root">
    <element name="root">
      <ref name="mathml.attlist-root"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.root"/>
  </define>
  <define name="mathml.attlist-root" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.clogicopquant">
    <choice>
      <ref name="mathml.exists"/>
      <ref name="mathml.forall"/>
    </choice>
  </define>
  <define name="mathml.exists">
    <element name="exists">
      <ref name="mathml.attlist-exists"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.exists"/>
  </define>
  <define name="mathml.attlist-exists" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.forall">
    <element name="forall">
      <ref name="mathml.attlist-forall"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.forall"/>
  </define>
  <define name="mathml.attlist-forall" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.clogicopnary">
    <choice>
      <ref name="mathml.and"/>
      <ref name="mathml.or"/>
      <ref name="mathml.xor"/>
    </choice>
  </define>
  <define name="mathml.and">
    <element name="and">
      <ref name="mathml.attlist-and"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.and"/>
  </define>
  <define name="mathml.attlist-and" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.or">
    <element name="or">
      <ref name="mathml.attlist-or"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.or"/>
  </define>
  <define name="mathml.attlist-or" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.xor">
    <element name="xor">
      <ref name="mathml.attlist-xor"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.xor"/>
  </define>
  <define name="mathml.attlist-xor" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.clogicop1ary">
    <ref name="mathml.not"/>
  </define>
  <define name="mathml.not">
    <element name="not">
      <ref name="mathml.attlist-not"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.not"/>
  </define>
  <define name="mathml.attlist-not" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.clogicop2ary">
    <ref name="mathml.implies"/>
  </define>
  <define name="mathml.implies">
    <element name="implies">
      <ref name="mathml.attlist-implies"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.implies"/>
  </define>
  <define name="mathml.attlist-implies" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.ccalcop">
    <choice>
      <ref name="mathml.log"/>
      <ref name="mathml.int"/>
      <ref name="mathml.diff"/>
      <ref name="mathml.partialdiff"/>
      <ref name="mathml.divergence"/>
      <ref name="mathml.grad"/>
      <ref name="mathml.curl"/>
      <ref name="mathml.laplacian"/>
    </choice>
  </define>
  <define name="mathml.divergence">
    <element name="divergence">
      <ref name="mathml.attlist-divergence"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.divergence"/>
  </define>
  <define name="mathml.attlist-divergence" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.grad">
    <element name="grad">
      <ref name="mathml.attlist-grad"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.grad"/>
  </define>
  <define name="mathml.attlist-grad" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.curl">
    <element name="curl">
      <ref name="mathml.attlist-curl"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.curl"/>
  </define>
  <define name="mathml.attlist-curl" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.laplacian">
    <element name="laplacian">
      <ref name="mathml.attlist-laplacian"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.laplacian"/>
  </define>
  <define name="mathml.attlist-laplacian" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.log">
    <element name="log">
      <ref name="mathml.attlist-log"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.log"/>
  </define>
  <define name="mathml.attlist-log" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.int">
    <element name="int">
      <ref name="mathml.attlist-int"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.int"/>
  </define>
  <define name="mathml.attlist-int" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.diff">
    <element name="diff">
      <ref name="mathml.attlist-diff"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.diff"/>
  </define>
  <define name="mathml.attlist-diff" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.partialdiff">
    <element name="partialdiff">
      <ref name="mathml.attlist-partialdiff"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.partialdiff"/>
  </define>
  <define name="mathml.attlist-partialdiff" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.ccalcop1ary">
    <ref name="mathml.ln"/>
  </define>
  <define name="mathml.ln">
    <element name="ln">
      <ref name="mathml.attlist-ln"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.ln"/>
  </define>
  <define name="mathml.attlist-ln" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.csetop1ary">
    <ref name="mathml.card"/>
  </define>
  <define name="mathml.card">
    <element name="card">
      <ref name="mathml.attlist-card"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.card"/>
  </define>
  <define name="mathml.attlist-card" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.csetop2ary">
    <ref name="mathml.setdiff"/>
  </define>
  <define name="mathml.setdiff">
    <element name="setdiff">
      <ref name="mathml.attlist-setdiff"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.setdiff"/>
  </define>
  <define name="mathml.attlist-setdiff" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.csetopnary">
    <choice>
      <ref name="mathml.union"/>
      <ref name="mathml.intersect"/>
      <ref name="mathml.cartesianproduct"/>
    </choice>
  </define>
  <define name="mathml.union">
    <element name="union">
      <ref name="mathml.attlist-union"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.union"/>
  </define>
  <define name="mathml.attlist-union" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.intersect">
    <element name="intersect">
      <ref name="mathml.attlist-intersect"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.intersect"/>
  </define>
  <define name="mathml.attlist-intersect" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cartesianproduct">
    <element name="cartesianproduct">
      <ref name="mathml.attlist-cartesianproduct"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.cartesianproduct"/>
  </define>
  <define name="mathml.attlist-cartesianproduct" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cseqop">
    <choice>
      <ref name="mathml.sum"/>
      <ref name="mathml.product"/>
      <ref name="mathml.limit"/>
    </choice>
  </define>
  <define name="mathml.sum">
    <element name="sum">
      <ref name="mathml.attlist-sum"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.sum"/>
  </define>
  <define name="mathml.attlist-sum" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.product">
    <element name="product">
      <ref name="mathml.attlist-product"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.product"/>
  </define>
  <define name="mathml.attlist-product" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.limit">
    <element name="limit">
      <ref name="mathml.attlist-limit"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.limit"/>
  </define>
  <define name="mathml.attlist-limit" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.ctrigop">
    <choice>
      <ref name="mathml.sin"/>
      <ref name="mathml.cos"/>
      <ref name="mathml.tan"/>
      <ref name="mathml.sec"/>
      <ref name="mathml.csc"/>
      <ref name="mathml.cot"/>
      <ref name="mathml.sinh"/>
      <ref name="mathml.cosh"/>
      <ref name="mathml.tanh"/>
      <ref name="mathml.sech"/>
      <ref name="mathml.csch"/>
      <ref name="mathml.coth"/>
      <ref name="mathml.arcsin"/>
      <ref name="mathml.arccos"/>
      <ref name="mathml.arctan"/>
      <ref name="mathml.arccosh"/>
      <ref name="mathml.arccot"/>
      <ref name="mathml.arccoth"/>
      <ref name="mathml.arccsc"/>
      <ref name="mathml.arccsch"/>
      <ref name="mathml.arcsec"/>
      <ref name="mathml.arcsech"/>
      <ref name="mathml.arcsinh"/>
      <ref name="mathml.arctanh"/>
    </choice>
  </define>
  <define name="mathml.sin">
    <element name="sin">
      <ref name="mathml.attlist-sin"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.sin"/>
  </define>
  <define name="mathml.attlist-sin" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cos">
    <element name="cos">
      <ref name="mathml.attlist-cos"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.cos"/>
  </define>
  <define name="mathml.attlist-cos" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.tan">
    <element name="tan">
      <ref name="mathml.attlist-tan"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.tan"/>
  </define>
  <define name="mathml.attlist-tan" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.sec">
    <element name="sec">
      <ref name="mathml.attlist-sec"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.sec"/>
  </define>
  <define name="mathml.attlist-sec" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.csc">
    <element name="csc">
      <ref name="mathml.attlist-csc"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.csc"/>
  </define>
  <define name="mathml.attlist-csc" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cot">
    <element name="cot">
      <ref name="mathml.attlist-cot"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.cot"/>
  </define>
  <define name="mathml.attlist-cot" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.sinh">
    <element name="sinh">
      <ref name="mathml.attlist-sinh"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.sinh"/>
  </define>
  <define name="mathml.attlist-sinh" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cosh">
    <element name="cosh">
      <ref name="mathml.attlist-cosh"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.cosh"/>
  </define>
  <define name="mathml.attlist-cosh" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.tanh">
    <element name="tanh">
      <ref name="mathml.attlist-tanh"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.tanh"/>
  </define>
  <define name="mathml.attlist-tanh" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.sech">
    <element name="sech">
      <ref name="mathml.attlist-sech"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.sech"/>
  </define>
  <define name="mathml.attlist-sech" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.csch">
    <element name="csch">
      <ref name="mathml.attlist-csch"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.csch"/>
  </define>
  <define name="mathml.attlist-csch" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.coth">
    <element name="coth">
      <ref name="mathml.attlist-coth"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.coth"/>
  </define>
  <define name="mathml.attlist-coth" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arcsin">
    <element name="arcsin">
      <ref name="mathml.attlist-arcsin"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arcsin"/>
  </define>
  <define name="mathml.attlist-arcsin" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arccos">
    <element name="arccos">
      <ref name="mathml.attlist-arccos"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arccos"/>
  </define>
  <define name="mathml.attlist-arccos" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arctan">
    <element name="arctan">
      <ref name="mathml.attlist-arctan"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arctan"/>
  </define>
  <define name="mathml.attlist-arctan" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arccosh">
    <element name="arccosh">
      <ref name="mathml.attlist-arccosh"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arccosh"/>
  </define>
  <define name="mathml.attlist-arccosh" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arccot">
    <element name="arccot">
      <ref name="mathml.attlist-arccot"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arccot"/>
  </define>
  <define name="mathml.attlist-arccot" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arccoth">
    <element name="arccoth">
      <ref name="mathml.attlist-arccoth"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arccoth"/>
  </define>
  <define name="mathml.attlist-arccoth" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arccsc">
    <element name="arccsc">
      <ref name="mathml.attlist-arccsc"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arccsc"/>
  </define>
  <define name="mathml.attlist-arccsc" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arccsch">
    <element name="arccsch">
      <ref name="mathml.attlist-arccsch"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arccsch"/>
  </define>
  <define name="mathml.attlist-arccsch" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arcsec">
    <element name="arcsec">
      <ref name="mathml.attlist-arcsec"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arcsec"/>
  </define>
  <define name="mathml.attlist-arcsec" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arcsech">
    <element name="arcsech">
      <ref name="mathml.attlist-arcsech"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arcsech"/>
  </define>
  <define name="mathml.attlist-arcsech" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arcsinh">
    <element name="arcsinh">
      <ref name="mathml.attlist-arcsinh"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arcsinh"/>
  </define>
  <define name="mathml.attlist-arcsinh" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.arctanh">
    <element name="arctanh">
      <ref name="mathml.attlist-arctanh"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.arctanh"/>
  </define>
  <define name="mathml.attlist-arctanh" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cstatopnary">
    <choice>
      <ref name="mathml.mean"/>
      <ref name="mathml.sdev"/>
      <ref name="mathml.variance"/>
      <ref name="mathml.median"/>
      <ref name="mathml.mode"/>
    </choice>
  </define>
  <define name="mathml.mean">
    <element name="mean">
      <ref name="mathml.attlist-mean"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mean"/>
  </define>
  <define name="mathml.attlist-mean" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.sdev">
    <element name="sdev">
      <ref name="mathml.attlist-sdev"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.sdev"/>
  </define>
  <define name="mathml.attlist-sdev" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.variance">
    <element name="variance">
      <ref name="mathml.attlist-variance"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.variance"/>
  </define>
  <define name="mathml.attlist-variance" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.median">
    <element name="median">
      <ref name="mathml.attlist-median"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.median"/>
  </define>
  <define name="mathml.attlist-median" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.mode">
    <element name="mode">
      <ref name="mathml.attlist-mode"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mode"/>
  </define>
  <define name="mathml.attlist-mode" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cstatopmoment">
    <ref name="mathml.moment"/>
  </define>
  <define name="mathml.moment">
    <element name="moment">
      <ref name="mathml.attlist-moment"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.moment"/>
  </define>
  <define name="mathml.attlist-moment" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.clalgop1ary">
    <choice>
      <ref name="mathml.determinant"/>
      <ref name="mathml.transpose"/>
    </choice>
  </define>
  <define name="mathml.determinant">
    <element name="determinant">
      <ref name="mathml.attlist-determinant"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.determinant"/>
  </define>
  <define name="mathml.attlist-determinant" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.transpose">
    <element name="transpose">
      <ref name="mathml.attlist-transpose"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.transpose"/>
  </define>
  <define name="mathml.attlist-transpose" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.clalgop2ary">
    <choice>
      <ref name="mathml.vectorproduct"/>
      <ref name="mathml.scalarproduct"/>
      <ref name="mathml.outerproduct"/>
    </choice>
  </define>
  <define name="mathml.vectorproduct">
    <element name="vectorproduct">
      <ref name="mathml.attlist-vectorproduct"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.vectorproduct"/>
  </define>
  <define name="mathml.attlist-vectorproduct" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.scalarproduct">
    <element name="scalarproduct">
      <ref name="mathml.attlist-scalarproduct"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.scalarproduct"/>
  </define>
  <define name="mathml.attlist-scalarproduct" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.outerproduct">
    <element name="outerproduct">
      <ref name="mathml.attlist-outerproduct"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.outerproduct"/>
  </define>
  <define name="mathml.attlist-outerproduct" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.clalgopnary">
    <ref name="mathml.selector"/>
  </define>
  <define name="mathml.selector">
    <element name="selector">
      <ref name="mathml.attlist-selector"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.selector"/>
  </define>
  <define name="mathml.attlist-selector" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <!-- Content elements: relations -->
  <define name="mathml.cgenrel2ary">
    <choice>
      <ref name="mathml.neq"/>
      <ref name="mathml.factorof"/>
    </choice>
  </define>
  <define name="mathml.neq">
    <element name="neq">
      <ref name="mathml.attlist-neq"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.neq"/>
  </define>
  <define name="mathml.attlist-neq" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.factorof">
    <element name="factorof">
      <ref name="mathml.attlist-factorof"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.factorof"/>
  </define>
  <define name="mathml.attlist-factorof" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cgenrelnary">
    <choice>
      <ref name="mathml.eq"/>
      <ref name="mathml.leq"/>
      <ref name="mathml.lt"/>
      <ref name="mathml.geq"/>
      <ref name="mathml.gt"/>
      <ref name="mathml.equivalent"/>
      <ref name="mathml.approx"/>
    </choice>
  </define>
  <define name="mathml.eq">
    <element name="eq">
      <ref name="mathml.attlist-eq"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.eq"/>
  </define>
  <define name="mathml.attlist-eq" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.equivalent">
    <element name="equivalent">
      <ref name="mathml.attlist-equivalent"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.equivalent"/>
  </define>
  <define name="mathml.attlist-equivalent" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.approx">
    <element name="approx">
      <ref name="mathml.attlist-approx"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.approx"/>
  </define>
  <define name="mathml.attlist-approx" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.gt">
    <element name="gt">
      <ref name="mathml.attlist-gt"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.gt"/>
  </define>
  <define name="mathml.attlist-gt" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.lt">
    <element name="lt">
      <ref name="mathml.attlist-lt"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.lt"/>
  </define>
  <define name="mathml.attlist-lt" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.geq">
    <element name="geq">
      <ref name="mathml.attlist-geq"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.geq"/>
  </define>
  <define name="mathml.attlist-geq" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.leq">
    <element name="leq">
      <ref name="mathml.attlist-leq"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.leq"/>
  </define>
  <define name="mathml.attlist-leq" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.csetrel2ary">
    <choice>
      <ref name="mathml.in"/>
      <ref name="mathml.notin"/>
      <ref name="mathml.notsubset"/>
      <ref name="mathml.notprsubset"/>
    </choice>
  </define>
  <define name="mathml.in">
    <element name="in">
      <ref name="mathml.attlist-in"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.in"/>
  </define>
  <define name="mathml.attlist-in" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.notin">
    <element name="notin">
      <ref name="mathml.attlist-notin"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.notin"/>
  </define>
  <define name="mathml.attlist-notin" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.notsubset">
    <element name="notsubset">
      <ref name="mathml.attlist-notsubset"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.notsubset"/>
  </define>
  <define name="mathml.attlist-notsubset" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.notprsubset">
    <element name="notprsubset">
      <ref name="mathml.attlist-notprsubset"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.notprsubset"/>
  </define>
  <define name="mathml.attlist-notprsubset" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.csetrelnary">
    <choice>
      <ref name="mathml.subset"/>
      <ref name="mathml.prsubset"/>
    </choice>
  </define>
  <define name="mathml.subset">
    <element name="subset">
      <ref name="mathml.attlist-subset"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.subset"/>
  </define>
  <define name="mathml.attlist-subset" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.prsubset">
    <element name="prsubset">
      <ref name="mathml.attlist-prsubset"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.prsubset"/>
  </define>
  <define name="mathml.attlist-prsubset" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
  </define>
  <define name="mathml.cseqrel2ary">
    <ref name="mathml.tendsto"/>
  </define>
  <define name="mathml.tendsto">
    <element name="tendsto">
      <ref name="mathml.attlist-tendsto"/>
      <empty/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.tendsto"/>
  </define>
  <define name="mathml.attlist-tendsto" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-definition"/>
    <ref name="mathml.att-encoding"/>
    <ref name="mathml.att-type"/>
  </define>
  <!-- Content elements: quantifiers -->
  <define name="mathml.cquantifier">
    <choice>
      <ref name="mathml.lowlimit"/>
      <ref name="mathml.uplimit"/>
      <ref name="mathml.bvar"/>
      <ref name="mathml.degree"/>
      <ref name="mathml.logbase"/>
      <ref name="mathml.momentabout"/>
      <ref name="mathml.domainofapplication"/>
    </choice>
  </define>
  <define name="mathml.attlist-lowlimit" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-uplimit" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-bvar" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-degree" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-logbase" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-momentabout" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <define name="mathml.attlist-domainofapplication" combine="interleave">
    <ref name="MATHML.Common.attrib"/>
  </define>
  <!-- Operator groups -->
  <define name="mathml.cop1ary">
    <choice>
      <ref name="mathml.cfuncop1ary"/>
      <ref name="mathml.carithop1ary"/>
      <ref name="mathml.clogicop1ary"/>
      <ref name="mathml.ccalcop1ary"/>
      <ref name="mathml.ctrigop"/>
      <ref name="mathml.clalgop1ary"/>
      <ref name="mathml.csetop1ary"/>
    </choice>
  </define>
  <define name="mathml.cop2ary">
    <choice>
      <ref name="mathml.carithop2ary"/>
      <ref name="mathml.clogicop2ary"/>
      <ref name="mathml.clalgop2ary"/>
      <ref name="mathml.csetop2ary"/>
    </choice>
  </define>
  <define name="mathml.copnary">
    <choice>
      <ref name="mathml.cfuncopnary"/>
      <ref name="mathml.carithopnary"/>
      <ref name="mathml.clogicopnary"/>
      <ref name="mathml.csetopnary"/>
      <ref name="mathml.cstatopnary"/>
      <ref name="mathml.clalgopnary"/>
    </choice>
  </define>
  <define name="mathml.copmisc">
    <choice>
      <ref name="mathml.carithoproot"/>
      <ref name="mathml.carithop1or2ary"/>
      <ref name="mathml.ccalcop"/>
      <ref name="mathml.cseqop"/>
      <ref name="mathml.cstatopmoment"/>
      <ref name="mathml.clogicopquant"/>
    </choice>
  </define>
  <!-- Relation groups -->
  <define name="mathml.crel2ary">
    <choice>
      <ref name="mathml.cgenrel2ary"/>
      <ref name="mathml.csetrel2ary"/>
      <ref name="mathml.cseqrel2ary"/>
    </choice>
  </define>
  <define name="mathml.crelnary">
    <choice>
      <ref name="mathml.cgenrelnary"/>
      <ref name="mathml.csetrelnary"/>
    </choice>
  </define>
  <!-- Content constructs: all -->
  <define name="mathml.Content">
    <choice>
      <ref name="mathml.ctoken"/>
      <ref name="mathml.cspecial"/>
      <ref name="mathml.cother"/>
      <ref name="mathml.csemantics"/>
      <ref name="mathml.c0ary"/>
      <ref name="mathml.cconstructor"/>
      <ref name="mathml.cquantifier"/>
      <ref name="mathml.cop1ary"/>
      <ref name="mathml.cop2ary"/>
      <ref name="mathml.copnary"/>
      <ref name="mathml.copmisc"/>
      <ref name="mathml.crel2ary"/>
      <ref name="mathml.crelnary"/>
    </choice>
  </define>
  <!-- Content constructs for substitution in presentation structures -->
  <define name="mathml.ContInPres">
    <choice>
      <ref name="mathml.ci"/>
      <ref name="mathml.csymbol"/>
      <ref name="mathml.cn"/>
      <ref name="mathml.c0ary"/>
      <ref name="mathml.apply"/>
      <ref name="mathml.fn"/>
      <ref name="mathml.lambda"/>
      <ref name="mathml.reln"/>
      <ref name="mathml.cconstructor"/>
      <ref name="mathml.semantics"/>
      <ref name="mathml.declare"/>
    </choice>
  </define>
  <!-- ............................................................. -->
  <!--
    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)
  -->
  <define name="mathml.ContentExpression">
    <zeroOrMore>
      <choice>
        <ref name="mathml.Content"/>
        <ref name="mathml.PresInCont"/>
      </choice>
    </zeroOrMore>
  </define>
  <define name="mathml.PresExpression">
    <zeroOrMore>
      <choice>
        <ref name="mathml.Presentation"/>
        <ref name="mathml.ContInPres"/>
      </choice>
    </zeroOrMore>
  </define>
  <define name="mathml.MathExpression">
    <zeroOrMore>
      <choice>
        <ref name="mathml.PresInCont"/>
        <ref name="mathml.ContInPres"/>
      </choice>
    </zeroOrMore>
  </define>
  <!-- PCDATA or MathML character elements -->
  <define name="mathml.MathMLCharacters">
    <choice>
      <text/>
      <ref name="mathml.mglyph"/>
    </choice>
  </define>
  <!-- Content elements: tokens -->
  <!-- (may contain embedded presentation constructs) -->
  <define name="mathml.ci">
    <element name="ci">
      <ref name="mathml.attlist-ci"/>
      <zeroOrMore>
        <choice>
          <ref name="mathml.MathMLCharacters"/>
          <ref name="mathml.PresInCont"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.ci"/>
  </define>
  <define name="mathml.csymbol">
    <element name="csymbol">
      <ref name="mathml.attlist-csymbol"/>
      <zeroOrMore>
        <choice>
          <ref name="mathml.MathMLCharacters"/>
          <ref name="mathml.PresInCont"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.csymbol"/>
  </define>
  <define name="mathml.cn">
    <element name="cn">
      <ref name="mathml.attlist-cn"/>
      <zeroOrMore>
        <choice>
          <ref name="mathml.MathMLCharacters"/>
          <ref name="mathml.sep"/>
          <ref name="mathml.PresInCont"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.cn"/>
  </define>
  <!-- Content elements: special -->
  <define name="mathml.apply">
    <element name="apply">
      <ref name="mathml.attlist-apply"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.apply"/>
  </define>
  <define name="mathml.reln">
    <element name="reln">
      <ref name="mathml.attlist-reln"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.reln"/>
  </define>
  <define name="mathml.lambda">
    <element name="lambda">
      <ref name="mathml.attlist-lambda"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.lambda"/>
  </define>
  <!-- Content elements: other -->
  <define name="mathml.condition">
    <element name="condition">
      <ref name="mathml.attlist-condition"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.condition"/>
  </define>
  <define name="mathml.declare">
    <element name="declare">
      <ref name="mathml.attlist-declare"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.declare"/>
  </define>
  <!-- Content elements: semantics -->
  <define name="mathml.semantics">
    <element name="semantics">
      <ref name="mathml.attlist-semantics"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.semantics"/>
  </define>
  <define name="mathml.Annotation.content">
    <text/>
  </define>
  <define name="mathml.annotation">
    <element name="annotation">
      <ref name="mathml.attlist-annotation"/>
      <ref name="mathml.Annotation.content"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.annotation"/>
  </define>
  <define name="mathml.annotation-xml">
    <element name="annotation-xml">
      <ref name="mathml.attlist-annotation-xml"/>
      <ref name="mathml.any"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.annotation-xml"/>
  </define>
  <!-- Content elements: constructors -->
  <define name="mathml.interval">
    <element name="interval">
      <ref name="mathml.attlist-interval"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.interval"/>
  </define>
  <define name="mathml.set">
    <element name="set">
      <ref name="mathml.attlist-set"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.set"/>
  </define>
  <define name="mathml.list">
    <element name="list">
      <ref name="mathml.attlist-list"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.list"/>
  </define>
  <define name="mathml.vector">
    <element name="vector">
      <ref name="mathml.attlist-vector"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.vector"/>
  </define>
  <define name="mathml.matrix">
    <element name="matrix">
      <ref name="mathml.attlist-matrix"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.matrix"/>
  </define>
  <define name="mathml.matrixrow">
    <element name="matrixrow">
      <ref name="mathml.attlist-matrixrow"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.matrixrow"/>
  </define>
  <define name="mathml.piecewise">
    <element name="piecewise">
      <ref name="mathml.attlist-piecewise"/>
      <zeroOrMore>
        <ref name="mathml.piece"/>
      </zeroOrMore>
      <optional>
        <ref name="mathml.otherwise"/>
      </optional>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.piecewise"/>
  </define>
  <define name="mathml.piece">
    <element name="piece">
      <ref name="mathml.attlist-piece"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.piece"/>
  </define>
  <define name="mathml.otherwise">
    <element name="otherwise">
      <ref name="mathml.attlist-otherwise"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.otherwise"/>
  </define>
  <!-- Content elements: operator (user-defined) -->
  <define name="mathml.fn">
    <element name="fn">
      <ref name="mathml.attlist-fn"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.fn"/>
  </define>
  <!-- Content elements: quantifiers -->
  <define name="mathml.lowlimit">
    <element name="lowlimit">
      <ref name="mathml.attlist-lowlimit"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.lowlimit"/>
  </define>
  <define name="mathml.uplimit">
    <element name="uplimit">
      <ref name="mathml.attlist-uplimit"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.uplimit"/>
  </define>
  <define name="mathml.bvar">
    <element name="bvar">
      <ref name="mathml.attlist-bvar"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.bvar"/>
  </define>
  <define name="mathml.degree">
    <element name="degree">
      <ref name="mathml.attlist-degree"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.degree"/>
  </define>
  <define name="mathml.logbase">
    <element name="logbase">
      <ref name="mathml.attlist-logbase"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.logbase"/>
  </define>
  <define name="mathml.momentabout">
    <element name="momentabout">
      <ref name="mathml.attlist-momentabout"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.momentabout"/>
  </define>
  <define name="mathml.domainofapplication">
    <element name="domainofapplication">
      <ref name="mathml.attlist-domainofapplication"/>
      <ref name="mathml.ContentExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.domainofapplication"/>
  </define>
  <!-- ............................................................. -->
  <!--
    Presentation layout schemata contain tokens,
    layout and content schemata.
  -->
  <define name="mathml.mstyle">
    <element name="mstyle">
      <ref name="mathml.attlist-mstyle"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mstyle"/>
  </define>
  <define name="mathml.merror">
    <element name="merror">
      <ref name="mathml.attlist-merror"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.merror"/>
  </define>
  <define name="mathml.mphantom">
    <element name="mphantom">
      <ref name="mathml.attlist-mphantom"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mphantom"/>
  </define>
  <define name="mathml.mrow">
    <element name="mrow">
      <ref name="mathml.attlist-mrow"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mrow"/>
  </define>
  <define name="mathml.mfrac">
    <element name="mfrac">
      <ref name="mathml.attlist-mfrac"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mfrac"/>
  </define>
  <define name="mathml.msqrt">
    <element name="msqrt">
      <ref name="mathml.attlist-msqrt"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.msqrt"/>
  </define>
  <define name="mathml.menclose">
    <element name="menclose">
      <ref name="mathml.attlist-menclose"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.menclose"/>
  </define>
  <define name="mathml.mroot">
    <element name="mroot">
      <ref name="mathml.attlist-mroot"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mroot"/>
  </define>
  <define name="mathml.msub">
    <element name="msub">
      <ref name="mathml.attlist-msub"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.msub"/>
  </define>
  <define name="mathml.msup">
    <element name="msup">
      <ref name="mathml.attlist-msup"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.msup"/>
  </define>
  <define name="mathml.msubsup">
    <element name="msubsup">
      <ref name="mathml.attlist-msubsup"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.msubsup"/>
  </define>
  <define name="mathml.mmultiscripts">
    <element name="mmultiscripts">
      <ref name="mathml.attlist-mmultiscripts"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mmultiscripts"/>
  </define>
  <define name="mathml.munder">
    <element name="munder">
      <ref name="mathml.attlist-munder"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.munder"/>
  </define>
  <define name="mathml.mover">
    <element name="mover">
      <ref name="mathml.attlist-mover"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mover"/>
  </define>
  <define name="mathml.munderover">
    <element name="munderover">
      <ref name="mathml.attlist-munderover"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.munderover"/>
  </define>
  <define name="mathml.mtable">
    <element name="mtable">
      <ref name="mathml.attlist-mtable"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mtable"/>
  </define>
  <define name="mathml.mtr">
    <element name="mtr">
      <ref name="mathml.attlist-mtr"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mtr"/>
  </define>
  <define name="mathml.mlabeledtr">
    <element name="mlabeledtr">
      <ref name="mathml.attlist-mlabeledtr"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mlabeledtr"/>
  </define>
  <define name="mathml.mtd">
    <element name="mtd">
      <ref name="mathml.attlist-mtd"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mtd"/>
  </define>
  <define name="mathml.maction">
    <element name="maction">
      <ref name="mathml.attlist-maction"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.maction"/>
  </define>
  <define name="mathml.mfenced">
    <element name="mfenced">
      <ref name="mathml.attlist-mfenced"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mfenced"/>
  </define>
  <define name="mathml.mpadded">
    <element name="mpadded">
      <ref name="mathml.attlist-mpadded"/>
      <ref name="mathml.PresExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mpadded"/>
  </define>
  <!-- Presentation elements contain PCDATA or malignmark constructs. -->
  <define name="mathml.mi">
    <element name="mi">
      <ref name="mathml.attlist-mi"/>
      <zeroOrMore>
        <choice>
          <ref name="mathml.MathMLCharacters"/>
          <ref name="mathml.malignmark"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mi"/>
  </define>
  <define name="mathml.mn">
    <element name="mn">
      <ref name="mathml.attlist-mn"/>
      <zeroOrMore>
        <choice>
          <ref name="mathml.MathMLCharacters"/>
          <ref name="mathml.malignmark"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mn"/>
  </define>
  <define name="mathml.mo">
    <element name="mo">
      <ref name="mathml.attlist-mo"/>
      <zeroOrMore>
        <choice>
          <ref name="mathml.MathMLCharacters"/>
          <ref name="mathml.malignmark"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mo"/>
  </define>
  <define name="mathml.mtext">
    <element name="mtext">
      <ref name="mathml.attlist-mtext"/>
      <zeroOrMore>
        <choice>
          <ref name="mathml.MathMLCharacters"/>
          <ref name="mathml.malignmark"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.mtext"/>
  </define>
  <define name="mathml.ms">
    <element name="ms">
      <ref name="mathml.attlist-ms"/>
      <zeroOrMore>
        <choice>
          <ref name="mathml.MathMLCharacters"/>
          <ref name="mathml.malignmark"/>
        </choice>
      </zeroOrMore>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.ms"/>
  </define>
  <!-- Browser interface definition  ............................... -->
  <!-- Attributes for top-level element "math" -->
  <define name="mathml.att-macros">
    <optional>
      <attribute name="macros"/>
    </optional>
  </define>
  <define name="mathml.att-mode">
    <optional>
      <attribute name="mode"/>
    </optional>
  </define>
  <define name="mathml.att-display">
    <optional>
      <attribute name="display"/>
    </optional>
  </define>
  <define name="mathml.att-topinfo">
    <ref name="MATHML.Common.attrib"/>
    <ref name="mathml.att-macros"/>
    <ref name="mathml.att-mode"/>
    <ref name="mathml.att-display"/>
  </define>
  <!-- Attributes for browser interface element -->
  <define name="mathml.att-baseline">
    <optional>
      <attribute name="baseline"/>
    </optional>
  </define>
  <define name="mathml.att-overflow">
    <optional>
      <attribute name="overflow" a:defaultValue="scroll">
        <choice>
          <value>scroll</value>
          <value>elide</value>
          <value>truncate</value>
          <value>scale</value>
        </choice>
      </attribute>
    </optional>
  </define>
  <define name="mathml.att-altimg">
    <optional>
      <attribute name="altimg"/>
    </optional>
  </define>
  <define name="mathml.att-alttext">
    <optional>
      <attribute name="alttext"/>
    </optional>
  </define>
  <define name="mathml.att-browif">
    <ref name="mathml.att-type"/>
    <ref name="mathml.att-name"/>
    <ref name="mathml.att-height"/>
    <ref name="mathml.att-width"/>
    <ref name="mathml.att-baseline"/>
    <ref name="mathml.att-overflow"/>
    <ref name="mathml.att-altimg"/>
    <ref name="mathml.att-alttext"/>
  </define>
  <!-- ............................................................. -->
  <!--
    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.
  -->
  <define name="mathml.math">
    <element name="math">
      <ref name="mathml.attlist-math"/>
      <ref name="mathml.MathExpression"/>
    </element>
  </define>
  <define name="mathml.any" combine="choice">
    <ref name="mathml.math"/>
  </define>
  <define name="mathml.attlist-math" combine="interleave">
    <ref name="mathml.att-topinfo"/>
    <ref name="mathml.att-browif"/>
  </define>
  <!-- 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  ................................................ -->
  <!-- ....................................................................... -->
  <define name="mathml.any" combine="choice">
    <text/>
  </define>
</grammar>
back to top