<div1 id="mathml-dom" role="appendixd"><head>Document Object Model for MathML</head>
<!-- $Id: mathml-dom.xml,v 1.1 2002/05/22 09:26:30 mf Exp $ -->

<p>The following sections describe the interfaces that have been defined in
the Document Object Model for MathML. Please refer to
<specref ref="dom-intro"/> for more information.</p>

<p>Bindings for IDL, Java and ECMAScript are located in  <specref ref="dom-bindings"/>.</p>

<div2 id="dom_interfaces"><head>IDL Interfaces</head>

<div3><head>Miscellaneous Object Definitions</head>
<definitions>
<interface name='MathMLDOMImplementation' inherits='DOMImplementation' id='dom_DOMImplementation'>
<descr><p>This interface extends the <kw>DOMImplementation</kw>
interface by adding a method to create a <kw>MathMLDocument</kw>.
</p>
<?generate-idl?>
</descr>
<method name='createMathMLDocument'>
<descr><p>Creates a <kw>MathMLDocument</kw> with a minimal tree
containing only a <kw>MathMLMathElement</kw> corresponding to a MathML <intref ref="interf_toplevel"><kw role="element">math</kw></intref> 
element. The <kw>MathMLMathElement</kw> is empty, having no child elements or non-default attributes; it is the
root element of the document, and is the element accessed via the <kw>documentElement</kw> attribute of
the <kw>MathMLDocument</kw>. Note that a <kw>MathMLDocument</kw> object should only be created for a 
stand-alone MathML document.</p></descr>
<parameters>
</parameters>
<returns type='MathMLDocument'>
<descr><p>The <kw>MathMLDocument</kw> created.</p></descr></returns>
<raises>
</raises>
</method>
</interface>

<interface name='MathMLDocument' inherits='Document' id='dom_Document'>
<descr><p>This interface extends the <kw>Document</kw> interface to
add access to document properties relating to navigation. The <kw>documentElement</kw>
attribute for a <kw>MathMLDocument</kw> should be the <intref ref="dom_MathElement"><kw>MathMLMathElement</kw></intref>
representing the top-level <intref ref="interf_toplevel"><kw role="element">math</kw></intref> element
which is the root of the document.</p>
<?generate-idl?>
</descr>
<attribute name='referrer' type='DOMString' readonly='yes'>
<descr><p>The URI of the page that linked to this document, if
available. This is <kw>null</kw> if the user navigated directly to the page. If this 
is not a stand-alone MathML document (e.g. is embedded in an XHTML document), this 
may be retrieved from the parent <kw>Document</kw> if available.</p></descr>
</attribute>
<attribute name='domain' type='DOMString' readonly='yes'>
<descr><p>The domain name of the server that served the document,
or <kw>null</kw> if the server cannot be identified by a domain name, or if it is not
available. If this is not a stand-alone MathML document (e.g. is embedded in an XHTML document), 
this may be retrieved from the parent <kw>Document</kw> if available.</p></descr>
</attribute>
<attribute name='URI' type='DOMString' readonly='yes'>
<descr><p>The complete URI of this document. This is <kw>null</kw>
if this is not a stand-alone MathML document.</p></descr>
</attribute>
</interface>

<interface name='MathMLNodeList' inherits='NodeList' id='dom_NodeList'>
<descr><p>This interface is provided as a specialization of the <kw>NodeList</kw> interface.
The child <kw>Nodes</kw> of this <kw>NodeList</kw> must be <kw>MathMLElements</kw> or <kw>Text</kw> nodes.</p>
<p>Note that <kw>MathMLNodeLists</kw> are frequently used in the
DOM as values of <kw>readonly attributes</kw>, encapsulating, for instance,
various collections of child elements. When used in this way, these objects
are always understood to be <emph>live</emph>, in the sense that changes
to the document are immediately reflected in them.
</p>
<?generate-idl?>
</descr>
</interface>
</definitions>

</div3>

<div3><head>Generic MathML Elements</head>
<definitions>
<interface name='MathMLElement' inherits='Element' id='dom_Element'>
<descr><p>All MathML element interfaces derive from this object, which
derives from the basic DOM interface <kw>Element</kw>.</p>
<?generate-idl?>
</descr>
<attribute name='className' type='DOMString' readonly='no'>
<descr><p>The <intref ref="fund_globatt"><kw role="attrib">class</kw></intref> attribute of the element. See
the discussion elsewhere in this document of the <kw role="attrib">class</kw> attribute; see also the
<xspecref href="http://www.w3.org/TR/html401/struct/global.html#adef-class">HTML definition</xspecref> of this attribute.</p></descr>
</attribute>
<attribute name='mathElementStyle' type='DOMString' readonly='no'>
<descr><p>A string identifying the element's <intref ref="fund_globatt"><kw role="attrib">style</kw></intref> 
attribute.</p></descr>
</attribute>
<attribute name='id' type='DOMString' readonly='no'>
<descr><p>The element's identifier. See the discussion elsewhere in this
document of the <intref ref="fund_globatt"><kw role="attrib">id</kw></intref>
attribute; see also the <xspecref href="http://www.w3.org/TR/html401/struct/global.html#adef-id">HTML definition</xspecref>.</p></descr>
</attribute>
<attribute name='xref' type='DOMString' readonly='no'>
<descr><p>The <intref ref="fund_globatt"><kw role="attrib">xref</kw></intref> attribute of the element. See
the discussion elsewhere in this document of the <kw role="attrib">xref</kw> attribute.</p></descr>
</attribute>
<attribute name='href' type='DOMString' readonly='no'>
<descr><p>The <intref ref="fund_globatt"><kw role="attrib">xlink:href</kw></intref> attribute of the element. See
the discussion elsewhere in this document of the <kw role="attrib">xlink:href</kw> attribute; see also the 
<xspecref href="http://www.w3.org/TR/xlink/Overview.html#link-locators">definition</xspecref> of this attribute in the 
XLink specification.</p></descr>
</attribute>
<attribute name='ownerMathElement' type='MathMLMathElement' readonly='yes'>
<descr><p>The <kw>MathMLMathElement</kw> corresponding to the nearest 
<intref ref="interf_toplevel"><kw role="element">math</kw></intref> element ancestor of this element. Should be <kw>null</kw> 
if this element is a top-level <kw role="element">math</kw> element.</p></descr>
</attribute>
</interface>

<interface name='MathMLContainer' id='dom_Container'>
<descr><p>This is an abstract interface containing functionality required by MathML elements
that may contain arbitrarily many child elements. No elements are directly supported by this interface;
all instances are instances of either <intref ref="dom_PresentationContainer"><kw>MathMLPresentationContainer</kw></intref>, <intref ref="dom_ContentContainer"><kw>MathMLContentContainer</kw></intref>,
or <intref ref="dom_MathElement"><kw>MathMLMathElement</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='nArguments' type='unsigned long' readonly='yes'>
<descr><p>The number of child elements of this element 
which represent arguments of the element, as opposed to qualifiers or <kw role="element">declare</kw> elements.
Thus for a <kw>MathMLContentContainer</kw> it does not contain elements representing bound variables, conditions,
separators, degrees, or upper or lower limits  (<intref ref="contm_bvar"><kw role="element">bvar</kw></intref>,
<intref ref="contm_condition"><kw role="element">condition</kw></intref>, <intref ref="contm_sep"><kw role="element">sep</kw></intref>,
<intref ref="contm_degree"><kw role="element">degree</kw></intref>, <intref ref="contm_lowlimit"><kw role="element">lowlimit</kw></intref>,
or <intref ref="contm_uplimit"><kw role="element">uplimit</kw></intref>).</p></descr>
</attribute>
<attribute name='arguments' type='MathMLNodeList' readonly='yes'>
<descr><p>This attribute accesses the child <kw>MathMLElements</kw> of 
this element which are arguments of it, as a <kw>MathMLNodeList</kw>. Note that this list does not 
contain any <kw>MathMLElements</kw> representing qualifier elements or <kw role="element">declare</kw> elements.</p></descr>
</attribute>
<attribute name='declarations' type='MathMLNodeList' readonly='yes'>
<descr><p>Provides access to the <intref ref="contm_declare"><kw role="element">declare</kw></intref> elements
which are children of this element, in a <kw>MathMLNodeList</kw>. All 
<kw>Nodes</kw> in this list must be <kw>MathMLDeclareElements</kw>.</p></descr>
</attribute>
<method name='getArgument'>
<descr><p>This method returns the <kw>index</kw>th child argument element of this
element. <emph>This frequently differs from the value of</emph>	<code>Node::childNodes().item(index)</code>,
as qualifier elements and <kw role="element">declare</kw> elements are not counted.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the argument to be retrieved.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>A <kw>MathMLElement</kw> representing the <kw>index</kw>-th argument of this element.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of child elements.</p></descr></exception>
</raises>
</method>
<method name='setArgument'>
<descr><p>This method sets <kw>newArgument</kw> as the 
<kw>index</kw>-th argument of this element. If there is currently an 
<kw>index</kw>-th argument, it is replaced by <kw>newArgument</kw>.
<emph>This frequently differs from setting the node at</emph> <code>Node::childNodes().item(index)</code>,
as qualifier elements and <kw role="element">declare</kw> elements are not counted.</p></descr>
<parameters>
<param name='newArgument' type='MathMLElement' attr='in'>
<descr><p>A <kw>MathMLElement</kw> representing the element that
is to be set as the <kw>index</kw>-th argument of this element.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The index of the argument that is to be set to 
<kw>newArgument</kw>. The first argument is numbered 1. If <kw>index</kw> is one more than
the current number of arguments, a new argument is appended.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
element that represents the new argument in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit a child
element of the type of <kw>newArgument</kw>, if this is a <kw>MathMLContentContainer</kw> and <kw>newArgument</kw>
is a qualifier element, or if <kw>newElement</kw> is a <kw>MathMLDeclareElement</kw>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than one more than the number
of child elements.</p></descr></exception>
</raises>
</method>
<method name='insertArgument'>
<descr><p>This method inserts <kw>newArgument</kw> before the 
current <kw>index</kw>-th argument of this element. If <kw>index</kw> is 0, or if
<kw>index</kw> is one more than the current number of arguments, <kw>newArgument</kw> is
appended as the last argument. <emph>This frequently differs from setting the node at</emph>
<code>Node::childNodes().item(index)</code>, as qualifier elements and <kw role="element">declare</kw>
elements are not counted.</p></descr>
<parameters>
<param name='newArgument' type='MathMLElement' attr='in'>
<descr><p>A <kw>MathMLElement</kw> representing
the element that is to be inserted as a child argument of this element.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the position before 
which <kw>newArgument</kw> is to be inserted. The first	argument is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
element that represents the new argument in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit a child
argument of the type of <kw>newArgument</kw>, or, for <kw>MathMLContentContainers</kw>, if <kw>newArgument</kw>
represents a qualifier element.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than one more than the number of child 
arguments.</p></descr></exception>
</raises>
</method>
<method name='deleteArgument'>
<descr><p>This method deletes the <kw>index</kw>-th 
child element that is an argument of this element. Note that child elements 
which are qualifier elements or <kw role="element">declare</kw> elements are not counted
in determining the <kw>index</kw>-th argument.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the argument to be deleted.</p></descr>
</param>
</parameters>
<returns type='void'>
<descr><p>None.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of child elements.</p></descr></exception>
</raises>
</method>
<method name='removeArgument'>
<descr><p>This method deletes the <kw>index</kw>-th 
child element that is an argument of this element, and returns it to the caller. 
Note that child elements that are qualifier elements or <kw role="element">declare</kw>
elements are not counted in determining the <kw>index</kw>-th argument.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the argument to 
be removed.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>A <kw>MathMLElement</kw> representing the 
argument being removed.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of child elements.</p></descr></exception>
</raises>
</method>
<method name='getDeclaration'>
<descr><p>This method retrieves the <kw>index</kw>-th child 
<kw role="element">declare</kw> element of this element.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>A one-based index into the list of 
child <kw role="element">declare</kw> elements of this element giving the
position of the <kw role="element">declare</kw> element to be retrieved.</p></descr>
</param>
</parameters>
<returns type='MathMLDeclareElement'>
<descr><p>The <kw>MathMLDeclareElement</kw> representing 
the <kw>index</kw>-th child <kw role="element">declare</kw>.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than
the number of child <kw role="element">declare</kw> elements.</p></descr></exception>
</raises>
</method>
<method name='setDeclaration'>
<descr><p>This method inserts <kw>newDeclaration</kw> as the <kw>index</kw>-th 
child declaration of this element. If there is already an <kw>index</kw>-th
<kw role="element">declare</kw> child element, it is replaced by 
<kw>newDeclaration</kw>.</p></descr>
<parameters>
<param name='newDeclaration' type='MathMLDeclareElement' attr='in'>
<descr><p>A <kw>MathMLDeclareElement</kw> to be
inserted as the <kw>index</kw>-th child <kw role="element">declare</kw> element.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>A one-based index into the list of 
child <kw role="element">declare</kw> elements of this element giving the
position into which <kw>newDeclaration</kw> is to be inserted. If <kw>index</kw>
is one more than the number of <kw role="element">declare</kw> children
of this element, <kw>newDeclaration</kw> is appended as the last <kw role="element">declare</kw>
child.</p></descr>
</param>
</parameters>
<returns type='MathMLDeclareElement'>
<descr><p>The <kw>MathMLDeclareElement</kw> being 
inserted.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than
one more than the number of child <kw role="element">declare</kw> elements.</p>
<p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit child <kw role="element">declare</kw> 
elements.</p></descr></exception>
</raises>
</method>
<method name='insertDeclaration'>
<descr><p>This method inserts <kw>newDeclaration</kw> 
before the current <kw>index</kw>-th child <kw role="element">declare</kw> 
element of this element. If <kw>index</kw> is 0, <kw>newDeclaration</kw> is appended 
as the last child <kw role="element"> declare</kw> element.</p></descr>
<parameters>
<param name='newDeclaration' type='MathMLDeclareElement' attr='in'>
<descr><p>A <kw>MathMLDeclareElement</kw> to be inserted as the 
<kw>index</kw>-th child <kw role="element">declare</kw> element.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>A one-based index into the list of 
child <kw role="element">declare</kw> elements of this element giving the
position before which <kw>newDeclaration</kw> is to be inserted. If <kw>index</kw> is 0
or if it is one more than the number of child <kw role="element">declare</kw> children,
<kw>newDeclaration</kw> is appended as the last child <kw role="element">declare</kw> element.</p></descr>
</param>
</parameters>
<returns type='MathMLDeclareElement'>
<descr><p>The <kw>MathMLDeclareElement</kw> child
of this element representing <kw>newDeclaration</kw> in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than one more than the number of child <kw role="element">declare</kw> elements.</p>
<p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit child <kw role="element">declare</kw> 
elements.</p></descr></exception>
</raises>
</method>
<method name='removeDeclaration'>
<descr><p>This method removes the <kw>MathMLDeclareElement</kw> representing 
the <kw>index</kw>-th <kw role="element">declare</kw> child element of
this element, and returns it to the caller. Note that <kw>index</kw>
is the position in the list of <kw role="element">declare</kw> element children, 
as opposed to the position in the list of all child <kw>Nodes</kw>.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the <kw role="element">declare</kw>
element to be removed.</p></descr>
</param>
</parameters>
<returns type='MathMLDeclareElement'>
<descr><p>The <kw>MathMLDeclareElement</kw> being
removed as a child <kw>Node</kw> of this element.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than
the number of child <kw role="element">declare</kw> elements.</p></descr></exception>
</raises>
</method>
<method name='deleteDeclaration'>
<descr><p>This method deletes the <kw>MathMLDeclareElement</kw> representing 
the <kw>index</kw>-th <kw role="element">declare</kw> child element of
this element. Note that <kw>index</kw> is the position in the list of <kw role="element">declare</kw>
element children, as opposed to the position in the list of all child <kw>Nodes</kw>.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the <kw role="element">declare</kw>
element to be removed.</p></descr>
</param>
</parameters>
<returns type='void'>
<descr><p>None.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than
the number of child <kw role="element">declare</kw> elements.</p></descr></exception>
</raises>
</method>
</interface>

<interface name='MathMLMathElement' inherits='MathMLElement, MathMLContainer' id='dom_MathElement'>
<descr><p>This interface represents the top-level MathML <intref ref="interf_toplevel"><kw role="element">math</kw></intref>
element.</p>
<p>It may become useful for interfacing between the Document Object Model objects 
encoding an enclosing document and the MathML DOM elements that are its children.
It could also be used for some purposes as a MathML DOM surrogate for a <xspecref href="http://www.w3.org/TR/DOM-Level-2-Core/core.html#i-Document">Document</xspecref> object. 
For instance, MathML-specific factory methods could be placed here, as could methods for creating MathML-specific <kw>Iterators</kw> or <kw>TreeWalkers</kw>.
However, this functionality is as yet undefined.</p><?generate-idl?>
</descr>
<attribute name='macros' type='DOMString' readonly='no'>
<descr><p>Represents the <kw role="attrib">macros</kw> 
attribute of the <kw role="element">math</kw> element. See 
<specref ref="interf_toplevel"/>.</p></descr>
</attribute>
<attribute name='display' type='DOMString' readonly='no'>
<descr><p>Represents the <kw role="attrib">display</kw> 
attribute of the <kw role="element">math</kw> element. This value is either
<kw role="attval">block</kw> or <kw role="attval">inline</kw>. See 
<specref ref="interf_toplevel"/>.</p></descr>
</attribute>
</interface>

