En informatique, MathML est un langage basé sur XML permettant l'affichage de symboles mathématiques, notamment sur Internet. Il s'agit d'une recommandation du W3C.
La version 1.01 de ce langage date de juillet 1999 et une première version 2.0 a vu le jour en février 2001. En octobre 2003, la deuxième mouture de MathML Version 2.0 a été rendue publique comme la version finale du groupe de travail du W3C.
MathML ne s'occupe pas uniquement de la présentation mais aussi du sens des différentes composantes des formules mathématiques. On distingue donc les balises de présentation (presentation markup) des balises décrivant la formule, le contenu (content markup). Un système permettant d'inclure des balises sémantiques, destiné à compléter MathML, est actuellement en développement : il s'agit d'OpenMath.
La notion de description de contenu plutôt que de mise en forme permet de faire varier le rendu selon une feuille de style, et notamment selon des préférences nationales. Par exemple, le vecteur « V » sera noté
, et pourra être rendu V pour un anglo-saxon et
pour un français [1].
La formule
s'écrit de la façon suivante avec MathML :
x = - b ± b 2 - 4 ⁢ a ⁢ c 2 ⁢ a
…
(math identifier) [2] ;…
(math operator) [3] ;…
(math number) [4] ;…
(math row) [5] ;…
[6] ; elle se compose de deux expressions écrites l'une après l'autre : le numérateur et le dénominateur ;…
(math square root) [7]⁢
(« multiplié invisible ») ; ceci illustre le fait que MathML décrit le rôle des objets et non uniquement la mise en forme.x = {-b \pm \sqrt{b^2 - 4ac}\over 2a}
x = \frac {-b \pm \sqrt{b^2 - 4ac}}{2a}