MathML a été conçu avant la finalisation des espaces de noms XML . Cependant, un espace de noms lui a été attribué immédiatement après la publication de la recommandation relative aux espaces de noms. Pour une utilisation en XML, les éléments doivent appartenir à l'espace de noms dont l'URL est http://www.w3.org/1998/Math/MathML . Lorsque MathML est utilisé en HTML (et non en XML), cet espace de noms est automatiquement déduit par l'analyseur HTML et n'a pas besoin d'être spécifié dans le document.
MathML version 3
La version 3 de la spécification MathML a été publiée en tant que recommandation du W3C le 20 octobre 2010. Une recommandation intitulée « A MathML for CSS Profile » a ensuite été publiée le 7 juin 2011 ; il s’agit d’un sous-ensemble de MathML adapté à la mise en forme CSS. Un autre sous-ensemble, Strict Content MathML , fournit un sous-ensemble de MathML de contenu avec une structure uniforme et est conçu pour être compatible avec OpenMath . D’autres éléments de contenu sont définis en termes de transformation vers le sous-ensemble strict. Parmi les nouveaux éléments de contenu, on trouve WebKit à peu près à la même époque, suivie d'une implémentation pour Chromium quelques années plus tard, bien que cette dernière ait été retirée de Chromium moins d'un an après.
La deuxième édition de MathML 3.0 a été publiée en tant que recommandation du W3C le 10 avril 2014 . La spécification a été approuvée comme norme internationale ISO/IEC 40314:2015 le 23 juin 2015 Toujours en 2015, l'association MathML a été fondée afin de promouvoir l'adoption de la norme MathML . À cette époque, selon un membre de l' équipe MathJax , aucun des principaux fabricants de navigateurs ne rémunérait ses développeurs pour le rendu MathML ; le support existant reposait en grande majorité sur le travail bénévole
Noyau MathML
En août 2021, une nouvelle spécification appelée MathML Core a été publiée. Elle est décrite comme le « sous-ensemble de base du langage de balisage mathématique, ou MathML, adapté à l’implémentation dans les navigateurs » MathML Core se distingue de MathML 3.0 par l’inclusion de règles de rendu détaillées et l’intégration avec CSS , des ressources de test automatisées de la compatibilité avec les navigateurs, et par sa focalisation sur un sous-ensemble fondamental de MathML. Une implémentation a été ajoutée à Chromium début 2023
Présentation et sémantique
La qualité du rendu de MathML dans un navigateur dépend des polices installées. Le projet STIX Fonts a publié un ensemble complet de polices mathématiques sous licence libre. La police Cambria Math fournie avec Microsoft Windows bénéficiait d'une prise en charge légèrement plus limitée.
Un document MathML valide se compose généralement d'une déclaration XML, d' une déclaration DOCTYPE et d'un élément document. Le corps du document contient ensuite des expressions MathML qui apparaissent dans des éléments selon les besoins. Souvent, MathML est intégré à des documents plus généraux, tels que HTML , DocBook ou d'autres formats basés sur XML .math>
Présentation MathML
entités permettent de spécifier des symboles spéciaux par leur nom, tels que `&` et Contenu MathML
Intégration de MathML dans des fichiers HTML/XHTML
MathML, étant du XML, peut être intégré dans d'autres fichiers XML tels que les fichiers XHTML en utilisant les espaces de noms XML.

Le MathML intégré est également pris en charge dans les fichiers HTML5 . Il n'est plus nécessaire de spécifier les espaces de noms comme c'était le cas en XHTML .
Intégration de MathML dans les fichiers OpenDocument Office Suite
MathML est pris en charge nativement par le format OpenDocument , norme ISO et format de fichier par défaut des suites bureautiques telles que LibreOffice et Collabora Online . Ces fichiers ont les extensions .odt, .ods et .odp. L'élément XML spécifique `<math:math>` sert de conteneur pour le contenu MathML, garantissant ainsi son interprétation correcte au sein du framework OpenDocument.
Microsoft Office ne prend pas en charge nativement MathML dans ses formats de fichiers XML propriétaires par défaut (.docx, .xlsx, .pptx). Il utilise une syntaxe mathématique XML différente, dérivée d'anciennes versions de Microsoft Office. Lorsque Microsoft Office enregistre des équations au format OpenDocument, il peut les enregistrer sous forme d'images non modifiables, ce qui empêche toute modification ultérieure et entraîne une perte d'informations. Ce problème est lié à Microsoft Office ; des solutions existent, notamment : mettre à jour Word, s'assurer que les équations sont au format le plus récent, désactiver l'enregistrement automatique et utiliser l'option « Enregistrer au format MathML ».
Autres normes
Une autre norme, appelée OpenMath, conçue plus spécifiquement (en grande partie par les mêmes personnes qui ont développé Content MathML) pour stocker les formules de manière sémantique, peut être utilisée en complément de MathML. Les données OpenMath peuvent être intégrées à MathML à l'aide de l' élément `<form>`. Les dictionnaires de contenu OpenMath permettent de définir la signification des éléments. Par exemple, `P <sub>1</sub> ( x )` serait défini comme le premier polynôme de Legendre :>
La prise en charge d'OpenMath fait partie de la spécification de la suite bureautique OpenDocument , qui autorise explicitement l'intégration d'objets OpenMath au sein de MathML. MathML représente l'équation, tandis qu'OpenMath en fournit une représentation sémantique permettant aux logiciels d'effectuer des calculs. Les suites bureautiques qui utilisent par défaut la norme OpenDocument, telles que LibreOffice et Collabora Online, privilégient actuellement la norme MathML pour des raisons d'interopérabilité. En revanche, OpenMath n'est pas défini dans les formats de documents propriétaires de Microsoft (docx, pptx et xlsx).
Le format OMDoc a été créé pour le balisage de structures mathématiques plus complexes que de simples formules, allant des définitions, théorèmes, démonstrations et exemples, aux théories complètes, voire à des manuels entiers. Les formules dans les documents OMDoc peuvent être écrites en Content MathML ou en OpenMath ; pour la présentation, elles sont converties en Presentation MathML.