<interface name='MathMLSemanticsElement' inherits='MathMLElement' id='dom_SemanticsElement'>
<descr><p>This interface represents the <intref ref="contm_semantics"><kw role="element">semantics</kw></intref>
element in MathML.</p>
<?generate-idl?>
</descr>
<attribute name='body' type='MathMLElement' readonly='no'>
<descr><p>This attribute represents the first child of the <kw role="element">semantics</kw> element, i.e. the child giving the
<quote>primary</quote> content represented by the element.</p></descr>
</attribute>
<attribute name='nAnnotations' type='unsigned long' readonly='yes'>
<descr><p>Represents the number of <intref ref="contm_annotation"><kw role="element">annotation</kw></intref> or <intref ref="contm_annotation-xml"><kw role="element">annotation-xml</kw></intref> children of 
the <kw role="element">semantics</kw> element, i.e. the number of alternate content forms
for this element.</p></descr>
</attribute>
<method name='getAnnotation'>
<descr><p>This method gives access to the <kw>index</kw>-th 
<quote>alternate</quote> content associated with a <kw role="element">
semantics</kw> element.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the annotation being 
retrieved.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <intref ref="dom_AnnotationElement"><kw>MathMLAnnotationElement</kw></intref> or
<intref ref="dom_XMLAnnotationElement"><kw>MathMLXMLAnnotationElement</kw></intref> representing the <kw>index</kw>-th 
<intref ref="contm_annotation"><kw role="element">annotation</kw></intref> or <intref ref="contm_annotation-xml"><kw role="element">annotation-xml</kw></intref> 
child of the <kw role="element">semantics</kw> element. Note that all child 
elements of a <kw role="element">semantics</kw> element other than the first 
are required to be of one of these types.</p></descr></returns>
<raises>
</raises>
</method>
<method name='insertAnnotation'>
<descr><p>This method inserts <kw>newAnnotation</kw> before
the current <kw>index</kw>-th <quote>alternate</quote> content associated 
with a <kw role="element">semantics</kw> element.  If <kw>index</kw> is 0, 
<kw>newAnnotation</kw> is appended as the last <kw role="element">annotation</kw> or <kw role="element">annotation-xml</kw> child of this element.</p></descr>
<parameters>
<param name='newAnnotation' type='MathMLElement' attr='in'>
<descr><p>A <kw>MathMLAnnotationElement</kw> or 
<kw>MathMLXMLAnnotationElement</kw> representing the new <kw role="element">
annotation</kw> or <kw role="element">annotation-xml</kw> to be inserted.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The position in the list of <kw role="element">annotation</kw> or <kw role="element">annotation-xml</kw> 
children before which <kw>newAnnotation</kw> is to be inserted. The first 
annotation is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLAnnotationElement</kw> or 
<kw>MathMLXMLAnnotationElement</kw> child of this element that represents
the new annotation in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newAnnotation</kw> is not a
<kw>MathMLAnnotationElement</kw> or <kw>MathMLXMLAnnotationElement</kw>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the current number of <kw role="element">annotation</kw> or 
<kw role="element">annotation-xml</kw> children of this <kw role="element">
semantics</kw> element.</p></descr></exception>
</raises>
</method>
<method name='setAnnotation'>
<descr><p>This method allows setting or replacement of the 
<kw>index</kw>-th <quote>alternate</quote> content associated with a 
<kw role="element">semantics</kw> element.  If there is already an 
<kw role="element">annotation</kw> or <kw role="element">annotation-xml</kw>
element with this index, it is replaced by <kw>newAnnotation</kw>.</p></descr>
<parameters>
<param name='newAnnotation' type='MathMLElement' attr='in'>
<descr><p>A <kw>MathMLAnnotationElement</kw> or 
<kw>MathMLXMLAnnotationElement</kw> representing the new value of the <kw>index</kw>-th <kw role="element">annotation</kw> or <kw role="element">
annotation-xml</kw> child of this <kw role="element">semantics</kw> element.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The position in the list of 
<kw role="element">annotation</kw> or <kw role="element">annotation-xml</kw> 
children of this <kw role="element">semantics</kw> element that is to be
occupied by <kw>newAnnotation</kw>. The first annotation element is numbered 
1.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLAnnotationElement</kw> or 
<kw>MathMLXMLAnnotationElement</kw> child of this element that represents
the new annotation in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newAnnotation</kw> is not a
<kw>MathMLAnnotationElement</kw> or <kw>MathMLXMLAnnotationElement</kw>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than one more than the current number of <kw role="element">annotation</kw> 
or <kw role="element">annotation-xml</kw> children of this <kw role="element">
semantics</kw> element.</p></descr></exception>
</raises>
</method>
<method name='deleteAnnotation'>
<descr><p>A convenience method to delete the <kw>index</kw>-th 
<quote>alternate</quote> content associated with this <kw role="element">
semantics</kw> element.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the annotation being 
deleted.</p></descr>
</param>
</parameters>
<returns type='void'>
<descr><p>None.</p></descr></returns>
<raises>
</raises>
</method>
<method name='removeAnnotation'>
<descr><p>A convenience method to delete the <kw>index</kw>-th 
<quote>alternate</quote> content associated with this <kw role="element">
semantics</kw> element, and to return it to the caller.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index of the annotation being 
deleted.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLAnnotationElement</kw> or
<kw>MathMLXMLAnnotationElement</kw> being deleted.</p></descr></returns>
<raises>
</raises>
</method>
</interface>

<interface name='MathMLAnnotationElement' inherits='MathMLElement' id='dom_AnnotationElement'>
<descr><p>This interface represents the <intref ref="contm_annotation"><kw role="element">annotation</kw></intref>
element of MathML.
</p>
<?generate-idl?>
</descr>
<attribute name='body' type='DOMString' readonly='no'>
<descr><p>Provides access to the content of an <kw role="element">annotation</kw>
element.</p></descr>
</attribute>
<attribute name='encoding' type='DOMString' readonly='no'>
<descr><p>Provides access to the <intref ref="contm_attrib"><kw role="attrib">encoding</kw></intref>
attribute of an <kw role="element">annotation</kw> element.</p></descr>
</attribute>
</interface>

<interface name='MathMLXMLAnnotationElement' inherits='MathMLElement' id='dom_XMLAnnotationElement'>
<descr><p>This interface represents the <intref ref="contm_annotation-xml"><kw role="element">annotation-xml</kw></intref> 
element of MathML.</p>
<?generate-idl?>
</descr>
<attribute name='encoding' type='DOMString' readonly='no'>
<descr><p>Provides access to the <intref ref="contm_attrib"><kw role="attrib">encoding</kw></intref>
attribute of an <kw role="element">xml-annotation</kw> element.</p></descr>
</attribute>
</interface>

</definitions>
</div3>

<div3><head>Presentation Elements</head>
<definitions>

<interface name='MathMLPresentationElement' inherits='MathMLElement' id='dom_PresentationElement'>
<descr><p>This interface is provided to serve as a base interface for
various MathML Presentation interfaces. It contains no new attributes or
methods at this time; however, it is felt that the distinction between
Presentation and Content MathML entities should be indicated in the
MathMLElement hierarchy. In particular, future versions of the MathML DOM
may add functionality on this interface; it may also serve as an aid to
implementors.
</p>
<?generate-idl?>
</descr>
</interface>
</definitions>

<div4><head>Leaf Presentation Element Interfaces</head>
<definitions>

<interface name='MathMLGlyphElement' inherits='MathMLPresentationElement' id='dom_GlyphElement'>
<descr><p>This interface supports the <intref ref="presm_mglyph"><kw role="element">mglyph</kw></intref> element
<specref ref="presm_mglyph"/>.
</p>
<?generate-idl?>
</descr>
<attribute name='alt' type='DOMString' readonly='no'>
<descr><p>A string giving an alternate name for the character.  Represents
the <kw role="element">mglyph</kw>'s <kw role="attrib">alt</kw>
attribute.</p></descr>
</attribute>
<attribute name='fontfamily' type='DOMString' readonly='no'>
<descr><p>A string representing the font family.</p></descr>
</attribute>
<attribute name='index' type='unsigned long' readonly='no'>
<descr><p>An unsigned integer giving the glyph's position within the font.</p></descr>
</attribute>
</interface>

<interface name='MathMLSpaceElement' inherits='MathMLPresentationElement' id='dom_SpaceElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw>
interface for the MathML <emph>space </emph>element <intref ref="presm_mspace"><kw role="element">mspace</kw></intref>.  
Note that this is <emph>not</emph> derived from <intref ref="dom_PresentationToken"><kw>MathMLPresentationToken</kw></intref>, 
despite the fact that <kw role="element">mspace</kw> is classified as a token element, 
since it does not carry the attributes declared for
<kw>MathMLPresentationToken</kw>.
</p>
<?generate-idl?>
</descr>
<attribute name='width' type='DOMString' readonly='no'>
<descr><p>A string of the form <quote><emph>number</emph> 
<emph>h-unit</emph></quote>; represents the <kw role="attrib">width</kw> 
attribute for the <kw role="element">mspace</kw> element, if specified.</p></descr>
</attribute>
<attribute name='height' type='DOMString' readonly='no'>
<descr><p>A string of the form <quote><emph>number</emph> 
<emph>v-unit</emph></quote>; represents the <kw role="attrib">height</kw> 
attribute for the <kw role="element">mspace</kw> element, if specified.</p></descr>
</attribute>
<attribute name='depth' type='DOMString' readonly='no'>
<descr><p>A string of the form <quote><emph>number</emph> 
<emph>v-unit</emph></quote>; represents the <kw role="attrib">depth</kw> 
attribute for the <kw role="element">mspace</kw> element, if specified.</p></descr>
</attribute>
</interface>

</definitions>
</div4>

<div4><head>Presentation Token Element Interfaces</head>

<p>Interfaces representing the MathML Presentation token elements that
   may have content are described here.</p>

<definitions>
<interface name='MathMLPresentationToken' inherits='MathMLPresentationElement' id='dom_PresentationToken'>
<descr><p>This interface extends the <intref ref="dom_Element"><kw>MathMLElement</kw></intref> interface to 
include access for attributes specific to text presentation. It serves as
the base class for all MathML presentation token elements. Access to the
body of the element is via the <kw role="attrib">nodeValue</kw> attribute 
inherited from <kw>Node</kw>. Elements that expose only the core presentation 
token attributes are directly supported by this object. These elements are: 
<glist>
<gitem><label><intref ref="presm_mi"><kw role="element">mi</kw></intref></label> 
<def><p>identifier element</p></def>
</gitem> 
<gitem><label><intref ref="presm_mn"><kw role="element">mn</kw></intref></label> 
<def><p>number element</p></def>
</gitem> 
<gitem><label><intref ref="presm_mtext"><kw role="element">mtext</kw></intref></label> 
<def><p>text element</p></def>
</gitem> 
</glist>
</p>
<?generate-idl?>
</descr>
<attribute name='mathvariant' type='DOMString' readonly='no'>
<descr><p>The <intref ref="presm_commatt"><kw role="attrib">mathvariant</kw></intref> attribute for the element, if
specified. One of the values <kw role="attval">normal</kw>, <kw role="attval">bold</kw>, <kw role="attval">italic</kw>, <kw role="attval">bold-italic</kw>, <kw role="attval">double-struck</kw>, <kw role="attval">bold-fraktur</kw>,
<kw role="attval">script</kw>, <kw role="attval">bold-script</kw>, <kw role="attval">fraktur</kw>, <kw role="attval">sans-serif</kw>, <kw role="attval">bold-sans-serif</kw>, <kw role="attval">sans-serif-italic</kw>, <kw role="attval">sans-serif-bold-italic</kw>,
or <kw role="attval">monospace</kw>.</p></descr>
</attribute>
<attribute name='mathsize' type='DOMString' readonly='no'>
<descr><p>The <intref ref="presm_commatt"><kw role="attrib">mathsize</kw></intref> attribute for the element, if
specified. Either <kw role="attval">small</kw>, <kw role="attval">normal</kw> or <kw role="attval">big</kw>, or of the
form <kw role="attval">number v-unit</kw>.</p></descr>
</attribute>
<attribute name='mathcolor' type='DOMString' readonly='no'>
<descr><p>The <intref ref="presm_commatt"><kw role="attrib">mathcolor</kw></intref> attribute for the element, if 
specified. The <kw>DOMString</kw> returned should be in one of the forms "#rgb" or "#rrggbb", or should be an 
<kw role="attrib">html-color-name</kw>, as specified in <specref ref="presm_color"/>.</p></descr>
</attribute>
<attribute name='mathbackground' type='DOMString' readonly='no'>
<descr><p>The <intref ref="presm_commatt"><kw role="attrib">mathbackground</kw></intref> attribute for the element, if 
specified. The <kw>DOMString</kw> returned should be in one of the forms "#rgb" or "#rrggbb", or should be an 
<kw role="attrib">html-color-name</kw>, as specified in <specref ref="presm_color"/>.</p></descr>
</attribute>
<attribute name='contents' type='MathMLNodeList' readonly='yes'>
<descr><p>Returns the child <kw>Nodes</kw> of the 
element. These should consist only of <kw>Text</kw> nodes and possibly
<kw>MathMLGlyphElements</kw>. Should behave the same as the base class's 
<kw>Node::childNodes</kw> attribute; however, it is provided here for clarity.</p></descr>
</attribute>
</interface>

<interface name='MathMLOperatorElement' inherits='MathMLPresentationToken' id='dom_OperatorElement'>
<descr><p>This interface extends the <kw>MathMLPresentationToken</kw>
interface for the MathML <emph>operator</emph> element <intref ref="presm_mo"><kw role="element">mo</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='form' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">form</kw> attribute (<kw role="attval">prefix</kw>, 
<kw role="attval">infix</kw> or <kw role="attval">postfix</kw>) for the 
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='fence' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">fence</kw> attribute 
(<kw role="attval">true</kw> or <kw role="attval">false</kw>)
for the <kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='separator' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">separator</kw> attribute 
(<kw role="attval">true</kw> or <kw role="attval">false</kw>) for the 
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='lspace' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">lspace</kw> attribute (spacing to left) of
the <kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='rspace' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">rspace</kw> attribute (spacing to right) of the
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='stretchy' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">stretchy</kw> attribute 
(<kw role="attval">true</kw> or <kw role="attval">false</kw>) for the 
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='symmetric' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">symmetric</kw> attribute 
(<kw role="attval">true</kw> or <kw role="attval">false</kw>) for the 
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='maxsize' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">maxsize</kw> attribute for the
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='minsize' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">minsize</kw> attribute for the
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='largeop' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">largeop</kw> attribute for the
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='movablelimits' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">movablelimits</kw> 
(<kw role="attval">true</kw> or <kw role="attval">false</kw>) attribute for the
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
<attribute name='accent' type='DOMString' readonly='no'>
<descr><p>The <kw role="attrib">accent</kw> attribute 
(<kw role="attval">true</kw> or <kw role="attval">false</kw>) for the 
<kw role="element">mo</kw> element, if specified.</p></descr>
</attribute>
</interface>

<interface name='MathMLStringLitElement' inherits='MathMLPresentationToken' id='dom_StringLitElement'>
<descr><p>This interface extends the <kw>MathMLPresentationToken</kw>
interface for the MathML <emph>string literal</emph> element 
<intref ref="presm_ms"><kw role="element">ms</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='lquote' type='DOMString' readonly='no'>
<descr><p>A string giving the opening delimiter for the string literal; 
represents the <kw role="attrib">lquote</kw> attribute for the 
<kw role="element">ms</kw> element, if specified.</p></descr>
</attribute>
<attribute name='rquote' type='DOMString' readonly='no'>
<descr><p>A string giving the closing delimiter for the string literal; 
represents the <kw role="attrib">rquote</kw> attribute for the 
<kw role="element">ms</kw> element, if specified.</p></descr>
</attribute>
</interface>

</definitions>
</div4>

<div4><head>Presentation Container Interfaces</head>

<p>Interfaces designed to represent MathML Presentation elements that can contain 
arbitrary numbers of child <kw>MathMLElements</kw> are included under the heading 
of Presentation Container Elements.</p>

<definitions>
<interface name='MathMLPresentationContainer' inherits='MathMLPresentationElement, MathMLContainer' id='dom_PresentationContainer'>
<descr><p>This interface represents MathML Presentation elements that may 
contain arbitrarily many child elements. Elements directly supported by this interface
include <intref ref="presm_mrow"><kw role="element">mrow</kw></intref>, <intref ref="presm_mphantom"><kw role="element">mphantom</kw></intref> and <intref ref="presm_merror"><kw role="element">merror</kw></intref>.
All attributes and methods are derived from the base <kw>MathMLPresentationElement</kw> and <kw>MathMLContainer</kw> interfaces.</p>
<?generate-idl?>
</descr>
</interface>

<interface name='MathMLStyleElement' inherits='MathMLPresentationContainer' id='dom_StyleElement'>
<descr><p>This interface extends the <intref ref="dom_Element"><kw>MathMLElement</kw></intref> interface for 
the MathML <emph>style</emph> element <intref ref="presm_mstyle"><kw role="element">mstyle</kw></intref>.
While the <kw role="element">mstyle</kw> element may contain any 
<emph>attributes</emph> allowable on any MathML presentation element, only 
<emph>attributes</emph> specific to the <kw role="element">mstyle</kw>
element are included in the interface below. Other attributes should be 
accessed using the methods on the base <kw>Element</kw> class, particularly 
the <kw>Element::getAttribute</kw> and <kw>Element::setAttribute</kw>
methods, or even the <kw>Node::attributes</kw> attribute to access all of 
them at once. Not only does this obviate a lengthy list below, but it seems 
likely that most implementations will find this a considerably more useful 
interface to a <kw>MathMLStyleElement</kw>.
</p>
<?generate-idl?>
</descr>
<attribute name='scriptlevel' type='DOMString' readonly='no'>
<descr><p>A string of the form <quote><emph>+/- unsigned 
integer</emph></quote>; represents the <kw role="attrib">scriptlevel</kw> 
attribute for the <kw role="element">mstyle</kw> element, if specified. See 
also the discussion of this attribute.</p></descr>
</attribute>
<attribute name='displaystyle' type='DOMString' readonly='no'>
<descr><p>Either <kw role="attval">true</kw> or <kw role="attval">false</kw>; 
a string representing the <kw role="attrib">displaystyle</kw> attribute for the 
<kw role="element">mstyle</kw> element, if specified. See also the discussion
of this attribute.</p></descr>
</attribute>
<attribute name='scriptsizemultiplier' type='DOMString' readonly='no'>
<descr><p>A string of the form <quote><emph>number</emph></quote>;
represents the <kw role="attrib">scriptsizemultiplier</kw> attribute for the 
<kw role="element">mstyle</kw> element, if specified. See also the discussion
of this attribute.</p></descr>
</attribute>
<attribute name='scriptminsize' type='DOMString' readonly='no'>
<descr><p>A string of the form <quote><emph>number</emph> 
<emph>v-unit</emph></quote>; represents the 
<kw role="attrib">scriptminsize</kw> attribute for the 
<kw role="element">mstyle</kw> element, if specified. See also the discussion 
of this attribute.</p></descr>
</attribute>
<attribute name='color' type='DOMString' readonly='no'>
<descr><p>A string representation of a color; represents the 
<intref ref="presm_commatt"><kw role="attrib">color</kw></intref> attribute for the <kw role="element">mstyle</kw> 
element, if specified. See also the discussion of this attribute.</p></descr>
</attribute>
<attribute name='background' type='DOMString' readonly='no'>
<descr><p>A string representation of a color or the string 
<kw role="attval">transparent</kw>; represents the 
<kw role="attrib">background</kw> attribute for the 
<kw role="element">mstyle</kw> element, if specified. See also the discussion 
of this attribute.</p></descr>
</attribute>
</interface>

