MathML

MathML can be used in JATS. By default, JATS uses "mml" as the namespace prefix for MathML elements.

Updating JATS 1.0 to MathML 3
The public schemas for JATS 1.0 included MathML version 2 when released. MathML 3 is backwards compatible with MathML 2, and it is fairly easy to swap in MathML 3. This is a short guide to add MathML 3 to JATS 1.0. Hopefully the next version of JATS will include MathML3.

Using the DTD
1. Get the MathML3 DTD .zip from http://www.w3.org/Math/DTD/

2. Extract to create folder mathml3-dtd in your folder containing the JATS DTD.

3. In your custom-modules file add:

<!ENTITY % mathmlsetup.ent PUBLIC "-//NLM//DTD JATS (Z39.96) JATS DTD Suite MathML Setup Module v1.0 20120330//EN" "JATS-mathmlsetup1.ent" >

<!ENTITY % mathml-qname.mod PUBLIC "-//W3C//ENTITIES MathML 3.0 Qualified Names 1.0//EN" "mathml3-dtd/mathml3-qname.mod" >

<!ENTITY % mathml.dtd  PUBLIC "-//W3C//DTD MathML 3.0//EN" "mathml3-dtd/mathml3.dtd" >

<!ENTITY % ent-mmlextra PUBLIC "-//W3C//ENTITIES Additional MathML Symbols//EN//XML" "mathml3-dtd/mmlextra.ent" >

<!ENTITY % ent-mmlalias PUBLIC "-//W3C//ENTITIES MathML Aliases//EN//XML" "mathml3-dtd/mmlalias.ent" >

<!ENTITY % Schema.prefix        "xsi" > <!ENTITY % Schema.xmlns "http://www.w3.org/2001/XMLSchema-instance" > <!ENTITY % Schema.xmlns.attrib "xmlns:%Schema.prefix; CDATA           #IMPLIED" >

4. A small edit is required to rename a parameter entity that is defined in both the JATS DTD and the MathML DTD. Edit mathml3.dtd, and rename "product.class" to "mml.product.class" in two places:

Line 190: <!ENTITY % mml.product.class "%product.qname;"> Line 272: |%unary-set.class;|%sum.class;|%mml.product.class;

5. In your catalog file add this (or similar):

  

Using the XML Schema
1. Get the MathML3 XSD .zip from http://www.w3.org/Math/XMLSchema/

2. Extract to create folder mathml3-xsd in your folder containing the JATS XSD.

3. In JATS-archivearticle1.xsd replace the import for MathML with:



Using the RelaxNG
1. Get the MathML3 RNG .zip from http://www.w3.org/Math/RelaxNG/

2. Extract to create folder mathml3 in your folder containing the JATS RNG.

3. In JATS-mathmlsetup1.ent.rng replace



with the following:

    

4. The above steps result in an error message related to  in mathml3-common.rng. If someone has a solution to this please update this page.