About MathML Tools
The MathML tools on this website take
advantage of Mathematica's builtin capabilities for importing,
processing, and exporting MathML.
Each tool is essentially a webbased interface for doing a specific type
of computation with Mathematica. The interaction between the web
page and the server is handled by webMathematica,
a Javabased application that integrates Mathematica with standard web technologies to
deliver dynamic computations over the web.
webMathematica uses Java Servlet technology to allow
Mathematica commands to be
embedded in a standard web page. The Mathematica commands are
inserted into the HTML document in the form of special Mathlet tags. When
you type in some input and press a button, the input is sent to the web
server. The Mathlet tags in the page are interpreted and
converted into standard Mathematica commands, which are then
evaluated by a copy of Mathematica running on the server. The
result of the
evaluation is embedded in an HTML document, which is then sent back to the
client machine and displayed in your browser.
Each tool on the website uses one or more of Mathematica's
builtin functions for working with MathML. A typical computation would
involve the following steps.
 The data entered by the user is imported into
Mathematica using the Import function.
 Some transformations are
performed on the data using Mathematica programming. These
transformations may use the highlevel functions for converting between
MathML strings and the boxes and expressions used internally by
Mathematica to represent mathematics. For example,
XML`MathML`MathMLToBoxes
converts a MathML string into a typeset formula, and
XML`MathML`ExpressionToMathML converts a Mathematica
expression into a MathML string.
 The result is exported out of
Mathematica using the
Export function.
The MathML tools shown here are a special case of
Mathematica's general XMLprocessing capabilities.
Mathematica represents XML data, including MathML, internally as
SymbolicXML. This is
a special type of Mathematica expression that preserves the tree
structure of the original XML data.
The advantage of converting XML data
to SymbolicXML is that the resulting expression can be manipulated using
the standard techniques of Mathematica programming. For example,
you can use pattern matching to extract specific parts of an expression.
You can also draw upon Mathematica's large number of functions
for numeric, symbolic, and graphical computations and apply them to XML
data. The combination of SymbolicXML and Mathematica programming
is an effective way of manipulating XML documents. It provides a useful
alternative to other techniques such as XSLT transformations or
the SAX or DOM APIs used with a programming language such as Java.