<interface name='MathMLPaddedElement' inherits='MathMLPresentationContainer' id='dom_PaddedElement'>
<descr><p>This interface extends the <intref ref="dom_Element"><kw>MathMLElement</kw></intref> interface for 
the MathML <emph>spacing adjustment</emph> element 
<intref ref="presm_mpadded"><kw role="element">mpadded</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='width' type='DOMString' readonly='no'>
<descr><p>A string representing the total <kw role="attrib">width</kw> of the 
<kw role="element">mpadded</kw> element, if specified. See also the discussion
of this attribute.</p></descr>
</attribute>
<attribute name='lspace' type='DOMString' readonly='no'>
<descr><p>A string representing the <kw role="attrib">lspace</kw> attribute - 
the additional space to the left - of the <kw role="element">mpadded</kw>
element, if specified. See also the discussion of this 
attribute.</p></descr>
</attribute>
<attribute name='height' type='DOMString' readonly='no'>
<descr><p>A string representing the <kw role="attrib">height</kw> above the 
baseline of the <kw role="element">mpadded</kw> element, if specified. See 
also the discussion of this attribute.</p></descr>
</attribute>
<attribute name='depth' type='DOMString' readonly='no'>
<descr><p>A string representing the <kw role="attrib">depth</kw> beneath the 
baseline of the <kw role="element">mpadded</kw> element, if specified. See 
also the discussion of this attribute.</p></descr>
</attribute>
</interface>

<interface name='MathMLFencedElement' inherits='MathMLPresentationContainer' id='dom_FencedElement'>
<descr><p>This interface extends the
<kw>MathMLPresentationContainer</kw> interface for the MathML
<emph>fenced content</emph> element <intref ref="presm_mfenced"><kw role="element">mfenced</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='open' type='DOMString' readonly='no'>
<descr><p>A string representing the <emph>opening-fence</emph> for the 
<kw role="element">mfenced</kw> element, if specified; this is the element's 
<kw role="attrib">open</kw> attribute.</p></descr>
</attribute>
<attribute name='close' type='DOMString' readonly='no'>
<descr><p>A string representing the <emph>opening-fence</emph> for the 
<kw role="element">mfenced</kw> element, if specified; this is the element's 
<kw role="attrib">close</kw> attribute.</p></descr>
</attribute>
<attribute name='separators' type='DOMString' readonly='no'>
<descr><p>A string representing any separating characters inside the 
<kw role="element">mfenced</kw> element, if specified; this is the element's 
<kw role="attrib">separators</kw> attribute.</p></descr>
</attribute>
</interface>

<interface name='MathMLEncloseElement' inherits='MathMLPresentationContainer' id='dom_EncloseElement'>
<descr><p>This interface supports the <intref ref="presm_menclose"><kw role="element">menclose</kw></intref>
element <specref ref="presm_menclose"/>.
</p>
<?generate-idl?>
</descr>
<attribute name='notation' type='DOMString' readonly='no'>
<descr><p>A string giving a name for the notation enclosing 
the element's contents. Represents the <kw role="attrib">notation</kw> attribute
of the <kw role="element">menclose</kw>. Allowed values are 
<kw role="attval">longdiv</kw>,
<kw role="attval">actuarial</kw>,
<kw role="attval">radical</kw>.</p></descr>
</attribute>
</interface>

<interface name='MathMLActionElement' inherits='MathMLPresentationContainer' id='dom_ActionElement'>
<descr><p>This interface extends the 
<kw>MathMLPresentationContainer</kw> interface for the MathML 
<emph>enlivening expression</emph> element <intref ref="presm_maction"><kw role="element">maction</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='actiontype' type='DOMString' readonly='no'>
<descr><p>A string specifying the action. Possible values include
<kw role="attval">toggle</kw>, 
<kw role="attval">statusline</kw>, 
<kw role="attval">tooltip</kw>, 
<kw role="attval">highlight</kw>, and
<kw role="attval">menu</kw>.</p></descr>
</attribute>
<attribute name='selection' type='DOMString' readonly='no'>
<descr><p>A string specifying an integer that selects the current 
subject of the action.</p></descr>
</attribute>
</interface>

</definitions>
</div4>

<div4><head>Presentation Schemata Interfaces</head>
<definitions>
<interface name='MathMLFractionElement' inherits='MathMLPresentationElement' id='dom_FractionElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw> interface for 
the MathML <emph>fraction</emph> element <intref ref="presm_mfrac"><kw role="element">mfrac</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='linethickness' type='DOMString' readonly='no'>
<descr><p>A string representing the <kw role="attrib">linethickness</kw> 
attribute of the <kw role="element">mfrac</kw>, if specified.</p></descr>
</attribute>
<attribute name='numerator' type='MathMLElement' readonly='no'>
<descr><p>The first child <intref ref="dom_Element"><kw>MathMLElement</kw></intref> of the 
<kw>MathMLFractionElement</kw>; represents the numerator of the represented 
fraction.</p></descr>
</attribute>
<attribute name='denominator' type='MathMLElement' readonly='no'>
<descr><p>The second child <kw>MathMLElement</kw> of the 
<kw>MathMLFractionElement</kw>; represents the denominator of the
represented fraction.</p></descr>
</attribute>
</interface>

<interface name='MathMLRadicalElement' inherits='MathMLPresentationElement' id='dom_RadicalElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw> interface for 
the MathML <emph>radical</emph> and <emph>square root</emph> elements 
<kw role="element">mroot</kw> and <intref ref="presm_mroot"><kw role="element">msqrt</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='radicand' type='MathMLElement' readonly='no'>
<descr><p>The first child <intref ref="dom_Element"><kw>MathMLElement</kw></intref> of the 
<kw>MathMLRadicalElement</kw>; represents the <emph>base</emph> of the
represented radical.</p></descr>
</attribute>
<attribute name='index' type='MathMLElement' readonly='no'>
<descr><p>The second child <kw>MathMLElement</kw> of the 
<kw>MathMLRadicalElement</kw>; represents the <emph>index</emph> of the
represented radical. This must be <kw>null</kw> for 
<kw role="element">msqrt</kw> elements.</p></descr>
</attribute>
</interface>

<interface name='MathMLScriptElement' inherits='MathMLPresentationElement' id='dom_ScriptElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw> interface for 
the MathML <emph>subscript</emph>, <emph>superscript</emph> and 
<emph>subscript-superscript pair</emph> elements
<intref ref="presm_msub"><kw role="element">msub</kw></intref>, <intref ref="presm_msup"><kw role="element">msup</kw></intref>, and 
<intref ref="presm_msubsup"><kw role="element">msubsup</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='subscriptshift' type='DOMString' readonly='no'>
<descr><p>A string representing the minimum amount to shift the baseline of 
the <emph>subscript</emph> down, if specified; this is the element's
<kw role="attrib">subscriptshift</kw> attribute. This must return <kw>null</kw>
for an <kw role="element">msup</kw>.</p></descr>
</attribute>
<attribute name='superscriptshift' type='DOMString' readonly='no'>
<descr><p>A string representing the minimum amount to shift the baseline of 
the <emph>superscript</emph> up, if specified; this is the element's
<kw role="attrib">superscriptshift</kw> attribute. This must return 
<kw>null</kw> for a <kw role="element">msub</kw>.</p></descr>
</attribute>
<attribute name='base' type='MathMLElement' readonly='no'>
<descr><p>A <intref ref="dom_Element"><kw>MathMLElement</kw></intref> representing the <emph>base</emph> of
the script. This is the first child of the element.</p></descr>
</attribute>
<attribute name='subscript' type='MathMLElement' readonly='no'>
<descr><p>A <kw>MathMLElement</kw> representing the <emph>subscript</emph>
of the script. This is the second child of a <kw role="element">msub</kw> 
or <kw role="element">msubsup</kw>; retrieval must return <kw>null</kw>
for an <kw role="element">msup</kw>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised when the element is 
a <kw role="element">msup</kw>.</p></descr></exception>
</setraises>
</attribute>
<attribute name='superscript' type='MathMLElement' readonly='no'>
<descr><p>A <kw>MathMLElement</kw> representing the 
<emph>superscript</emph> of the script. This is the second child of a 
<kw role="element">msup</kw> or the third child of a 
<kw role="element">msubsup</kw>; retrieval must return <kw>null</kw> for an 
<kw role="element">msub</kw>.</p> </descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised when the element is 
a <kw role="element">msub</kw>.</p></descr></exception>
</setraises>
</attribute>
</interface>

<interface name='MathMLUnderOverElement' inherits='MathMLPresentationElement' id='dom_UnderOverElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw> interface for 
the MathML <emph>underscript</emph>, <emph>overscript</emph> and 
<emph>overscript-underscript pair</emph> elements 
<intref ref="presm_munder"><kw role="element">munder</kw></intref>, <intref ref="presm_mover"><kw role="element">mover</kw></intref> and 
<intref ref="presm_munderover"><kw role="element">munderover</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='accentunder' type='DOMString' readonly='no'>
<descr><p>Either <kw role="attval">true</kw> or <kw role="attval">false</kw> if
present; a string controlling whether <emph>underscript</emph> is drawn as an 
<quote>accent</quote> or as a <quote>limit</quote>, if specified; this is the 
element's <kw role="attrib">accentunder</kw> attribute. This must return 
<kw>null</kw> for an <kw role="element">mover</kw>.</p></descr>
</attribute>
<attribute name='accent' type='DOMString' readonly='no'>
<descr><p>Either <kw role="attval">true</kw> or <kw role="attval">false</kw> if
present; a string controlling whether <emph>overscript</emph> is drawn as an 
<quote>accent</quote> or as a <quote>limit</quote>, if specified; this is the 
element's <kw role="attrib">accent</kw> attribute. This must return 
<kw>null</kw> for an <kw role="element">munder</kw>.</p></descr>
</attribute>
<attribute name='base' type='MathMLElement' readonly='no'>
<descr><p>A <intref ref="dom_Element"><kw>MathMLElement</kw></intref> representing the <emph>base</emph> of
the script. This is the first child of the element.</p></descr>
</attribute>
<attribute name='underscript' type='MathMLElement' readonly='no'>
<descr><p>A <kw>MathMLElement</kw> representing the 
<emph>underscript</emph> of the script. This is the second child of a 
<kw role="element">munder</kw> or <kw role="element">munderover</kw>;
retrieval must return <kw>null</kw> for an <kw role="element">mover</kw>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised when the element is a 
<kw role="element">mover</kw>.</p></descr></exception>
</setraises>
</attribute>
<attribute name='overscript' type='MathMLElement' readonly='no'>
<descr><p>A <kw>MathMLElement</kw> representing the 
<emph>overscript</emph> of the script. This is the second child of a 
<kw role="element">mover</kw> or the third child of a <kw role="element">
munderover</kw>; retrieval must return <kw>null</kw> for an 
<kw role="element">munder</kw>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised when the element is a 
<kw role="element">munder</kw>.</p></descr></exception>
</setraises>
</attribute>
</interface>

<interface name='MathMLMultiScriptsElement' inherits='MathMLPresentationElement' id='dom_MultiScriptsElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw> interface for 
the MathML <emph>multiscripts</emph> (including prescripts or 
tensors) element <intref ref="presm_mmultiscripts"><kw role="element">mmultiscripts</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='subscriptshift' type='DOMString' readonly='no'>
<descr><p>A string representing the minimum amount to shift the baseline of 
the <emph>subscripts</emph> down, if specified; this is the element's
<kw role="attrib">subscriptshift</kw> attribute.</p></descr>
</attribute>
<attribute name='superscriptshift' type='DOMString' readonly='no'>
<descr><p>A string representing the minimum amount to shift the baseline of 
the <emph>superscripts</emph> up, if specified; this is the element's
<kw role="attrib">superscriptshift</kw> attribute.</p></descr>
</attribute>
<attribute name='base' type='MathMLElement' readonly='no'>
<descr><p>A <intref ref="dom_Element"><kw>MathMLElement</kw></intref> representing the <emph>base</emph> of
the script. This is the first child of the element.</p></descr>
</attribute>
<attribute name='prescripts' type='MathMLNodeList' readonly='yes'>
<descr><p>A <kw>NodeList</kw> representing the <emph>prescripts</emph> of
the script, which appear in the order described by the expression 
<emph>(prescript presuperscript)*</emph>. This is the same as traversing 
the contents of the <kw>NodeList</kw> returned by 
<code>Node::childNodes()</code> from the <kw>Node</kw> following the 
<kw role="emptytag">mprescripts</kw> (if present) to the end of the 
list.</p></descr>
</attribute>
<attribute name='scripts' type='MathMLNodeList' readonly='yes'>
<descr><p>A <kw>MathMLNodeList</kw> representing the <emph>scripts</emph> of the
script, which appear in the order described by the expression <emph>(script
superscript)*</emph>. This is the same as traversing the contents of the 
<kw>NodeList</kw> returned by <code>Node::childNodes()</code> from the first 
<kw>Node</kw> up to and including the <kw>Node</kw> preceding the 
<kw role="emptytag">mprescripts</kw> (if present).</p></descr>
</attribute>
<attribute name='numprescriptcolumns' type='unsigned long' readonly='yes'>
<descr><p>The number of script/subscript columns preceding (to the left of) 
the <emph>base</emph>. Should always be half of 
<code>getprescripts().length()</code></p></descr>
</attribute>
<attribute name='numscriptcolumns' type='unsigned long' readonly='yes'>
<descr><p>The number of script/subscript columns following (to the right 
of) the <emph>base</emph>. Should always be half of 
<code>getscripts().length()</code></p></descr>
</attribute>
<method name='getPreSubScript'>
<descr><p>A convenience method to retrieve <emph>pre-subscript</emph>
children of the element, referenced by column index .</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>prescript</emph>
(where 1 represents the leftmost <emph>prescript</emph> column).</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>Returns the <kw>MathMLElement</kw> representing the 
<emph>colIndex</emph>-th presubscript (to the left of the 
<emph>base</emph>, counting from 1 at the far left). Note that this may be 
the <kw>MathMLElement</kw> corresponding to the special element 
<kw role="emptytag">none</kw> in the case of a <quote>missing</quote> 
<emph>presubscript</emph> (see the discussion of 
<kw role="element">mmultiscripts</kw>), or it may be <kw>null</kw> if
<kw>colIndex</kw> is out of range for the element.</p></descr></returns>
<raises>
</raises>
</method>
<method name='getSubScript'>
<descr><p>A convenience method to retrieve <emph>subscript</emph>
children of the element, referenced by column index.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>script</emph> (where 1 represents the 
leftmost <emph>script</emph> column, the first to the right 
of the <emph>base</emph>).</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>Returns the <kw>MathMLElement</kw> representing the 
<emph>colIndex</emph>-th subscript to the right of the 
<emph>base</emph>. Note that this may be 
the <kw>MathMLElement</kw> corresponding to the special element 
<kw role="emptytag">none</kw> in the case of a <quote>missing</quote> 
<emph>subscript</emph> (see the discussion of 
<kw role="element">mmultiscripts</kw>), or it may be <kw>null</kw> if
<kw>colIndex</kw> is out of range for the element.</p></descr></returns>
<raises>
</raises>
</method>
<method name='getPreSuperScript'>
<descr><p>A convenience method to retrieve <emph>pre-superscript</emph>
children of the element, referenced by column index .</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>pre-superscript</emph> (where 1 represents the 
leftmost <emph>prescript</emph> column).</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>Returns the <kw>MathMLElement</kw> representing the 
<emph>colIndex</emph>-th presuperscript (to the left of 
the <emph>base</emph>, counting from 1 at the far left). Note that this may be 
the <kw>MathMLElement</kw> corresponding to the special element 
<kw role="emptytag">none</kw> in the case of a <quote>missing</quote> 
<emph>presuperscript</emph> (see the discussion of 
<kw role="element">mmultiscripts</kw>), or it may be <kw>null</kw> if
<kw>colIndex</kw> is out of range for the element.</p></descr></returns>
<raises>
</raises>
</method>
<method name='getSuperScript'>
<descr><p>A convenience method to retrieve <emph>superscript</emph>
children of the element, referenced by column index .</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>script</emph> (where 1 represents the 
leftmost <emph>script</emph> column, the first to the right of the 
<emph>base</emph>)</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>Returns the <kw>MathMLElement</kw> representing the 
<emph>colIndex</emph>-th superscript to the right of the 
<emph>base</emph>. Note that this may be 
the <kw>MathMLElement</kw> corresponding to the special element 
<kw role="emptytag">none</kw> in the case of a <quote>missing</quote> 
<emph>superscript</emph> (see the discussion of 
<kw role="element">mmultiscripts</kw>), or it may be <kw>null</kw> if
<kw>colIndex</kw> is out of range for the element.</p></descr></returns>
<raises>
</raises>
</method>
<method name='insertPreSubScriptBefore'>
<descr><p>A convenience method to insert a <emph>pre-subscript</emph> before the position referenced by column index. If
<kw>colIndex</kw> is 0, the new <emph>pre-subscript</emph> is appended
as the last <emph>pre-subscript</emph> of the <kw role="element">
mmultiscripts</kw> element; if colIndex is 1, a new <emph>pre-subscript</emph> is prepended at the far left. Note that inserting a
new <emph>pre-subscript</emph> will cause the insertion of an empty
<emph>pre-superscript</emph> in the same column.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>pre-subscript</emph> (where 1 represents the leftmost <emph>prescript</emph> column).</p></descr>
</param>
<param name='newScript' type='MathMLElement' attr='in'>
<descr><p>A <kw>MathMLElement</kw> representing 
the element to be inserted as a <emph>pre-subscript</emph>.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
<kw>MathMLMultiScriptsElement</kw> representing the new script in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newScript</kw> represents
an element that cannot be a pre-subscript.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>colIndex</kw> is greater 
than the number of <emph>pre-scripts</emph> of the element.</p></descr></exception>
</raises>
</method>
<method name='setPreSubScriptAt'>
<descr><p>A convenience method to set the <emph>pre-subscript</emph> child at the position referenced by <kw>colIndex</kw>. 
If there is currently a <emph>pre-subscript</emph> at this position, it is 
replaced by <kw>newScript</kw>.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>pre-subscript</emph> (where 1 represents the leftmost <emph>prescript</emph> column).</p></descr>
</param>
<param name='newScript' type='MathMLElement' attr='in'>
<descr><p><kw>MathMLElement</kw> representing the
element that is to be set as the <kw>colIndex</kw>-th <emph>pre-subscript</emph> child of this element.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
<kw>MathMLMultiScriptsElement</kw> representing the new pre-subscript in
the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newScript</kw> represents
an element that cannot be a <emph>pre-subscript</emph>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>colIndex</kw> is greater 
than one more than the number of <emph>pre-scripts</emph> of the element.</p></descr></exception>
</raises>
</method>
<method name='insertSubScriptBefore'>
<descr><p>A convenience method to insert a <emph>subscript</emph> before the position referenced by column index. If
<kw>colIndex</kw> is 0, the new <emph>subscript</emph> is appended
as the last <emph>subscript</emph> of the <kw role="element">mmultiscripts</kw> element; if colIndex is 1, a new <emph>subscript</emph> is prepended 
at the far left. Note that inserting a new <emph>subscript</emph> will 
cause the insertion of an empty <emph>superscript</emph> in the same column.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>subscript</emph>, where 1 represents the leftmost <emph>script</emph> column (the
first to the right of the <emph>base</emph>).</p></descr>
</param>
<param name='newScript' type='MathMLElement' attr='in'>
<descr><p>A <kw>MathMLElement</kw> representing 
the element to be inserted as a <emph>subscript</emph>.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
<kw>MathMLMultiScriptsElement</kw> that represents the new <emph>subscript</emph> in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newScript</kw> represents
an element that cannot be a subscript.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>colIndex</kw> is greater 
than the number of <emph>scripts</emph> of the element.</p></descr></exception>
</raises>
</method>
<method name='setSubScriptAt'>
<descr><p>A convenience method to set the <emph>subscript</emph> child at the position referenced by <kw>colIndex</kw>. 
If there is currently a <emph>subscript</emph> at this position, it is 
replaced by <kw>newScript</kw>.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>subscript</emph>, where 1 represents the leftmost <emph>script</emph> column
(the first to the right of the <emph>base</emph>).</p></descr>
</param>
<param name='newScript' type='MathMLElement' attr='in'>
<descr><p><kw>MathMLElement</kw> representing the
element that is to be set as the <kw>colIndex</kw>-th <emph>subscript</emph> 
child of this element.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
element representing the new <emph>subscript</emph> in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newScript</kw> represents
an element that cannot be a <emph>subscript</emph>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>colIndex</kw> is greater 
than one more than the number of <emph>scripts</emph> of the element.</p></descr></exception>
</raises>
</method>
<method name='insertPreSuperScriptBefore'>
<descr><p>A convenience method to insert a <emph>pre-superscript</emph> before the position referenced by column index. If
<kw>colIndex</kw> is 0, the new <emph>pre-superscript</emph> is appended
as the last <emph>pre-superscript</emph> of the <kw role="element">
mmultiscripts</kw> element; if colIndex is 1, a new <emph>pre-superscript</emph> is prepended at the far left. Note that inserting a
new <emph>pre-superscript</emph> will cause the insertion of an empty
<emph>pre-subscript</emph> in the same column.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>pre-superscript</emph> (where 1 represents the leftmost <emph>prescript</emph> column).</p></descr>
</param>
<param name='newScript' type='MathMLElement' attr='in'>
<descr><p>A <kw>MathMLElement</kw> representing 
the element to be inserted as a <emph>pre-superscript</emph>.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
element that represents the new <emph>pre-superscript</emph> in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newScript</kw> represents
an element that cannot be a pre-superscript.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>colIndex</kw> is greater 
than the number of <emph>pre-scripts</emph> of the element.</p></descr></exception>
</raises>
</method>
<method name='setPreSuperScriptAt'>
<descr><p>A convenience method to set the <emph>pre-superscript</emph> child at the position referenced by <kw>colIndex</kw>. 
If there is currently a <emph>pre-superscript</emph> at this position, it is 
replaced by <kw>newScript</kw>.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>pre-superscript</emph> (where 1 represents the leftmost <emph>prescript</emph> column).</p></descr>
</param>
<param name='newScript' type='MathMLElement' attr='in'>
<descr><p><kw>MathMLElement</kw> representing the
element that is to be set as the <kw>colIndex</kw>-th <emph>pre-superscript</emph> child of this element.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
element that represents the new <emph>pre-superscript</emph> in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newScript</kw> represents
an element that cannot be a <emph>pre-superscript</emph>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>colIndex</kw> is greater 
than one more than the number of <emph>pre-scripts</emph> of the element.</p></descr></exception>
</raises>
</method>
<method name='insertSuperScriptBefore'>
<descr><p>A convenience method to insert a <emph>superscript</emph> before the position referenced by column index. If
<kw>colIndex</kw> is 0, the new <emph>superscript</emph> is appended
as the last <emph>superscript</emph> of the <kw role="element">mmultiscripts</kw> element; if colIndex is 1, a new <emph>superscript</emph> is prepended 
at the far left. Note that inserting a new <emph>superscript</emph> will 
cause the insertion of an empty <emph>subscript</emph> in the same column.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>superscript</emph>, where 1 represents the leftmost <emph>script</emph> column (the
first to the right of the <emph>base</emph>).</p></descr>
</param>
<param name='newScript' type='MathMLElement' attr='in'>
<descr><p>A <kw>MathMLElement</kw> representing 
the element to be inserted as a <emph>superscript</emph>.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
element that represents the new <emph>superscript</emph> in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newScript</kw> represents
an element that cannot be a superscript.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>colIndex</kw> is greater 
than the number of <emph>scripts</emph> of the element.</p></descr></exception>
</raises>
</method>
<method name='setSuperScriptAt'>
<descr><p>A convenience method to set the <emph>superscript</emph> child at the position referenced by <kw>colIndex</kw>. 
If there is currently a <emph>superscript</emph> at this position, it is 
replaced by <kw>newScript</kw>.</p></descr>
<parameters>
<param name='colIndex' type='unsigned long' attr='in'>
<descr><p>Column index of <emph>superscript</emph>, where 1 represents the leftmost <emph>script</emph> column
(the first to the right of the <emph>base</emph>).</p></descr>
</param>
<param name='newScript' type='MathMLElement' attr='in'>
<descr><p><kw>MathMLElement</kw> representing the
element that is to be set as the <kw>colIndex</kw>-th <emph>superscript</emph> 
child of this element.</p></descr>
</param>
</parameters>
<returns type='MathMLElement'>
<descr><p>The <kw>MathMLElement</kw> child of this
element that represents the new <emph>superscript</emph> in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newScript</kw> represents
an element that cannot be a <emph>superscript</emph>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>colIndex</kw> is greater 
than one more than the number of <emph>scripts</emph> of the element.</p></descr></exception>
</raises>
</method>
</interface>

