The <mathmlref> element references a non-DITA XML document that contains MathML markup.

Usage information

The <mathmlref> element enables the use MathML markup by reference. The reference must be to a MathML <math> element. The reference can be one of the following:

  • A URI that addresses an XML document. The XML document has a MathML <math> element as the root element.
  • A URI that addresses an XML document and contains a fragment identifier that is the XML ID of a <math> element within the document.

The reference can be direct, using the @href attribute, or indirect, using the @keyref attribute. For indirect referencing, only the key name should be specified. The ID of the <math> element must be specified as part of the value for the @href attribute on the key definition.

For example, to refer to the <math> element with the @id of math-fragment-02 within a larger document using a key reference, you would define the key in the following way:

<keydef keys="math-fragment-0002" href="mathml/mathml-library.xml#math-fragment-02"/>

You reference this key by using just the key name:

<mathref keyref="math-fragment-0002"/>

Processing expectations

Processors SHOULD process the MathML as though the <m:math> element occurs directly in the content of the containing <mathml> element.

Specialization hierarchy

The <mathmlref> element is specialized from <include>. It is defined in the MathML domain module.


The following attributes are available on this element: inclusion attributes, universal attributes, @format, @href, @keyref, and @scope.

For this element:
  • The @format attribute has a default value of mml.
  • The @href attribute is a reference to a MathML document or <mathml> element. If the <mathml> element is the root element of the referenced resource, then no fragment identifier is required. Otherwise, a fragment identifier must be specified, where the fragment identifier is the XML ID of the <mathml> element.
  • The @parse attribute has a default value of xml.


This section contains examples of how the <mathmlref> element can be used.

Figure 1. Referencing a MathML <math> root element

The following code sample shows how a <mathmlref> element can be used to reference a MathML <math> element that is the root element of its containing document:

    <mathmlref href="../mathml-source/mathml-root-mathml.mml"/>

The mathml-root-mathml.mml file contains the following content. Note that the <math> element sets the MathML namespace as the default namespace, so there are no namespace prefixes on the MathML markup.

<?xml version="1.0" encoding="UTF-8"?>
<math xmlns="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
  <mstyle displaystyle="false" scriptlevel="0">
          <mi mathcolor="gray">sin</mi>
          <mo rspace="verythinmathspace"/>                    
Figure 2. Referencing a specific <math> element within a document

The following code sample shows how a <mathmlref> element can reference a specific <math> element in a containing XML file:

    <mathmlref href="../mathml-source/mathml-equation-library.xml#mathfrag-02"/>

The mathml-equation-library.xml file contains the following content:

<?xml version="1.0" encoding="UTF-8"?>
    <math id="timeinday" xmlns="http://www.w3.org/1998/Math/MathML">
    <math id="mathfrag-02" xmlns="http://www.w3.org/1998/Math/MathML">
  <!-- ... -->