mathematical items in a mathdoc are represented by the model classes in this package. Individual Model classes in this package map closely to counterparts in the MathML standard. Each model has a similar element in Presentation MathML. This section of the MathML specification describes the presentation MathML in detail. While we do not yet render MathML, and do not support the attributes of MathML elements, our Math Models are similar enough to the MathML elements that the descriptions stand.

Mathematical structures in Iguana are rendered by first converting a dag into math model structures, which are, in turn, rendered by view classes in {@link com.maplesoft.mathdoc.view.math}. Most layouts can be created simply by combining the models available in this package. It is rare that a layout requires the creation of a new model, or a new custom view to render that element. Conversion of dags to models is performed by the various Builder classes in this package. The model building operation is managed by the {@link com.maplesoft.mathdoc.model.math.WmiMathFactory}.

{@link com.maplesoft.mathdoc.model.math.WmiMathFactory} creates model structures by looking up the dag type and then referring the dag to the appropriate builder. Builders decompose the dag, and use its child dags as arguments to model constructors. Future factories should be able to take other structures/sources (including MathML) and convert them into Math Models.

Model Tags

Tag Model Class Model Children
mn {@link com.maplesoft.mathdoc.model.math.WmiNumericModel} a number(string)
mi {@link com.maplesoft.mathdoc.model.math.WmiIdentifierModel} an identifier(string)
mtext {@link com.maplesoft.mathdoc.model.math.WmiMathTextModel} a string
mo {@link com.maplesoft.mathdoc.model.math.WmiMathOperatorModel} a string unicode operator
mrow {@link com.maplesoft.mathdoc.model.math.WmiInlineMathModel} any number of child models to be laid out inline
mfrac {@link com.maplesoft.mathdoc.model.math.WmiFractionModel} two children, a numerator and denominator
msup {@link com.maplesoft.mathdoc.model.math.WmiSuperscriptModel} two children, a base and superscript
msub {@link com.maplesoft.mathdoc.model.math.WmiSubscriptModel} two children, a base and subscript
msqrt {@link com.maplesoft.mathdoc.model.math.WmiRootModel} one child
mroot {@link com.maplesoft.mathdoc.model.math.WmiRootModel} two children, the base and index
munderover {@link com.maplesoft.mathdoc.model.math.WmiUnderOverModel} three children, center, under, and over
msubsup {@link com.maplesoft.mathdoc.model.math.WmiSubSupModel} three children, base, sub, and superscript
munder {@link com.maplesoft.mathdoc.model.math.WmiUnderModel} two children, base and under
mover {@link com.maplesoft.mathdoc.model.math.WmiOverModel} two children, base and over
mtable {@link com.maplesoft.mathdoc.model.math.WmiMathTableModel} any number of row children
mtr {@link com.maplesoft.mathdoc.model.math.WmiMathTableModel} any number of cell children
mtd {@link com.maplesoft.mathdoc.model.math.WmiMathTableModel} a single math model