<interface name='MathMLTableElement' inherits='MathMLPresentationElement' id='dom_TableElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw>
interface for the MathML <emph>table 
or matrix</emph> element <intref ref="presm_mtable"><kw role="element">mtable</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='align' type='DOMString' readonly='no'>
<descr><p>A string representing the vertical alignment of the table with 
the adjacent text. Allowed values are 
(<kw role="attval">top</kw> | 
<kw role="attval">bottom</kw> | 
<kw role="attval">center</kw> | 
<kw role="attval">baseline</kw> | 
<kw role="attval">axis</kw>)[<emph>rownumber</emph>], 
where <emph>rownumber</emph> is between 1 and <mi>n</mi> (for a table with
<mi>n</mi> rows) or -1 and -<mi>n</mi>.</p></descr>
</attribute>
<attribute name='rowalign' type='DOMString' readonly='no'>
<descr><p>A string representing the alignment of entries in each
row, consisting of a space-separated sequence of alignment
specifiers, each of which can have the following values:
<kw role="attval">top</kw>,
<kw role="attval">bottom</kw>,
<kw role="attval">center</kw>, 
<kw role="attval">baseline</kw>, or 
<kw role="attval">axis</kw>.</p></descr>
</attribute>
<attribute name='columnalign' type='DOMString' readonly='no'>
<descr><p>A string representing the alignment of entries in each
column, consisting of a space-separated sequence of alignment
specifiers, each of which can have the following values:
<kw role="attval">left</kw>,
<kw role="attval">center</kw>, or
<kw role="attval">right</kw>.</p></descr>
</attribute>
<attribute name='groupalign' type='DOMString' readonly='no'>
<descr><p>A string specifying how the alignment groups within the cells 
of each row are to be aligned with the corresponding items above or below them 
in the same column. The string consists of a sequence of braced group 
alignment lists. Each group alignment list is a space-separated
sequence, each of which can have the following values:
<kw role="attval">left</kw>,
<kw role="attval">right</kw>, 
<kw role="attval">center</kw>, or
<kw role="attval">decimalpoint</kw>.</p></descr>
</attribute>
<attribute name='alignmentscope' type='DOMString' readonly='no'>
<descr><p>A string consisting of the values <kw role="attval">true</kw> or
<kw role="attval">false</kw> indicating, for each column, whether it can be 
used as an alignment scope.</p></descr>
</attribute>
<attribute name='columnwidth' type='DOMString' readonly='no'>
<descr><p>A string consisting of a space-separated sequence of
specifiers, each of which can have one of the following forms:
<kw role="attval">auto</kw>,
<kw>number h-unit</kw>,
<kw>namedspace</kw>, or
<kw role="attval">fit</kw>. (A value of the form <kw>namedspace</kw> is one
of <kw role="attval">veryverythinmathspace</kw>, <kw role="attval">verythinmathspace</kw>, 
<kw role="attval">thinmathspace</kw>, <kw role="attval">mediummathspace</kw>, 
<kw role="attval">thickmathspace</kw>, <kw role="attval">verythickmathspace</kw>, or 
<kw role="attval">veryverythickmathspace</kw>.) This represents the element's 
<kw role="attrib">columnwidth</kw> attribute.</p></descr>
</attribute>
<attribute name='width' type='DOMString' readonly='no'>
<descr><p>A string that is either of the form 
<kw>number h-unit</kw> or is the string <kw role="attval">auto</kw>.
This represents the element's <kw role="attrib">width</kw> attribute.</p></descr>
</attribute>
<attribute name='rowspacing' type='DOMString' readonly='no'>
<descr><p>A string consisting of a space-separated sequence of
specifiers of the form <kw>number v-unit</kw> 
representing the space to be added between rows.</p></descr>
</attribute>
<attribute name='columnspacing' type='DOMString' readonly='no'>
<descr><p>A string consisting of a space-separated sequence of
specifiers of the form <kw>number h-unit</kw> 
representing the space to be added between columns.</p></descr>
</attribute>
<attribute name='rowlines' type='DOMString' readonly='no'>
<descr><p>A string specifying whether and what kind of lines should be 
added between each row. The string consists of a 
space-separated sequence of specifiers, each of which
can have the following values: 
<kw role="attval">none</kw>,
<kw role="attval">solid</kw>, or
<kw role="attval">dashed</kw>.</p></descr>
</attribute>
<attribute name='columnlines' type='DOMString' readonly='no'>
<descr><p>A string specifying whether and what kind of lines should be 
added between each column. The string consists of a 
space-separated sequence of specifiers, each of which
can have the following values: 
<kw role="attval">none</kw>,
<kw role="attval">solid</kw>, or
<kw role="attval">dashed</kw>.</p></descr>
</attribute>
<attribute name='frame' type='DOMString' readonly='no'>
<descr><p>A string specifying a frame around the table. Allowed
values are <kw>(none | solid | dashed)</kw>.</p></descr>
</attribute>
<attribute name='framespacing' type='DOMString' readonly='no'>
<descr><p>A string of the form <kw>number h-unit number v-unit</kw> specifying the spacing between table and its frame.</p></descr>
</attribute>
<attribute name='equalrows' type='DOMString' readonly='no'>
<descr><p>A string with the values <kw role="attval">true</kw> or 
<kw role="attval">false</kw>.</p></descr>
</attribute>
<attribute name='equalcolumns' type='DOMString' readonly='no'>
<descr><p>A string with the values <kw role="attval">true</kw> or 
<kw role="attval">false</kw>.</p></descr>
</attribute>
<attribute name='displaystyle' type='DOMString' readonly='no'>
<descr><p>A string with the values <kw role="attval">true</kw> or 
<kw role="attval">false</kw>.</p></descr>
</attribute>
<attribute name='side' type='DOMString' readonly='no'>
<descr><p>A string with the values <kw role="attval">left</kw>,
<kw role="attval">right</kw>, <kw role="attval">leftoverlap</kw>, or
<kw role="attval">rightoverlap</kw>.</p></descr>
</attribute>
<attribute name='minlabelspacing' type='DOMString' readonly='no'>
<descr><p>A string of the form <kw>number h-unit</kw>, specifying
the minimum space between a label and the adjacent entry in the labeled row.</p></descr>
</attribute>
<attribute name='rows' type='MathMLNodeList' readonly='yes'>
<descr><p>A <kw>MathMLNodeList</kw> consisting 
of <kw>MathMLTableRowElements</kw> and <kw>MathMLLabeledRowElements</kw> 
representing the rows of the table. This is a <emph>live</emph> object.</p></descr>
</attribute>
<method name='insertEmptyRow'>
<descr><p>A convenience method to insert a new (empty) 
row (<intref ref="presm_mtr"><kw role="element">mtr</kw></intref>) in the table before the current <kw>index</kw>-th row. If <kw>index</kw> is less than 0, the new row is inserted 
before the <kw>-index</kw>-th row counting up from the current last row; if 
<kw>index</kw> is equal to the current number of rows, the new row is 
appended as the last row.</p></descr>
<parameters>
<param name='index' type='long' attr='in'>
<descr><p>Position before which to insert the 
new row, where 0 represents the first row. Negative numbers are used to
count backwards from the last row.</p></descr>
</param>
</parameters>
<returns type='MathMLTableRowElement'>
<descr><p>Returns the <intref ref="dom_TableRowElement"><kw>MathMLTableRowElement</kw></intref> 
child of this <kw>MathMLTableElement</kw> that represents the new 
<kw role="element">mtr</kw> element being inserted.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the current number of rows of this <kw role="element">mtable</kw> 
element or less than minus this number.</p></descr></exception>
</raises>
</method>
<method name='insertEmptyLabeledRow'>
<descr><p>A convenience method to insert a new (empty) 
labeled row (<intref ref="presm_mlabeledtr"><kw role="element">mlabeledtr</kw></intref>) in the table before the 
current <kw>index</kw>-th row. If <kw>index</kw> is less than 0, the new row 
is inserted before the <kw>-index</kw>-th row counting up from the current 
last row; if <kw>index</kw> is equal to the current number of rows, the new 
row is appended as the last row.</p></descr>
<parameters>
<param name='index' type='long' attr='in'>
<descr><p>Position before which to insert the 
new row, where 0 represents the first row. Negative numbers are used to
count backwards from the last row.</p></descr>
</param>
</parameters>
<returns type='MathMLLabeledRowElement'>
<descr><p>Returns the <intref ref="dom_LabeledRowElement"><kw>MathMLLabeledRowElement</kw></intref> child of this <kw>MathMLTableElement</kw> representing the 
<kw role="element">mtr</kw> element being inserted.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the current number of rows of this <kw role="element">mtable</kw> 
element or less than minus this number.</p></descr></exception>
</raises>
</method>
<method name='getRow'>
<descr><p>A convenience method to retrieve the <kw>index</kw>-th row 
from the table. If <kw>index</kw> is less than 0, the <kw>-index</kw>-th row 
from the bottom of the table is retrieved. (So, for instance, if <kw>index</kw> is -2, the next-to-last row is retrieved.) If <kw>index</kw> is not
a valid value (i.e. is greater than or equal to the number of rows, or is
less than minus the number of rows), a <kw>null MathMLTableRowElement</kw> is 
returned.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Index of the row to be returned, where
0 represents the first row. Negative numbers are used to count backwards 
from the last row.</p></descr>
</param>
</parameters>
<returns type='MathMLTableRowElement'>
<descr><p>Returns the <kw>MathMLTableRowElement</kw> 
representing the <kw>index</kw>-th row of the table.</p></descr></returns>
<raises>
</raises>
</method>
<method name='insertRow'>
<descr><p>A convenience method to insert the new row or
labeled row (<kw role="element">mtr</kw> or <kw role="element">mlabeledtr</kw>) represented by <kw>newRow</kw> in the table before the current <kw>index</kw>-th row. If <kw>index</kw> is equal to the current number of rows, 
<kw>newRow</kw> is appended as the last row in the table. If <kw>index</kw> 
is less than 0, the new row is inserted before the <kw>-index</kw>-th row 
from the bottom of the table. (So, for instance, if <kw>index</kw> is -2, 
the new row is inserted before the next-to-last current row.)</p></descr>
<parameters>
<param name='index' type='long' attr='in'>
<descr><p>Index before which to insert <kw>newRow</kw>, where 0 represents the first row. Negative numbers are used to count 
backwards from the current last row.</p></descr>
</param>
<param name='newRow' type='MathMLTableRowElement' attr='in'>
<descr><p>A <kw>MathMLTableRowElement</kw> or
<kw>MathMLLabeledRowElement</kw> representing the row to be inserted.</p></descr>
</param>
</parameters>
<returns type='MathMLTableRowElement'>
<descr><p>The <kw>MathMLTableRowElement</kw> or 
<kw>MathMLLabeledRowElement</kw> child of this <kw>MathMLTableElement</kw> representing the <kw role="element">mtr</kw> element being inserted.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newRow</kw> is not a
<kw>MathMLTableRowElement</kw> or <kw>MathMLLabeledRowElement</kw>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the current number of rows or less than minus the current number of
rows of this <kw role="element">mtable</kw> element.</p></descr></exception>
</raises>
</method>
<method name='setRow'>
<descr><p>A method to set the value of the row in the 
table at the specified index to the <kw role="element">mtr</kw> or 
<kw role="element">mlabeledtr</kw> represented by <kw>newRow</kw>. If <kw>index</kw> is less than 0, the <kw>-index</kw>-th row counting up from the 
last is replaced by <kw>newRow</kw>; if <kw>index</kw> is one more than the 
current number of rows, the new row is appended as the last row in the 
table.</p></descr>
<parameters>
<param name='index' type='long' attr='in'>
<descr><p>Index of the row to be set to <kw>newRow</kw>, where 0 represents the first row. Negative numbers are used to 
count backwards from the last row.</p></descr>
</param>
<param name='newRow' type='MathMLTableRowElement' attr='in'>
<descr><p>A <kw>MathMLTableRowElement</kw> 
representing the row that is to be the new <kw>index</kw>-th row.</p></descr>
</param>
</parameters>
<returns type='MathMLTableRowElement'>
<descr><p>Returns the <kw>MathMLTableRowElement</kw> 
or <kw>MathMLLabeledRowElement</kw> child of this element that represents 
the new row in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if <kw>newRow</kw> is not a
<kw>MathMLTableRowElement</kw> or <kw>MathMLLabeledRowElement</kw>.</p>
<p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the current number of rows of this <kw role="element">mtable</kw> 
element or less than minus this number.</p></descr></exception>
</raises>
</method>
<method name='deleteRow'>
<descr><p>A convenience method to delete the row of the 
table at the specified index. If <kw>index</kw> is less than 0, the <kw>-index</kw>-th row from the bottom of the table is deleted. (So, for 
instance, if <kw>index</kw> is -2, the next-to-last row is deleted.)</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Index of row to be deleted, where 0 
represents the first row.</p></descr>
</param>
</parameters>
<returns type='void'>
<descr><p>None.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than or equal to the current number of rows of this <kw role="element">
mtable</kw> element or less than minus this number.</p></descr></exception>
</raises>
</method>
<method name='removeRow'>
<descr><p>A convenience method to delete the row of the 
table at the specified index and return it to the caller. If <kw>index</kw> 
is less than 0, the <kw>-index</kw>-th row from the bottom of the table is 
deleted. (So, for instance, if <kw>index</kw> is -2, the next-to-last 
row is deleted.)</p></descr>
<parameters>
<param name='index' type='long' attr='in'>
<descr><p>Index of row to be removed, where 0 
represents the first row.</p></descr>
</param>
</parameters>
<returns type='MathMLTableRowElement'>
<descr><p>A <kw>MathMLTableRowElement</kw> representing 
the row being deleted.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than or equal to the number of rows of this <kw role="element">mtable</kw> 
element or less than minus this number.</p></descr></exception>
</raises>
</method>
</interface>

<interface name='MathMLTableRowElement' inherits='MathMLPresentationElement' id='dom_TableRowElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw> 
interface for the MathML table or matrix row element <intref ref="presm_mtr"><kw role="element">mtr</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='rowalign' type='DOMString' readonly='no'>
<descr><p>A string representing an override of the row alignment specified in 
the containing <intref ref="presm_mtable"><kw role="element">mtable</kw></intref>. Allowed values are 
<kw role="attval">top</kw>,
<kw role="attval">bottom</kw>,
<kw role="attval">center</kw>,
<kw role="attval">baseline</kw>, and
<kw role="attval">axis</kw>.</p></descr>
</attribute>
<attribute name='columnalign' type='DOMString' readonly='no'>
<descr><p>A string representing an override of the column alignment specified in 
the containing <kw role="element">mtable</kw>. Allowed values are 
<kw role="attval">left</kw>,
<kw role="attval">center</kw>, and
<kw role="attval">right</kw>.</p></descr>
</attribute>
<attribute name='groupalign' type='DOMString' readonly='no'>
<descr><p>[To be changed?]</p></descr>
</attribute>
<attribute name='cells' type='MathMLNodeList' readonly='yes'>
<descr><p>A <kw>MathMLNodeList</kw> consisting of the cells of the 
row. <emph>Note that this does not include the label if this is a 
<intref ref="dom_LabeledRowElement"><kw>MathMLLabeledRowElement</kw></intref>!</emph></p></descr>
</attribute>
<method name='insertEmptyCell'>
<descr><p>A convenience method to insert a new (empty) 
cell in the row.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Index of the cell before which the new
cell is to be inserted, where the first cell is numbered 0. If <kw>index</kw> 
is equal to the current number of cells, the new cell is appended as the 
last cell of the row. <emph>Note that the index will differ from the index 
of the corresponding <kw>Node</kw> in the collection returned by <kw>Node::childNodes</kw> if this is a <kw>MathMLLabeledRowElement</kw>!</emph></p></descr>
</param>
</parameters>
<returns type='MathMLTableCellElement'>
<descr><p>Returns the <intref ref="dom_TableCellElement"><kw>MathMLTableCellElement</kw></intref> 
representing the <intref ref="presm_mtd"><kw role="element">mtd</kw></intref> element being inserted.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the current number of cells of this <kw role="element">mtr</kw> 
element.</p></descr></exception>
</raises>
</method>
<method name='insertCell'>
<descr><p>A convenience method to insert a new cell in 
the row.</p></descr>
<parameters>
<param name='newCell' type='MathMLTableCellElement' attr='in'>
<descr><p>A <kw>MathMLTableCellElement</kw>
representing the new cell (<kw role="element">mtd</kw> element) to be
inserted.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Index of the cell before which the new
cell is to be inserted, where the first cell is numbered 0. If <kw>index</kw> 
equals the current number of cells, the new cell is appended as the last 
cell of the row. <emph>Note that the index will differ from the index of 
the corresponding <kw>Node</kw> in <kw>Node::childNodes</kw> if this is a 
<kw>MathMLLabeledRowElement</kw>!</emph></p></descr>
</param>
</parameters>
<returns type='MathMLTableCellElement'>
<descr><p>The <kw>MathMLTableCellElement</kw> 
representing the <kw role="element">mtd</kw> element being inserted.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the current number of cells of this <kw role="element">mtr</kw> 
element.</p></descr></exception>
</raises>
</method>
<method name='setCell'>
<descr><p>A convenience method to set the value of a cell 
in the row to <kw>newCell</kw>. If index is equal to the current number
of cells, <kw>newCell</kw> is appended as the last cell in the row.</p></descr>
<parameters>
<param name='newCell' type='MathMLTableCellElement' attr='in'>
<descr><p>A <kw>MathMLTableCellElement</kw>
representing the cell (<kw role="element">mtd</kw> element) that is to be
inserted.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Index of the cell that is to be 
replaced by the new cell, where the first cell is numbered 0. <emph>Note 
that the index will differ from the index of the corresponding <kw>Node</kw> in the collection returned by <kw>Node::childNodes</kw> if this is a 
<kw>MathMLLabeledRowElement</kw>!</emph></p></descr>
</param>
</parameters>
<returns type='MathMLTableCellElement'>
<descr><p>The <kw>MathMLTableCellElement</kw> 
child of this <kw>MathMLTableRowElement</kw> representing the new
<kw role="element">mtd</kw> element.</p></descr></returns>
<raises>
</raises>
</method>
<method name='deleteCell'>
<descr><p>A convenience method to delete a cell in the row.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Index of cell to be deleted. <emph>Note that the
count will differ from the <kw>index</kw>-th child node if this is a
<kw>MathMLLabeledRowElement</kw>!</emph></p></descr>
</param>
</parameters>
<returns type='void'>
<descr><p>None.</p></descr></returns>
<raises>
</raises>
</method>
</interface>

<interface name='MathMLLabeledRowElement' inherits='MathMLTableRowElement' id='dom_LabeledRowElement'>
<descr><p>This interface extends the <kw>MathMLTableRowElement</kw> 
interface to represent the <intref ref="presm_mlabeledtr"><kw role="element">mlabeledtr</kw></intref> element 
<specref ref="presm_mlabeledtr"/>. <emph>Note that the presence of a label
causes the <kw>index</kw>th child node to differ from the <kw>index</kw>-th 
cell!</emph>
</p>
<?generate-idl?>
</descr>
<attribute name='label' type='MathMLElement' readonly='no'>
<descr><p>A <intref ref="dom_Element"><kw>MathMLElement</kw></intref> representing the
label of this row. Note that retrieving this should have the same effect as 
a call to <kw>Node::getfirstChild()</kw>, while setting it should have the same effect
as <code>Node::replaceChild(Node::getfirstChild())</code>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>NO_MODIFICATION_ALLOWED_ERR: Raised if this <kw>MathMLElement</kw> or the 
new <kw>MathMLElement</kw> is read-only.</p></descr></exception>
</setraises>
</attribute>
</interface>

<interface name='MathMLTableCellElement' inherits='MathMLPresentationContainer' id='dom_TableCellElement'>
<descr><p>This interface extends the <kw>MathMLPresentationContainer</kw> 
interface for the MathML table or matrix cell element <intref ref="presm_mtd"><kw role="element">mtd</kw></intref>. 
</p>
<?generate-idl?>
</descr>
<attribute name='rowspan' type='DOMString' readonly='no'>
<descr><p>A string representing a positive integer that specifies the 
number of rows spanned by this cell. The default is 1.</p></descr>
</attribute>
<attribute name='columnspan' type='DOMString' readonly='no'>
<descr><p>A string representing a positive integer that specifies the 
number of columns spanned by this cell. The default is 1.</p></descr>
</attribute>
<attribute name='rowalign' type='DOMString' readonly='no'>
<descr><p>A string specifying an override of the inherited vertical 
alignment of this cell within the table row. Allowed values are 
<kw role="attval">top</kw>,
<kw role="attval">bottom</kw>,
<kw role="attval">center</kw>,
<kw role="attval">baseline</kw>, and
<kw role="attval">axis</kw>.</p></descr>
</attribute>
<attribute name='columnalign' type='DOMString' readonly='no'>
<descr><p>A string specifying an override of the inherited horizontal 
alignment of this cell within the table column. Allowed values are 
<kw role="attval">left</kw>,
<kw role="attval">center</kw>, and
<kw role="attval">right</kw>.</p></descr>
</attribute>
<attribute name='groupalign' type='DOMString' readonly='no'>
<descr><p>A string specifying how the alignment groups within the cell are 
to be aligned with those in cells above or below this cell. The string
consists of a space-separated sequence of specifiers, each of which
can have the following values:
<kw role="attval">left</kw>,
<kw role="attval">right</kw>, 
<kw role="attval">center</kw>, or
<kw role="attval">decimalpoint</kw>.</p></descr>
</attribute>
<attribute name='hasaligngroups' type='boolean' readonly='yes'>
<descr><p>A string with the values <kw role="attval">true</kw> or 
<kw role="attval">false</kw> indicating whether the cell contains align groups.</p></descr>
</attribute>
<attribute name='cellindex' type='DOMString' readonly='yes'>
<descr><p>A string representing the integer index (1-based?) of the cell 
in its containing row. [What about spanning cells? How do these affect this 
value?]</p></descr>
</attribute>
</interface>

<interface name='MathMLAlignGroupElement' inherits='MathMLPresentationElement' id='dom_AlignGroupElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw> interface for 
the MathML group -alignment element <intref ref="presm_malign"><kw role="emptytag">maligngroup</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='groupalign' type='DOMString' readonly='no'>
<descr><p>A string specifying how the alignment group is to be aligned with 
other alignment groups above or below it. Allowed values are 
<kw role="attval">left</kw>,
<kw role="attval">right</kw>, 
<kw role="attval">center</kw>, or
<kw role="attval">decimalpoint</kw>.</p></descr>
</attribute>
</interface>

<interface name='MathMLAlignMarkElement' inherits='MathMLPresentationElement' id='dom_AlignMarkElement'>
<descr><p>This interface extends the <kw>MathMLPresentationElement</kw> interface for 
the MathML <emph>alignment mark</emph> element 
<intref ref="presm_malign"><kw role="emptytag">malignmark</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='edge' type='DOMString' readonly='no'>
<descr><p>A string specifying alignment on the right edge of the preceding 
element or the left edge of the following element. Allowed values are 
<kw role="attval">left</kw> and
<kw role="attval">right</kw>.</p></descr>
</attribute>
</interface>

</definitions>
</div4>
</div3>

<div3><head>Content Elements</head>

<definitions>
<interface name='MathMLContentElement' inherits='MathMLElement' id='dom_ContentElement'>
<descr><p>This interface is provided to serve as a base interface for
various MathML Content interfaces. It contains no new attributes or methods at this time;
however, it is felt that the distinction between Presentation and Content MathML entities
should be indicated in the MathMLElement hierarchy. In particular, future versions of 
the MathML DOM may add functionality on this interface; it may also serve as an aid
to implementors.
</p>
<?generate-idl?>
</descr>
</interface>

</definitions>
<div4><head>Content Token Interfaces</head>
<definitions>
<interface name='MathMLContentToken' inherits='MathMLContentElement' id='dom_ContentToken'>
<descr><p>This is the interface from which the interfaces representing 
the MathML Content token elements (<intref ref="contm_ci"><kw role="element">ci</kw></intref>, <intref ref="contm_cn"><kw role="element">cn</kw></intref> and 
<intref ref="contm_csymbol"><kw role="element">csymbol</kw></intref>) are derived. These elements  may contain MathML Presentation 
elements, <kw>Text</kw> nodes, or a combination of both. Thus the <kw>getArgument</kw> 
and <kw>insertArgument</kw> methods have been provided to deal with this 
distinction between these elements and other MathML Content elements.
</p>
<?generate-idl?>
</descr>
<attribute name='arguments' type='MathMLNodeList' readonly='yes'>
<descr><p>The arguments of this element, returned as a <kw>MathMLNodeList</kw>.
Note that this is not necessarily the same as <kw>Node::childNodes</kw>, particularly
in the case of the <kw role="element">cn</kw> element. The reason is that the <intref ref="contm_sep"><kw role="element">sep</kw></intref>
elements that are used to separate the arguments of a <kw role="element">cn</kw> are
not returned.</p></descr>
</attribute>
<attribute name='definitionURL' type='DOMString' readonly='no'>
<descr><p>A URI pointing to a semantic definition for this content element.
Note that there is no stipulation about the form this definition may take!</p></descr>
</attribute>
<attribute name='encoding' type='DOMString' readonly='no'>
<descr><p>A string describing the syntax in which the definition
located at <intref ref="contm_attrib"><kw role="attrib">definitionURL</kw></intref> is given.</p></descr>
</attribute>
<method name='getArgument'>
<descr><p>A convenience method to retrieve the child 
argument at the position referenced by <kw>index</kw>. Note that this is
not necessarily the same as the <kw>index</kw>-th child <kw>Node</kw>
of this <kw>Element</kw>; in particular, <kw role="element">sep</kw>
elements will not be counted.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of desired argument in the list 
of arguments. The first argument is numbered 1.</p></descr>
</param>
</parameters>
<returns type='Node'>
<descr><p>The <kw>Node</kw> retrieved.</p></descr></returns>
<raises>
</raises>
</method>
<method name='insertArgument'>
<descr><p>A convenience method to insert <kw>newArgument</kw> 
before the current <kw>index</kw>-th argument child of this element.
If <kw>index</kw> is 0, <kw>newArgument</kw> is appended as the last argument.</p></descr>
<parameters>
<param name='newArgument' type='Node' attr='in'>
<descr><p><kw>Node</kw> to be inserted as the 
<kw>index</kw>-th argument. This will either be a <intref ref="dom_Element"><kw>MathMLElement</kw></intref> or 
a <kw>Text</kw> node.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position before which <kw>newArgument</kw>
is to be inserted. The first argument is numbered 1.<emph>Note that this is 
not necessarily the index of the <kw>Node</kw> in the list of child nodes, 
as nodes representing such elements as <kw role="element">sep</kw> are not 
counted as arguments.</emph></p></descr>
</param>
</parameters>
<returns type='Node'>
<descr><p>The <kw>Node</kw> inserted. This is the 
element within the DOM.</p></descr></returns>
<raises>
</raises>
</method>
<method name='setArgument'>
<descr><p>A convenience method to set an argument child at the position 
referenced by <kw>index</kw>. If there is currently an argument at this 
position, it is replaced by <kw>newArgument</kw>.</p></descr>
<parameters>
<param name='newArgument' type='Node' attr='in'>
<descr><p><kw>Node</kw> to be inserted as the argument.
This will either be a <kw>MathMLElement</kw> or a <kw>Text</kw> node.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the argument that is to be
set to <kw>newArgument</kw> in the list of arguments. The first argument
is numbered 1. <emph>Note that this is not necessarily the index of the 
<kw>Node</kw> in the list of child nodes, as nodes representing such elements
as <kw role="element">sep</kw> are not counted as arguments.</emph></p></descr>
</param>
</parameters>
<returns type='Node'>
<descr><p>The <kw>Node</kw> inserted. This is the 
element within the DOM.</p></descr></returns>
<raises>
</raises>
</method>
<method name='deleteArgument'>
<descr><p>A convenience method to delete the argument child 
located at the position referenced by <kw>index</kw>.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the argument to be deleted from 
the list of arguments. The first argument is numbered 1.</p></descr>
</param>
</parameters>
<returns type='void'>
<descr><p>None.</p></descr></returns>
<raises>
</raises>
</method>
<method name='removeArgument'>
<descr><p>A convenience method to delete the argument child 
located at the position referenced by <kw>index</kw>, and to return it to
the caller.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the argument to be deleted from 
the list of arguments. The first argument is numbered 1.</p></descr>
</param>
</parameters>
<returns type='Node'>
<descr><p>A <kw>Node</kw> representing the deleted
argument.</p></descr></returns>
<raises>
</raises>
</method>
</interface>

<interface name='MathMLCnElement' inherits='MathMLContentToken' id='dom_CnElement'>
<descr><p>The <intref ref="contm_cn"><kw role="element">cn</kw></intref> element is used to specify actual 
numeric constants.
</p>
<?generate-idl?>
</descr>
<attribute name='type' type='DOMString' readonly='no'>
<descr><p>Values include, but are not restricted to,
<kw role="attval">e-notation</kw>, 
<kw role="attval">integer</kw>, 
<kw role="attval">rational</kw>, 
<kw role="attval">real</kw>, 
<kw role="attval">float</kw>, 
<kw role="attval">complex</kw>, 
<kw role="attval">complex-polar</kw>,
<kw role="attval">complex-cartesian</kw>, and
<kw role="attval">constant</kw>.</p></descr>
</attribute>
<attribute name='base' type='DOMString' readonly='no'>
<descr><p>A string representing an integer between 2 and 36; the base of the
numerical representation.</p></descr>
</attribute>
<attribute name='nargs' type='unsigned long' readonly='yes'>
<descr><p>The number of <intref ref="contm_sep"><kw role="element">sep</kw></intref>-separated arguments.</p></descr>
</attribute>
</interface>

<interface name='MathMLCiElement' inherits='MathMLContentToken' id='dom_CiElement'>
<descr><p>The <intref ref="contm_ci"><kw role="element">ci</kw></intref> element is used to specify a symbolic
name.
</p>
<?generate-idl?>
</descr>
<attribute name='type' type='DOMString' readonly='no'>
<descr><p>Values include
<kw role="attval">integer</kw>,
<kw role="attval">rational</kw>,
<kw role="attval">real</kw>,
<kw role="attval">float</kw>,
<kw role="attval">complex</kw>, 
<kw role="attval">complex-polar</kw>,
<kw role="attval">complex-cartesian</kw>,
<kw role="attval">constant</kw>,
any of the MathML content container types 
(<kw role="attval">vector</kw>,
<kw role="attval">matrix</kw>,
<kw role="attval">set</kw>,
<kw role="attval">list</kw> etc.)
or their types.</p></descr>
</attribute>
</interface>

<interface name='MathMLCsymbolElement' inherits='MathMLContentToken' id='dom_CsymbolElement'>
<descr><p>This interface represents the <intref ref="contm_csymbol"><kw role="element">csymbol</kw></intref>
element. Although it currently has no attributes or methods distinct from those of <kw>MathMLContentToken</kw>,
a separate interface is provided to emphasize the conceptual role of the <kw role="element">csymbol</kw> element.
</p>
<?generate-idl?>
</descr>
</interface>
</definitions>
</div4>

<div4><head>Content Container Interfaces</head>

<p>We have added interfaces for content elements that are containers,
i.e. elements that may contain child elements corresponding to arguments,
bound variables, conditions, or lower or upper limits.</p>

<definitions>
<interface name='MathMLContentContainer' inherits='MathMLContentElement, MathMLContainer' id='dom_ContentContainer'>
<descr><p>This interface supports the MathML Content elements that may
contain child Content elements. The elements directly supported by <kw>MathMLContentContainer</kw> 
include: <intref ref="contm_reln"><kw role="element">reln</kw></intref> (deprecated), 
<intref ref="contm_lambda"><kw role="element">lambda</kw></intref>, <intref ref="contm_lowlimit"><kw role="element">lowlimit</kw></intref>, 
<intref ref="contm_uplimit"><kw role="element">uplimit</kw></intref>, <intref ref="contm_degree"><kw role="element">degree</kw></intref>,
<intref ref="contm_domainofapplication"><kw role="element">domainofapplication</kw></intref>, and <intref ref="contm_momentabout"><kw role="element">momentabout</kw></intref>.
Interfaces derived from MathMLContentContainer support the elements <intref ref="contm_apply"><kw role="element">apply</kw></intref>, 
<intref ref="contm_fn"><kw role="element">fn</kw></intref>, <intref ref="contm_interval"><kw role="element">interval</kw></intref>, 
<intref ref="contm_condition"><kw role="element">condition</kw></intref>, <intref ref="contm_declare"><kw role="element">declare</kw></intref>, 
<intref ref="contm_bvar"><kw role="element">bvar</kw></intref>, <intref ref="contm_set"><kw role="element">set</kw></intref>, 
<intref ref="contm_list"><kw role="element">list</kw></intref>, <intref ref="contm_vector"><kw role="element">vector</kw></intref>, 
<intref ref="contm_matrix"><kw role="element">matrix</kw></intref>, and <intref ref="contm_matrixrow"><kw role="element">matrixrow</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='nBoundVariables' type='unsigned long' readonly='yes'>
<descr><p>The number of <kw role="element">bvar</kw> 
child elements of this element.</p></descr>
</attribute>
<attribute name='condition' type='MathMLConditionElement' readonly='no'>
<descr><p>This attribute represents the <kw role="element">condition</kw> child 
element of this node. See  <specref ref="contm_opwithqual"/>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit a child
<kw role="element">condition</kw> element. In particular, raised if 
this element is not a <kw role="element">apply</kw>, 
<kw role="element">set</kw>, or <kw role="element">list</kw>.</p></descr></exception>
</setraises>
</attribute>
<attribute name='opDegree' type='MathMLElement' readonly='no'>
<descr><p>This attribute represents the <kw role="element">degree</kw> child 
element of this node. This expresses, for instance, the degree of differentiation
if this element is a <kw role="element">bvar</kw> child of an 
<kw role="element">apply</kw> element whose first child is a <intref ref="contm_diff"><kw role="element">diff</kw></intref>
or <intref ref="contm_partialdiff"><kw role="element">partialdiff</kw></intref>. If this is an
<kw role="element">apply</kw> element whose first child is a <kw role="element">partialdiff</kw>,
the <kw>opDegree</kw> attribute, if present, represents the total degree of differentiation.
See  <specref ref="contm_opwithqual"/>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit a child
<kw role="element">degree</kw> element. In particular, raised if 
this element is not a <kw role="element">bvar</kw> or <kw role="element">apply</kw>.</p></descr></exception>
</setraises>
</attribute>
<attribute name='domainOfApplication' type='MathMLElement' readonly='no'>
<descr><p>This attribute represents the <kw role="element">domainofapplication</kw> child 
element of this node, if present. This may express, for instance, the domain of integration
if this element is an <kw role="element">apply</kw> element whose first child is an integral operator
(<intref ref="contm_int"><kw role="element">int</kw></intref>). See <specref ref="contm_opwithqual"/>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit a child
<kw role="element">domainofapplication</kw> element.</p></descr></exception>
</setraises>
</attribute>
<attribute name='momentAbout' type='MathMLElement' readonly='no'>
<descr><p>This attribute represents the <kw role="element">momentabout</kw> child 
element of this node, if present. This typically expresses the point about which a statistical
moment is to be calculated, if this element is an <kw role="element">apply</kw> element whose 
first child is a <intref ref="contm_moment"><kw role="element">moment</kw></intref>. See 
<specref ref="contm_opwithqual"/>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit a child
<kw role="element">momentabout</kw> element. In particular, raised if 
this element is not an <kw role="element">apply</kw> whose first child is a <kw role="element">moment</kw>.</p></descr></exception>
</setraises>
</attribute>
<method name='getBoundVariable'>
<descr><p>This method retrieves the <kw>index</kw>-th
<intref ref="dom_BvarElement"><kw>MathMLBvarElement</kw></intref> child of the <kw>MathMLElement</kw>. Note that
only <kw role="element">bvar</kw> child elements are counted in determining
the <kw>index</kw>-th bound variable.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index into the bound variable
children of this element of the <kw>MathMLBvarElement</kw> to 
be retrieved.</p></descr>
</param>
</parameters>
<returns type='MathMLBvarElement'>
<descr><p>The <kw>MathMLBvarElement</kw> representing
the <kw>index</kw>-th <kw role="element">bvar</kw> child of this element.</p></descr></returns>
<raises>
</raises>
</method>
<method name='insertBoundVariable'>
<descr><p>This method inserts a <kw>MathMLBvarElement</kw> 
as a child node before the current <kw>index</kw>-th bound variable child
of this <kw>MathMLElement</kw>. If <kw>index</kw> is 0, <kw>newBVar</kw>
is appended as the last bound variable child. This has the effect of adding 
a bound variable to the expression this element represents. Note that the 
new bound variable is inserted as the <kw>index</kw>-th <kw role="element">
bvar</kw> child node, not necessarily as the <kw> index</kw>-th child node. 
The point of the method is to allow insertion of bound variables without 
requiring the caller to calculate the exact order of child qualifier 
elements.</p></descr>
<parameters>
<param name='newBVar' type='MathMLBvarElement' attr='in'>
<descr><p>A <kw>MathMLBvarElement</kw> representing
the <kw role="element">bvar</kw> element being added.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index into the bound variable
children of this element before which <kw>newBVar</kw> is to be inserted.</p></descr>
</param>
</parameters>
<returns type='MathMLBvarElement'>
<descr><p>The <kw>MathMLBvarElement</kw> being
added.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit child 
<kw role="element">bvar</kw> elements.</p></descr></exception>
</raises>
</method>
<method name='setBoundVariable'>
<descr><p>This method sets the <kw>index</kw>-th bound 
variable child of this <kw>MathMLElement</kw> to <kw>newBVar</kw>. This 
has the effect of setting a bound variable in the expression this element 
represents. Note that the new bound variable is inserted as the <kw>index</kw>-th <kw role="element">bvar</kw> child node, not necessarily 
as the <kw> index</kw>-th child node. The point of the method is to allow 
insertion of bound variables without requiring the caller to calculate the 
exact order of child qualifier elements. If there is already a 
<kw role="element">bvar</kw> at the <kw>index</kw>-th position, it is 
replaced by <kw>newBVar</kw>.</p></descr>
<parameters>
<param name='newBVar' type='MathMLBvarElement' attr='in'>
<descr><p>The new <kw>MathMLBvarElement</kw> 
child of this element being set.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index into the bound variable
children of this element at which <kw>newBVar</kw> is to be inserted.</p></descr>
</param>
</parameters>
<returns type='MathMLBvarElement'>
<descr><p>The <kw>MathMLBvarElement</kw> being
set.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit child 
<kw role="element">bvar</kw> elements.</p></descr></exception>
</raises>
</method>
<method name='deleteBoundVariable'>
<descr><p>This method deletes the <kw>index</kw>-th
<kw>MathMLBvarElement</kw> child of the <kw>MathMLElement</kw>. This has the
effect of removing this bound variable from the list of qualifiers
affecting the element this represents.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index into the bound variable
children of this element of the <kw>MathMLBvarElement</kw> to 
be removed.</p></descr>
</param>
</parameters>
<returns type='void'>
<descr><p>None.</p></descr></returns>
<raises>
</raises>
</method>
<method name='removeBoundVariable'>
<descr><p>This method removes the <kw>index</kw>-th
<kw>MathMLBvarElement</kw> child of the <kw>MathMLElement</kw> and returns
it to the caller. This has the effect of removing this bound variable from
the list of qualifiers affecting the element this represents.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The one-based index into the bound variable
children of this element of the <kw>MathMLBvarElement</kw> to 
be removed.</p></descr>
</param>
</parameters>
<returns type='MathMLBvarElement'>
<descr><p>The <kw>MathMLBvarElement</kw> 
being removed.</p></descr></returns>
<raises>
</raises>
</method>
</interface>

<interface name='MathMLApplyElement' inherits='MathMLContentContainer' id='dom_ApplyElement'>
<descr><p>The <intref ref="contm_apply"><kw role="element">apply</kw></intref> element allows a function or 
operator to be applied to its arguments.
</p>
<?generate-idl?>
</descr>
<attribute name='operator' type='MathMLElement' readonly='no'>
<descr><p>The MathML element representing the function or operator that is 
applied to the list of arguments.</p></descr>
</attribute>
<attribute name='lowLimit' type='MathMLElement' readonly='no'>
<descr><p>This attribute represents the <intref ref="contm_lowlimit"><kw role="element">lowlimit</kw></intref>
child element of this node (if any). This expresses, for instance, the lower limit of 
integration if this is an <kw role="element">apply</kw> element whose first 
child is a <intref ref="contm_int"><kw role="element">int</kw></intref>. See  <specref ref="contm_opwithqual"/>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit a child
<kw role="element">lowlimit</kw> element. In particular, raised if 
this element is not an <kw role="element">apply</kw> element whose first child
is an <kw role="element">int</kw>, <intref ref="contm_sum"><kw role="element">sum</kw></intref>, 
<intref ref="contm_product"><kw role="element">product</kw></intref>, or <intref ref="contm_limit"><kw role="element">limit</kw></intref> element.</p></descr></exception>
</setraises>
</attribute>
<attribute name='upLimit' type='MathMLElement' readonly='no'>
<descr><p>This attribute represents the <intref ref="contm_uplimit"><kw role="element">uplimit</kw></intref>
child element of this node (if any). This expresses, for instance, the upper limit of 
integration if this is an <kw role="element">apply</kw> element whose first 
child is a <kw role="element">int</kw>. See  <specref ref="contm_opwithqual"/>.</p></descr>
<setraises>
<exception name='DOMException'>
<descr><p>HIERARCHY_REQUEST_ERR: Raised if this element does not permit a child
<kw role="element">uplimit</kw> element. In particular, raised if 
this element is not an <kw role="element">apply</kw> element whose first child
is an <kw role="element">int</kw>, <kw role="element">sum</kw>, 
or <kw role="element">product</kw> element.</p></descr></exception>
</setraises>
</attribute>
</interface>

<interface name='MathMLFnElement' inherits='MathMLContentContainer' id='dom_FnElement'>
<descr><p>The <intref ref="contm_fn"><kw role="element">fn</kw></intref> element makes explicit the fact that 
a more general MathML object is intended to be used in the same manner as if it
were a pre-defined function such as <intref ref="contm_trig"><kw role="element">sin</kw></intref> or 
<intref ref="contm_plus"><kw role="element">plus</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='definitionURL' type='DOMString' readonly='no'>
<descr><p>A URI pointing to a definition for this function-type element. Note 
that there is no stipulation about the form this definition may take!</p></descr>
</attribute>
<attribute name='encoding' type='DOMString' readonly='no'>
<descr><p>A string describing the syntax in which the definition
located at <intref ref="contm_attrib"><kw role="attrib">definitionURL</kw></intref> is given.</p></descr>
</attribute>
</interface>

<interface name='MathMLLambdaElement' inherits='MathMLContentContainer' id='dom_LambdaElement'>
<descr><p>The <intref ref="contm_lambda"><kw role="element">lambda</kw></intref> element is used to construct a 
user-defined function from an expression and one or more free variables.
</p>
<?generate-idl?>
</descr>
<attribute name='expression' type='MathMLElement' readonly='no'>
<descr><p>The <intref ref="dom_Element"><kw>MathMLElement</kw></intref> representing the expression.
This is included only as a convenience; getting it should give the same 
result as <code>MathMLContentContainer::getArgument(1)</code>.</p></descr>
</attribute>
</interface>

<interface name='MathMLSetElement' inherits='MathMLContentContainer' id='dom_SetElement'>
<descr><p>The <intref ref="contm_set"><kw role="element">set</kw></intref> element is the container element 
that represents a set of elements. The elements of a set can be defined either
by explicitly listing the elements, or by using the 
<intref ref="contm_bvar"><kw role="element">bvar</kw></intref> and <intref ref="contm_condition"><kw role="element">condition</kw></intref> elements.
</p>
<?generate-idl?>
</descr>
<attribute name='isExplicit' type='boolean' readonly='yes'>
<descr><p>This is true if the set is specified by giving the list
of its elements explicitly.</p></descr>
</attribute>
<attribute name='type' type='DOMString' readonly='no'>
<descr><p>The <intref ref="contm_typeattrib"><kw role="attrib">type</kw></intref> attribute of 
the represented element. Predefined values are <kw role="attval">normal</kw> 
and <kw role="attval">multiset</kw>. See
<specref ref="contm_sets"/> and <specref ref="contm_attrib"/>.</p></descr>
</attribute>
</interface>

<interface name='MathMLListElement' inherits='MathMLContentContainer' id='dom_ListElement'>
<descr><p>The <intref ref="contm_list"><kw role="element">list</kw></intref> element is the container element 
which represents a list of elements. Elements can be defined either by 
explicitly listing the elements, or by using the <intref ref="contm_bvar"><kw role="element">bvar</kw></intref> 
and <intref ref="contm_condition"><kw role="element">condition</kw></intref> elements.
</p>
<?generate-idl?>
</descr>
<attribute name='isExplicit' type='boolean' readonly='yes'>
<descr><p>This is true if the list is specified 
by giving its elements explicitly.</p></descr>
</attribute>
<attribute name='ordering' type='DOMString' readonly='no'>
<descr><p>The <intref ref="contm_attrib"><kw role="attrib">order</kw></intref> attribute of 
the represented element. Predefined values are <kw role="attval">numeric</kw> 
and <kw role="attval">lexicographic</kw>. See
<specref ref="contm_sets"/> and <specref ref="contm_attrib"/>.</p></descr>
</attribute>
</interface>

<interface name='MathMLBvarElement' inherits='MathMLContentContainer' id='dom_BvarElement'>
<descr><p>This interface represents the MathML bound variable
element <intref ref="contm_bvar"><kw role="element">bvar</kw></intref>. The interface currently 
provides no functionality beyond that of <kw>MathMLContentContainer</kw>,
but is useful for defining the type of bound variable access functions.
</p>
<?generate-idl?>
</descr>
</interface>

</definitions>
</div4>

<div4><head>Content Leaf Element Interfaces</head>

<definitions>
<interface name='MathMLPredefinedSymbol' inherits='MathMLContentElement' id='dom_PredefinedSymbol'>
<descr><p>This interface supports all of the empty built-in 
operator, relation, function, and constant and symbol elements that have 
the <intref ref="contm_attrib"><kw role="attrib">definitionURL</kw></intref> and <intref ref="contm_attrib"><kw role="attrib">encoding</kw></intref> 
attributes in addition to the standard set of attributes. The elements 
supported in order of their appearance in <specref ref="contm_elem"/> are:
<intref ref="contm_inverse"><kw role="element">inverse</kw></intref>,
<intref ref="contm_compose"><kw role="element">compose</kw></intref>,
<intref ref="contm_ident"><kw role="element">ident</kw></intref>,
<intref ref="contm_domain"><kw role="element">domain</kw></intref>,
<intref ref="contm_codomain"><kw role="element">codomain</kw></intref>,
<intref ref="contm_image"><kw role="element">image</kw></intref>,
<intref ref="contm_quotient"><kw role="element">quotient</kw></intref>,
<intref ref="contm_exp"><kw role="element">exp</kw></intref>,
<intref ref="contm_factorial"><kw role="element">factorial</kw></intref>,
<intref ref="contm_divide"><kw role="element">divide</kw></intref>,
<intref ref="contm_maxmin"><kw role="element">max</kw></intref>,
<intref ref="contm_maxmin"><kw role="element">min</kw></intref>,
<intref ref="contm_minus"><kw role="element">minus</kw></intref>,
<intref ref="contm_plus"><kw role="element">plus</kw></intref>,
<intref ref="contm_power"><kw role="element">power</kw></intref>,
<intref ref="contm_rem"><kw role="element">rem</kw></intref>,
<intref ref="contm_times"><kw role="element">times</kw></intref>,
<intref ref="contm_root"><kw role="element">root</kw></intref>,
<intref ref="contm_gcd"><kw role="element">gcd</kw></intref>,
<intref ref="contm_and"><kw role="element">and</kw></intref>,
<intref ref="contm_or"><kw role="element">or</kw></intref>,
<intref ref="contm_xor"><kw role="element">xor</kw></intref>,
<intref ref="contm_not"><kw role="element">not</kw></intref>,
<intref ref="contm_implies"><kw role="element">implies</kw></intref>,
<intref ref="contm_forall"><kw role="element">forall</kw></intref>,
<intref ref="contm_exists"><kw role="element">exists</kw></intref>,
<intref ref="contm_abs"><kw role="element">abs</kw></intref>,
<intref ref="contm_conjugate"><kw role="element">conjugate</kw></intref>,
<intref ref="contm_arg"><kw role="element">arg</kw></intref>,
<intref ref="contm_real"><kw role="element">real</kw></intref>,
<intref ref="contm_imaginary"><kw role="element">imaginary</kw></intref>,
<intref ref="contm_lcm"><kw role="element">lcm</kw></intref>,
<intref ref="contm_floor"><kw role="element">floor</kw></intref>,
<intref ref="contm_ceiling"><kw role="element">ceiling</kw></intref>,
<intref ref="contm_eq"><kw role="element">eq</kw></intref>,
<intref ref="contm_neq"><kw role="element">neq</kw></intref>,
<intref ref="contm_gt"><kw role="element">gt</kw></intref>,
<intref ref="contm_lt"><kw role="element">lt</kw></intref>,
<intref ref="contm_geq"><kw role="element">geq</kw></intref>,
<intref ref="contm_leq"><kw role="element">leq</kw></intref>,
<intref ref="contm_equivalent"><kw role="element">equivalent</kw></intref>,
<intref ref="contm_approx"><kw role="element">approx</kw></intref>,
<intref ref="contm_factorof"><kw role="element">factorof</kw></intref>,
<intref ref="contm_ln"><kw role="element">ln</kw></intref>,
<intref ref="contm_log"><kw role="element">log</kw></intref>,
<intref ref="contm_int"><kw role="element">int</kw></intref>,
<intref ref="contm_diff"><kw role="element">diff</kw></intref>,
<intref ref="contm_partialdiff"><kw role="element">partialdiff</kw></intref>,
<intref ref="contm_divergence"><kw role="element">divergence</kw></intref>,
<intref ref="contm_grad"><kw role="element">grad</kw></intref>,
<intref ref="contm_curl"><kw role="element">curl</kw></intref>,
<intref ref="contm_laplacian"><kw role="element">laplacian</kw></intref>,
<intref ref="contm_union"><kw role="element">union</kw></intref>,
<intref ref="contm_intersect"><kw role="element">intersect</kw></intref>,
<intref ref="contm_in"><kw role="element">in</kw></intref>,
<intref ref="contm_notin"><kw role="element">notin</kw></intref>,
<intref ref="contm_subset"><kw role="element">subset</kw></intref>,
<intref ref="contm_prsubset"><kw role="element">prsubset</kw></intref>,
<intref ref="contm_notsubset"><kw role="element">notsubset</kw></intref>,
<intref ref="contm_notprsubset"><kw role="element">notprsubset</kw></intref>,
<intref ref="contm_setdiff"><kw role="element">setdiff</kw></intref>,
<intref ref="contm_card"><kw role="element">card</kw></intref>,
<intref ref="contm_cartesianproduct"><kw role="element">cartesianproduct</kw></intref>,
<intref ref="contm_sum"><kw role="element">sum</kw></intref>,
<intref ref="contm_product"><kw role="element">product</kw></intref>,
<intref ref="contm_limit"><kw role="element">limit</kw></intref>,
<intref ref="contm_tendsto"><kw role="element">tendsto</kw></intref>,
<intref ref="contm_trig"><kw role="element">sin</kw></intref>,
<intref ref="contm_trig"><kw role="element">cos</kw></intref>,
<intref ref="contm_trig"><kw role="element">tan</kw></intref>,
<intref ref="contm_trig"><kw role="element">sec</kw></intref>,
<intref ref="contm_trig"><kw role="element">csc</kw></intref>,
<intref ref="contm_trig"><kw role="element">cot</kw></intref>,
<intref ref="contm_trig"><kw role="element">sinh</kw></intref>,
<intref ref="contm_trig"><kw role="element">cosh</kw></intref>,
<intref ref="contm_trig"><kw role="element">tanh</kw></intref>,
<intref ref="contm_trig"><kw role="element">sech</kw></intref>,
<intref ref="contm_trig"><kw role="element">csch</kw></intref>,
<intref ref="contm_trig"><kw role="element">coth</kw></intref>,
<intref ref="contm_trig"><kw role="element">arcsin</kw></intref>,
<intref ref="contm_trig"><kw role="element">arccos</kw></intref>,
<intref ref="contm_trig"><kw role="element">arctan</kw></intref>,
<intref ref="contm_trig"><kw role="element">arcsec</kw></intref>,
<intref ref="contm_trig"><kw role="element">arccsc</kw></intref>,
<intref ref="contm_trig"><kw role="element">arccot</kw></intref>,
<intref ref="contm_trig"><kw role="element">arcsinh</kw></intref>,
<intref ref="contm_trig"><kw role="element">arccosh</kw></intref>,
<intref ref="contm_trig"><kw role="element">arctanh</kw></intref>,
<intref ref="contm_trig"><kw role="element">arcsech</kw></intref>,
<intref ref="contm_trig"><kw role="element">arccsch</kw></intref>,
<intref ref="contm_trig"><kw role="element">arccoth</kw></intref>,
<intref ref="contm_mean"><kw role="element">mean</kw></intref>,
<intref ref="contm_sdev"><kw role="element">sdev</kw></intref>,
<intref ref="contm_variance"><kw role="element">variance</kw></intref>,
<intref ref="contm_median"><kw role="element">median</kw></intref>,
<intref ref="contm_mode"><kw role="element">mode</kw></intref>,
<intref ref="contm_moment"><kw role="element">moment</kw></intref>,
<intref ref="contm_determinant"><kw role="element">determinant</kw></intref>,
<intref ref="contm_transpose"><kw role="element">transpose</kw></intref>,
<intref ref="contm_selector"><kw role="element">selector</kw></intref>,
<intref ref="contm_vectorproduct"><kw role="element">vectorproduct</kw></intref>,
<intref ref="contm_scalarproduct"><kw role="element">scalarproduct</kw></intref>,
<intref ref="contm_outerproduct"><kw role="element">outerproduct</kw></intref>,
<intref ref="contm_integers"><kw role="element">integers</kw></intref>,
<intref ref="contm_rationals"><kw role="element">reals</kw></intref>,
<intref ref="contm_rationals"><kw role="element">rationals</kw></intref>,
<intref ref="contm_naturalnumbers"><kw role="element">naturalnumbers</kw></intref>,
<intref ref="contm_complexes"><kw role="element">complexes</kw></intref>,
<intref ref="contm_primes"><kw role="element">primes</kw></intref>,
<intref ref="contm_exponentiale"><kw role="element">exponentiale</kw></intref>,
<intref ref="contm_imaginaryi"><kw role="element">imaginaryi</kw></intref>,
<intref ref="contm_notanumber"><kw role="element">notanumber</kw></intref>,
<intref ref="contm_true"><kw role="element">true</kw></intref>,
<intref ref="contm_false"><kw role="element">false</kw></intref>,
<intref ref="contm_emptyset"><kw role="element">emptyset</kw></intref>,
<intref ref="contm_pi"><kw role="element">pi</kw></intref>,
<intref ref="contm_eulergamma"><kw role="element">eulergamma</kw></intref>, and
<intref ref="contm_infinity"><kw role="element">infinity</kw></intref>.
</p>
<?generate-idl?>
</descr>
<attribute name='definitionURL' type='DOMString' readonly='no'>
<descr><p>A string that provides an override to the default semantics, or 
provides a more specific definition</p></descr>
</attribute>
<attribute name='encoding' type='DOMString' readonly='no'>
<descr><p>A string describing the syntax in which the definition
located at <kw role="attrib">definitionURL</kw> is given.</p></descr>
</attribute>
<attribute name='arity' type='DOMString' readonly='yes'>
<descr><p>A string representing the number of arguments. Values include 
0, 1, ... and <kw>variable</kw>.</p></descr>
</attribute>
<attribute name='symbolName' type='DOMString' readonly='yes'>
<descr><p>A string giving the name of the MathML element represented.
This is a convenience attribute only; accessing it should be synonymous with
accessing the <kw>Element::tagName</kw> attribute.</p></descr>
</attribute>
</interface>

</definitions>
</div4>

<div4><head>Other Content Element Interfaces</head>
<definitions>
<interface name='MathMLIntervalElement' inherits='MathMLContentElement' id='dom_IntervalElement'>
<descr><p>The <intref ref="contm_interval"><kw role="element">interval</kw></intref> element is used to represent 
simple mathematical intervals on the real number line. It contains either two 
child elements that evaluate to real numbers or one child element that is a 
condition for defining membership in the interval.
</p>
<?generate-idl?>
</descr>
<attribute name='closure' type='DOMString' readonly='no'>
<descr><p>A string with value <kw role="attval">open</kw>,
<kw role="attval">closed</kw>,
<kw role="attval">open-closed</kw> or
<kw role="attval">closed-open</kw>.
The default value is <kw role="attval">closed</kw>.</p></descr>
</attribute>
<attribute name='start' type='MathMLContentElement' readonly='no'>
<descr><p>A <intref ref="dom_ContentElement"><kw>MathMLContentElement</kw></intref> representing the real number defining
the start of the interval. If <kw>end</kw> has not already been 
set, it becomes the same as <kw>start</kw> until set otherwise.</p></descr>
</attribute>
<attribute name='end' type='MathMLContentElement' readonly='no'>
<descr><p>A <kw>MathMLContentElement</kw> representing the real number defining
the end of the interval. If <kw>start</kw> has not
already been set, it becomes the same as <kw>end</kw> until set otherwise. </p></descr>
</attribute>
</interface>

<interface name='MathMLConditionElement' inherits='MathMLContentElement' id='dom_ConditionElement'>
<descr><p>The <intref ref="contm_condition"><kw role="element">condition</kw></intref> element is used to place a 
condition on one or more free variables or identifiers.
</p>
<?generate-idl?>
</descr>
<attribute name='condition' type='MathMLApplyElement' readonly='no'>
<descr><p>A <intref ref="dom_ApplyElement"><kw>MathMLApplyElement</kw></intref> that represents the condition.</p></descr>
</attribute>
</interface>

<interface name='MathMLDeclareElement' inherits='MathMLContentElement' id='dom_DeclareElement'>
<descr><p>The <intref ref="contm_declare"><kw role="element">declare</kw></intref> construct has two primary roles. 
The first is to change or set the default attribute values for a specific 
mathematical object. The second is to establish an association between a 
<quote>name</quote> and an object.
</p>
<?generate-idl?>
</descr>
<attribute name='type' type='DOMString' readonly='no'>
<descr><p>A string indicating the type of the identifier. It must be compatible
with the type of the <kw>constructor</kw>, if a <kw>constructor</kw> is 
present. The type is inferred from the <kw>constructor</kw> if present, 
otherwise it must be specified.</p></descr>
</attribute>
<attribute name='nargs' type='unsigned long' readonly='no'>
<descr><p>If the identifier is a function, this attribute 
specifies the number of arguments the function takes. This represents the 
<kw role="element">declare</kw> element's <intref ref="contm_attrib"><kw role="attrib">nargs</kw></intref> attribute;
see <specref ref="contm_declare"/>.</p></descr>
</attribute>
<attribute name='occurrence' type='DOMString' readonly='no'>
<descr><p>A string with the values <kw role="attval"> prefix</kw>, 
<kw role="attval">infix</kw>, <kw role="attval">postfix</kw>, or 
<kw role="attval">function-model</kw>.</p></descr>
</attribute>
<attribute name='definitionURL' type='DOMString' readonly='no'>
<descr><p>A URI specifying the detailed semantics of the
element.</p></descr>
</attribute>
<attribute name='encoding' type='DOMString' readonly='no'>
<descr><p>A description of the syntax used in 
<intref ref="contm_attrib"><kw role="attrib">definitionURL</kw></intref>.</p></descr>
</attribute>
<attribute name='identifier' type='MathMLCiElement' readonly='no'>
<descr><p>A <intref ref="dom_CiElement"><kw>MathMLCiElement</kw></intref> representing the name being declared.</p></descr>
</attribute>
<attribute name='constructor' type='MathMLElement' readonly='no'>
<descr><p>An optional <intref ref="dom_Element"><kw>MathMLElement</kw></intref> 
providing an initial value for the object being declared.</p></descr>
</attribute>
</interface>

<interface name='MathMLVectorElement' inherits='MathMLContentElement' id='dom_VectorElement'>
<descr><p><intref ref="contm_vector"><kw role="element">vector</kw></intref> is the container element for a 
vector.
</p>
<?generate-idl?>
</descr>
<attribute name='ncomponents' type='unsigned long' readonly='yes'>
<descr><p>The number of components in the vector.</p></descr>
</attribute>
<method name='getComponent'>
<descr><p>A convenience method to retrieve a component.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the component in the list of components. The first 
element is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> component at 
the position specified by <kw>index</kw>. If <kw>index</kw> is not a valid 
index (i.e. is greater than the number of components of the vector or less 
than 1), a <kw>null MathMLContentElement</kw> is returned.</p></descr></returns>
<raises>
</raises>
</method>
<method name='insertComponent'>
<descr><p>A convenience method to insert a new component
in the vector before the current <kw>index</kw>-th component. If <kw>index</kw> is 0 or is one more than the number of components currently in the
vector, <kw>newComponent</kw> is appended as the last component of the
vector.</p></descr>
<parameters>
<param name='newComponent' type='MathMLContentElement' attr='in'>
<descr><p>A <kw>MathMLContentElement</kw> representing 
the component that is to be added.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the component in the list of 
components. The first component is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> child 
of this <kw>MathMLVectorElement</kw> representing the new component in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than one more than the current number of components of this <kw role="element">
vector</kw> element.</p></descr></exception>
</raises>
</method>
<method name='setComponent'>
<descr><p>A convenience method to set the <kw>index</kw>-th 
component of the vector to <kw>newComponent</kw>. If <kw>index</kw> is one 
more than the current number of components, <kw>newComponent</kw> is 
appended as the last component.</p></descr>
<parameters>
<param name='newComponent' type='MathMLContentElement' attr='in'>
<descr><p>A <kw>MathMLContentElement</kw> representing
the element that is to be the <kw>index</kw>-th component of the vector.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the component in the list of 
components. The first element is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> child 
of this <kw>MathMLVectorElement</kw> that represents the new component in
the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than one more than the current number of components of this <kw role="element">
vector</kw> element.</p></descr></exception>
</raises>
</method>
<method name='deleteComponent'>
<descr><p>A convenience method to delete an element. The 
deletion changes the indices of the following components.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the component in the vector. 
The position of the first component is 1</p></descr>
</param>
</parameters>
<returns type=''>
<descr><p>None</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the current number of components of this <kw role="element">vector</kw> 
element.</p></descr></exception>
</raises>
</method>
<method name='removeComponent'>
<descr><p>A convenience method to remove a component from 
a vector and return it to the caller. If index is greater than the number of
components or is 0, a <kw>null MathMLContentElement</kw> is returned.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the component in the list of 
components. The first element is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> component 
being removed.</p></descr></returns>
<raises>
</raises>
</method>
</interface>

<interface name='MathMLMatrixElement' inherits='MathMLContentElement' id='dom_MatrixElement'>
<descr><p>The <intref ref="contm_matrix"><kw role="element">matrix</kw></intref> element is the container element 
for <intref ref="contm_matrixrow"><kw role="element">matrixrow</kw></intref> elements. 
</p>
<?generate-idl?>
</descr>
<attribute name='nrows' type='unsigned long' readonly='yes'>
<descr><p>The number of rows in the represented matrix.</p></descr>
</attribute>
<attribute name='ncols' type='unsigned long' readonly='yes'>
<descr><p>The number of columns in the represented matrix.</p></descr>
</attribute>
<attribute name='rows' type='MathMLNodeList' readonly='yes'>
<descr><p>The rows of the matrix, returned as a
<kw>MathMLNodeList</kw> consisting of <kw>MathMLMatrixrowElements</kw>.</p></descr>
</attribute>
<method name='getRow'>
<descr><p>A convenience method to retrieve a specified row.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the row in the list of rows. 
The first row is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLMatrixrowElement'>
<descr><p>The <intref ref="dom_MatrixrowElement"><kw>MathMLMatrixrowElement</kw></intref> representing the 
<kw>index</kw>-th row.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of rows in the matrix.</p></descr></exception>
</raises>
</method>
<method name='insertRow'>
<descr><p>A convenience method to insert a row before
the row that is currently the <kw>index</kw>-th row of this <kw role="element">
matrix</kw>. If <kw>index</kw> is 0, <kw>newRow</kw> is appended as the 
last row of the matrix.</p></descr>
<parameters>
<param name='newRow' type='MathMLMatrixrowElement' attr='in'>
<descr><p><kw>MathMLMatrixrowElement</kw>
to be inserted into the matrix.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Unsigned integer giving the row position 
before which <kw>newRow</kw> is to be inserted. The first row is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLMatrixrowElement'>
<descr><p>The <kw>MathMLMatrixrowElement</kw> added. 
This is the new element within the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than one more than the number of rows in the matrix.</p>
<p>HIERARCHY_REQUEST_ERR: Raised if the number of cells in 
<kw>newRow</kw> doesn't match the number of columns in the matrix.</p></descr></exception>
</raises>
</method>
<method name='setRow'>
<descr><p>A convenience method to set the value of
the <kw>index</kw>-th child <kw role="element">matrixrow</kw> element of 
this element. If there is already a row at the specified index, it is 
replaced by <kw>newRow</kw>.</p></descr>
<parameters>
<param name='newRow' type='MathMLMatrixrowElement' attr='in'>
<descr><p><kw>MathMLMatrixrowElement</kw>
representing the <kw role="element">matrixrow</kw>
which is to become the <kw>index</kw>-th row of the matrix.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Unsigned integer giving the row 
which is to be set to <kw>newRow</kw>. The first row is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLMatrixrowElement'>
<descr><p>The <kw>MathMLMatrixrowElement</kw>
child of this <kw>MathMLMatrixrowElement</kw> representing <kw>newRow</kw>
within the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of rows in the matrix.</p>
<p>HIERARCHY_REQUEST_ERR: Raised if the number of cells in 
<kw>newRow</kw> doesn't match the number of columns in the matrix.</p></descr></exception>
</raises>
</method>
<method name='deleteRow'>
<descr><p>A convenience method to delete a row. The deletion changes the 
indices of the following rows.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the row to be deleted in the list of rows</p></descr>
</param>
</parameters>
<returns type=''>
<descr><p>None</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of rows in the matrix.</p></descr></exception>
</raises>
</method>
<method name='removeRow'>
<descr><p>A convenience method to remove a row and return it
to the caller. The deletion changes the indices of the following rows.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the row to be removed in 
the list of rows. The first row is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLMatrixrowElement'>
<descr><p>The <kw>MathMLMatrixrowElement</kw> 
being removed.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of rows in the matrix.</p></descr></exception>
</raises>
</method>
</interface>

<interface name='MathMLMatrixrowElement' inherits='MathMLContentElement' id='dom_MatrixrowElement'>
<descr><p>The <intref ref="contm_matrixrow"><kw role="element">matrixrow</kw></intref> element is the container 
element for the elements of a <intref ref="contm_matrix"><kw role="element">matrix</kw></intref>. 
</p>
<?generate-idl?>
</descr>
<attribute name='nEntries' type='unsigned long' readonly='yes'>
<descr><p>The number of entries in the row.</p></descr>
</attribute>
<method name='getEntry'>
<descr><p>A convenience method to retrieve the contents of 
an entry by index.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the entry in the row. The 
first entry is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> element 
representing the <kw>index</kw>-th entry in the row.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of entries in the row.</p></descr></exception>
</raises>
</method>
<method name='insertEntry'>
<descr><p>A convenience method to insert an entry before the
current <kw>index</kw>-th entry of the row. If <kw>index</kw> is 0, <kw>newEntry</kw> is appended as the last entry. Note that this method increases
the size of the <kw role="element">matrixrow</kw>.</p></descr>
<parameters>
<param name='newEntry' type='MathMLContentElement' attr='in'>
<descr><p>The <kw>MathMLContentElement</kw> to be 
representing the new entry to be inserted into the row.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The index before which <kw>newEntry</kw> is 
to be inserted in the row. The first entry is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> child of
this <kw>MathMLMatrixrowElement</kw> representing <kw>newEntry</kw> in the
DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of entries in the row.</p></descr></exception>
</raises>
</method>
<method name='setEntry'>
<descr><p>A convenience method to set the contents of the
entry at position <kw>index</kw> in the row to <kw>newEntry</kw>. If there is 
already a entry at the specified index, it is replaced by the new 
entry.</p></descr>
<parameters>
<param name='newEntry' type='MathMLContentElement' attr='in'>
<descr><p>The <kw>MathMLContentElement</kw> representing 
the element that is to be the <kw>index</kw>-th entry.</p></descr>
</param>
<param name='index' type='unsigned long' attr='in'>
<descr><p>The index of the entry that is to be
set equal to <kw>newEntry</kw>. The first entry is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> child
of this <kw>MathMLMatrixRowElement</kw> representing <kw>newEntry</kw> in
the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than one more than the number of elements in the row.</p></descr></exception>
</raises>
</method>
<method name='deleteEntry'>
<descr><p>A convenience method to delete an entry. The 
deletion changes the indices of the following entries.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the entry to be deleted 
in the row. The first entry is numbered 1.</p></descr>
</param>
</parameters>
<returns type=''>
<descr><p>None</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of entries in the row.</p></descr></exception>
</raises>
</method>
<method name='removeEntry'>
<descr><p>A convenience method to remove an entry from the
row and return the removed entry to the caller.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the entry to be removed 
from the row. The first entry is numbered 1.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> being removed 
from the row.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of entries in the row.</p></descr></exception>
</raises>
</method>
</interface>

<interface name='MathMLPiecewiseElement' inherits='MathMLContentElement' id='dom_PiecewiseElement'>
<descr><p>The <intref ref="contm_piecewise"><kw role="element">piecewise</kw></intref> element represents
the piecewise definition of a function. It contains child <intref ref="contm_piecewise"><kw role="element">piece</kw></intref> elements, each
represented by a <intref ref="dom_CaseElement"><kw>MathMLCaseElement</kw></intref>, giving the various conditions and
associated function value specifications in the function definition, and
an optional <intref ref="contm_piecewise"><kw role="element">otherwise</kw></intref> child element, represented by a
<kw>MathMLContentElement</kw>, giving the <quote>default</quote> value of the
function - that is, the value to be assigned when none of the conditions specified in
the <kw role="element">piece</kw> child elements hold.</p>
<?generate-idl?>
</descr>
<attribute name='pieces' type='MathMLNodeList' readonly='yes'>
<descr><p>A <intref ref="dom_NodeList"><kw>MathMLNodeList</kw></intref> containing one <kw>MathMLCaseElement</kw>
representing each of the <kw role="element">piece</kw> element children of this
<kw>MathMLPiecewiseElement</kw>. The <kw role="element">otherwise</kw>
child (if present) is not contained in this <kw>MathMLNodeList</kw>.</p></descr>
</attribute>
<attribute name='otherwise' type='MathMLContentElement' readonly='no'>
<descr><p>Returns a <kw>MathMLContentElement</kw> representing the value
to be taken by the piecewise function when none of the conditions described in the
<kw role="element">piece</kw> children is true.</p></descr>
</attribute>
<method name='getCase'>
<descr><p>A convenience method to retrieve the child <kw role="element">piece</kw>
at the position referenced by <kw>index</kw>.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of desired case in the list of cases.
The first piece is numbered 1; the <kw role="element">otherwise</kw>
child (if present) is not counted, regardless of its position. If <kw>index</kw> is
greater than the number of <kw role="element">pieces</kw>, a null <kw>MathMLCaseElement</kw>
is returned; no error is generated.</p></descr>
</param>
</parameters>
<returns type='MathMLCaseElement'>
<descr><p>The <kw>MathMLCaseElement</kw> retrieved.</p></descr></returns>
<raises>
</raises>
</method>
<method name='setCase'>
<descr><p>A convenience method to set the value of the child <kw role="element">piece</kw>
at the position referenced by <kw>index</kw> to the value of <kw>case</kw>.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the <kw role="element">piece</kw> to be set
to <kw>case</kw>. The first piece is numbered 1; the <kw role="element">otherwise</kw>
child (if present) is not counted, regardless of its position. If there is currently
a <kw role="element">piece</kw> at this position, it will be replaced by <kw>case</kw>.
If <kw>index</kw> is one more than the number of <kw role="element">piece</kw> child elements,
a new one will be appended.</p></descr>
</param>
<param name='case' type='MathMLCaseElement' attr='in'>
<descr><p>A <kw>MathMLCaseElement</kw> representing the
new value of the <kw>index</kw>th <kw role="element">piece</kw> child.</p></descr>
</param>
</parameters>
<returns type='MathMLCaseElement'>
<descr><p>The new <kw>MathMLCaseElement</kw> created.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than
one more than the number of <kw role="element">pieces</kw> in this element.</p></descr></exception>
</raises>
</method>
<method name='deleteCase'>
<descr><p>A convenience method to delete the child <kw role="element">piece</kw>
at the position referenced by <kw>index</kw>. The deletion changes the indices of 
the following <kw role="element">pieces</kw>.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the piece to be deleted. The first 
piece is numbered 1; the <kw role="element">otherwise</kw> child (if present) 
is not counted, regardless of its position.</p></descr>
</param>
</parameters>
<returns type='void'>
<descr><p>None.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than
the number of <kw role="element">pieces</kw> in this element.</p></descr></exception>
</raises>
</method>
<method name='removeCase'>
<descr><p>A convenience method to remove the child <kw role="element">piece</kw>
at the position referenced by <kw>index</kw> and return it to the caller. The removal
changes the indices of the following <kw role="element">pieces</kw>.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the piece to be removed. The first 
piece is numbered 1; the <kw role="element">otherwise</kw> child (if present)
is not counted, regardless of its position.</p></descr>
</param>
</parameters>
<returns type='MathMLCaseElement'>
<descr><p>The <kw>MathMLCaseElement</kw> removed.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater than
the number of <kw role="element">pieces</kw> in this element.</p></descr></exception>
</raises>
</method>
<method name='insertCase'>
<descr><p>A convenience method to insert a new <kw role="element">piece</kw> child
into this element.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position before which <kw>case</kw> is to be inserted. If <kw>index</kw>
is 0, <kw>newCase</kw> is appended as the last <kw role="element">piece</kw> child of
this element. The <kw role="element">otherwise</kw> child (if present) is not counted,
regardless of its position.</p></descr>
</param>
<param name='newCase' type='MathMLCaseElement' attr='in'>
<descr><p>A <kw>MathMLCaseElement</kw> representing the
<kw role="element">piece</kw> to be inserted.</p></descr>
</param>
</parameters>
<returns type='MathMLCaseElement'>
<descr><p>The new <kw>MathMLCaseElement</kw> inserted. This is the
actual <kw>Element</kw> in the DOM.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
one more than the number of <kw role="element">pieces</kw> in this element.</p></descr></exception>
</raises>
</method>
<method name='getCaseValue'>
<descr><p>A convenience method to retrieve the child of the <kw>index</kw>th 
<kw role="element">piece</kw> in this element which specifies the function value for that case.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the <kw role="element">piece</kw> whose value is being
requested in the list of pieces. The first piece is numbered 1; the <kw role="element">otherwise</kw>
child (if present) is not counted, regardless of its position.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> representing the value
to be taken by the function in the <kw>index</kw>th case.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of <kw role="element">pieces</kw> in this element.</p></descr></exception>
</raises>
</method>
<method name='setCaseValue'>
<descr><p>A convenience method to set the function value for the <kw>index</kw>th 
<kw role="element">piece</kw> in this element.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the <kw role="element">piece</kw> whose value is being
set in the list of pieces. The first piece is numbered 1; the <kw role="element">otherwise</kw>
child (if present) is not counted, regardless of its position.</p></descr>
</param>
<param name='value' type='MathMLContentElement' attr='in'>
<descr><p>A <kw>MathMLContentElement</kw> representing the function
value to be assigned in the <kw>index</kw>th case.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> representing the value
to be taken by the function in the <kw>index</kw>th case.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of <kw role="element">pieces</kw> in this element.</p></descr></exception>
</raises>
</method>
<method name='getCaseCondition'>
<descr><p>A convenience method to retrieve the child of the <kw role="element">piece</kw>
at the position referenced by <kw>index</kw> which gives the condition for this case.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the <kw role="element">piece</kw> whose condition 
is being requested in the list of pieces. The first piece is numbered 1; the <kw role="element">otherwise</kw>
child (if present) is not counted, regardless of its position.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> representing the condition
to be satisfied for the <kw>index</kw>th case.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of <kw role="element">pieces</kw> in this element.</p></descr></exception>
</raises>
</method>
<method name='setCaseCondition'>
<descr><p>A convenience method to set the condition for the <kw>index</kw>th 
<kw role="element">piece</kw> in this element.</p></descr>
<parameters>
<param name='index' type='unsigned long' attr='in'>
<descr><p>Position of the <kw role="element">piece</kw> whose condition is being
set in the list of pieces. The first piece is numbered 1; the <kw role="element">otherwise</kw>
child (if present) is not counted, regardless of its position.</p></descr>
</param>
<param name='condition' type='MathMLContentElement' attr='in'>
<descr><p>A <kw>MathMLContentElement</kw> representing the condition
to be associated to the <kw>index</kw>th case.</p></descr>
</param>
</parameters>
<returns type='MathMLContentElement'>
<descr><p>The <kw>MathMLContentElement</kw> which is inserted as the
condition child of the <kw>index</kw>th <kw role="element">piece</kw>.</p></descr></returns>
<raises>
<exception name='DOMException'>
<descr><p>INDEX_SIZE_ERR: Raised if <kw>index</kw> is greater 
than the number of <kw role="element">pieces</kw> in this element.</p></descr></exception>
</raises>
</method>
</interface>

<interface name='MathMLCaseElement' inherits='MathMLContentElement' id='dom_CaseElement'>
<descr><p>The <intref ref="contm_piecewise"><kw role="element">piece</kw></intref> element represents
one of a sequence of cases used in the piecewise definition of a function. It contains two child
elements, each represented by a <kw>MathMLContentElement</kw>. The first child determines
the subset of the domain affected, normally by giving a condition to be satisfied. The second 
gives the value of the function over the indicated subset of its domain. </p>
<?generate-idl?>
</descr>
<attribute name='caseCondition' type='MathMLContentElement' readonly='no'>
<descr><p>Accesses the <kw>MathMLContentElement</kw> representing the condition
to be satisfied in order for this branch of the piecewise definition to be used.</p></descr>
</attribute>
<attribute name='caseValue' type='MathMLContentElement' readonly='no'>
<descr><p>Accesses the <kw>MathMLContentElement</kw> representing the value
to be taken by the piecewise function when the condition described by <kw>caseCondition</kw> is true.</p></descr>
</attribute>
</interface>

</definitions>
</div4>
</div3>
</div2>

<div2 id="dom_domTables"><head>MathML DOM Tables</head>
<div3 id="dom_inheritanceChart"><head>Chart of MathML DOM Inheritance</head>
<?generate-domInheritance?>
</div3>

<div3 id="dom_elementTable"><head>Table of Elements and MathML DOM Representations</head>
  <table border="1"><thead><tr><td rowspan="1" colspan="1">MathML Element</td><td rowspan="1" colspan="1">MathML DOM Interface</td></tr></thead><tbody><tr>
    <td rowspan="1" colspan="1"><intref ref="interf_toplevel">math</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_MathElement">MathMLMathElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mi">mi</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PresentationToken">MathMLPresentationToken</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mn">mn</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PresentationToken">MathMLPresentationToken</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mo">mo</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_OperatorElement">MathMLOperatorElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mtext">mtext</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PresentationToken">MathMLPresentationToken</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mspace">mspace</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_SpaceElement">MathMLSpaceElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_ms">ms</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_StringLitElement">MathMLStringLitElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mglyph">mglyph</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_GlyphElement">MathMLGlyphElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mrow">mrow</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PresentationContainer">MathMLPresentationContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mfrac">mfrac</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_FractionElement">MathMLFractionElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mroot">msqrt</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_RadicalElement">MathMLRadicalElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mroot">mroot</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_RadicalElement">MathMLRadicalElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mstyle">mstyle</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_StyleElement">MathMLStyleElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_merror">merror</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PresentationContainer">MathMLPresentationContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mpadded">mpadded</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PaddedElement">MathMLPaddedElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mphantom">mphantom</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PresentationContainer">MathMLPresentationContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mfenced">mfenced</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_FencedElement">MathMLFencedElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_menclose">menclose</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_EncloseElement">MathMLEncloseElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_msub">msub</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ScriptElement">MathMLScriptElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_msup">msup</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ScriptElement">MathMLScriptElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_msubsup">msubsup</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ScriptElement">MathMLScriptElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_munder">munder</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_UnderOverElement">MathMLUnderOverElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mover">mover</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_UnderOverElement">MathMLUnderOverElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_munderover">munderover</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_UnderOverElement">MathMLUnderOverElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mmultiscripts">mmultiscripts</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_MultiScriptsElement">MathMLMultiScriptsElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mtable">mtable</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_TableElement">MathMLTableElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mlabeledtr">mlabeledtr</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_LabeledRowElement">MathMLLabeledRowElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mtr">mtr</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_TableRowElement">MathMLTableRowElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_mtd">mtd</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_TableCellElement">MathMLTableCellElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_malign">maligngroup</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_AlignGroupElement">MathMLAlignGroupElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_malign">malignmark</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_AlignMarkElement">MathMLAlignMarkElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="presm_maction">maction</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ActionElement">MathMLActionElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_cn">cn</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_CnElement">MathMLCnElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_ci">ci</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_CiElement">MathMLCiElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_csymbol">csymbol</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_CsymbolElement">MathMLCsymbolElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_apply">apply</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ApplyElement">MathMLApplyElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_reln">reln</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ContentContainer">MathMLContentContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_fn">fn</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_FnElement">MathMLFnElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_interval">interval</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_IntervalElement">MathMLIntervalElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_inverse">inverse</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_condition">condition</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ConditionElement">MathMLConditionElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_declare">declare</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_DeclareElement">MathMLDeclareElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_lambda">lambda</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_LambdaElement">MathMLLambdaElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_compose">compose</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_ident">ident</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_domain">domain</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_codomain">codomain</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_image">image</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_domainofapplication">domainofapplication</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ContentContainer">MathMLContentContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_piecewise">piecewise</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PiecewiseElement">MathMLPiecewiseElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_piecewise">piece</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_CaseElement">MathMLCaseElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_piecewise">otherwise</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ContentContainer">MathMLContentContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_quotient">quotient</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_exp">exp</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_factorial">factorial</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_divide">divide</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_maxmin">max</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_maxmin">min</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_minus">minus</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_plus">plus</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_power">power</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_rem">rem</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_times">times</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_root">root</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_gcd">gcd</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_and">and</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_or">or</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_xor">xor</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_not">not</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_implies">implies</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_forall">forall</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_exists">exists</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_abs">abs</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_conjugate">conjugate</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_arg">arg</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_real">real</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_imaginary">imaginary</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_lcm">lcm</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_floor">floor</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_ceiling">ceiling</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_eq">eq</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_neq">neq</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_gt">gt</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_lt">lt</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_geq">geq</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_leq">leq</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_equivalent">equivalent</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_approx">approx</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_factorof">factorof</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_int">int</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_diff">diff</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_partialdiff">partialdiff</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_lowlimit">lowlimit</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ContentContainer">MathMLContentContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_uplimit">uplimit</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ContentContainer">MathMLContentContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_bvar">bvar</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_BvarElement">MathMLBvarElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_degree">degree</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ContentContainer">MathMLContentContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_divergence">divergence</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_grad">grad</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_curl">curl</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_laplacian">laplacian</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_set">set</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_SetElement">MathMLSetElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_list">list</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ListElement">MathMLListElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_union">union</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_intersect">intersect</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_in">in</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_notin">notin</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_subset">subset</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_prsubset">prsubset</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_notsubset">notsubset</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_notprsubset">notprsubset</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_setdiff">setdiff</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_card">card</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_cartesianproduct">cartesianproduct</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_sum">sum</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_product">product</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_limit">limit</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_tendsto">tendsto</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_exp">exp</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_ln">ln</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_log">log</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">sin</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">cos</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">tan</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">sec</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">csc</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">cot</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">sinh</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">cosh</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">tanh</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">sech</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">csch</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">coth</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arcsin</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arccos</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arctan</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arccosh</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arccot</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arccoth</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arccsc</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arccsch</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arcsec</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arcsech</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arcsinh</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_trig">arctanh</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_mean">mean</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_sdev">sdev</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_variance">variance</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_median">median</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_mode">mode</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_moment">moment</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_momentabout">momentabout</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_ContentContainer">MathMLContentContainer</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_vector">vector</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_VectorElement">MathMLVectorElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_matrix">matrix</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_MatrixElement">MathMLMatrixElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_matrixrow">matrixrow</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_MatrixrowElement">MathMLMatrixRowElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_determinant">determinant</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_transpose">transpose</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_selector">selector</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_vectorproduct">vectorproduct</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_scalarproduct">scalarproduct</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_outerproduct">outerproduct</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_annotation">annotation</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_AnnotationElement">MathMLAnnotationElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_semantics">semantics</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_SemanticsElement">MathMLSemanticsElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_annotation-xml">annotation-xml</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_XMLAnnotationElement">MathMLXMLAnnotationElement</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_integers">integers</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_reals">reals</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_rationals">rationals</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_naturalnumbers">naturalnumbers</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_complexes">complexes</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_primes">primes</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_exponentiale">exponentiale</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_imaginaryi">imaginaryi</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_notanumber">notanumber</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_true">true</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_false">false</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_emptyset">emptyset</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_pi">pi</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_eulergamma">eulergamma</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr><tr>
    <td rowspan="1" colspan="1"><intref ref="contm_infinity">infinity</intref></td>
    <td rowspan="1" colspan="1"><intref ref="dom_PredefinedSymbol">MathMLPredefinedSymbol</intref></td></tr></tbody></table>
</div3>
</div2>
</div1>
