Copyright © 1998-2001 W3C^{®} (MIT, INRIA, Keio), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply.
This specification defines the Mathematical Markup Language, or MathML. MathML is an XML application for describing mathematical notation and capturing both its structure and content. The goal of MathML is to enable mathematics to be served, received, and processed on the World Wide Web, just as HTML has enabled this functionality for text.
This specification of the markup language MathML is intended primarily for a readership consisting of those who will be developing or implementing renderers or editors using it, or software that will communicate using MathML as a protocol for input or output. It is not a User's Guide but rather a reference document.
This document begins with background information on mathematical notation, the problems it poses, and the philosophy underlying the solutions MathML proposes. MathML can be used to encode both mathematical notation and mathematical content. About thirty of the MathML tags describe abstract notational structures, while another about one hundred and fifty provide a way of unambiguously specifying the intended meaning of an expression. Additional chapters discuss how the MathML content and presentation elements interact, and how MathML renderers might be implemented and should interact with browsers. Finally, this document addresses the issue of MathML characters and their relation to fonts.
While MathML is human-readable, it is anticipated that, in all but the simplest cases, authors will use equation editors, conversion programs, and other specialized software tools to generate MathML. Several early versions of such MathML tools already exist, and a number of others, both freely available software and commercial products, are under development.
This section describes the status of this document at the time of its publication. Other documents may supersede this document. The latest status of this document series is maintained at the W3C.
On 8 January 2001, this document enters a Proposed Recommendation review period. From that date until 5 February 2001, W3C Advisory Committee representatives are encouraged to review this specification and return comments to w3t-math@w3.org, which is visible to the W3C Team only.
After the review, the W3C Director will announce the document's disposition: it may become a W3C Recommendation (possibly with minor changes), it may revert to Working Draft status, or it may be dropped as a W3C work item. This announcement should not be expected sooner than 14 days after the end of the review.
The MathML 2 specification was a W3C Candidate Recommendation for a review period which ended on 14 December 2000. During that period the W3C Math Working Group members encouraged implementation using the specification and comment on it; the Working Group continues to do so. A report on Implementation and Interoperability experiences and issues was made public shortly after the end of the Candidate Recommendation review period. It is intended that this will be updated from time to time by the follow-on activity that oversees the MathML Recommendation, whatever that may be. The W3C Math Working Group has maintained a public Web page http://www.w3.org/Math/ which contains further background information.
Public discussion of MathML and issues of support through the W3C
for mathematics on the Web takes place on the public mailing list of the Math Working
Group (list archives). To
subscribe send an email to www-math-request@w3.org
with the word
subscribe
in the subject line.
The experience with early implementations of the MathML 2.0 specification encouraged the Working Group to ask the W3C Director to advance this document to Proposed Recommendation status.
Publication as a Proposed Recommendation does not imply endorsement by the W3C membership. This is still a draft document and may be updated, replaced or made obsolete by other documents at any time. It is inappropriate to cite W3C Proposed Recommendations as other than "work in progress."
This document has been produced by the W3C Math Working Group as part of the activity of the W3C User Interface Domain. The goals of the W3C Math Working Group are discussed in the W3C Math WG Charter (revised February 2000 from original of 11 June 1998). A list of participants in the W3C Math Working Group is available.
A list of current W3C Technical Reports can be found at http://www.w3.org/TR.
MathML 2.0 is a revision of the earlier corrected W3C Recommendation MathML 1.01. It differs from it in that all chapters have been updated and two new ones and some appendices added.
Chapters 1 and 2, which are introductory material, have been revised to reflect the changes elsewhere in the document, and in the rapidly evolving Web environment. Chapters 3 and 4 have been extended to describe new functionalities added as well as smaller improvements of material already proposed. Chapter 5 has been newly written to reflect changes in the technology available. The major tables in Chapter 6 have been regenerated and reorganized to reflect an improved list of characters useful for mathematics, and the text revised to reflect the new situation in regard to Unicode. Chapter 7 has been completely revised since Web technology has changed. A new Chapter 8 on the DOM for MathML has been added; the latter points to new appendices D and E for detailed listings.
The appendices have been reorganized into normative and non-normative groups. Appendices D, E and G are completely new.
1 Introduction
1.1 Mathematics and its Notation
1.2 Origins and Goals
1.3 The Role of MathML on the Web
2 MathML Fundamentals
2.1 MathML Overview
2.2 MathML in a Document
2.3 Some MathML Examples
2.4 MathML Syntax and Grammar
3 Presentation Markup
3.1 Introduction
3.2 Token Elements
3.3 General Layout Schemata
3.4 Script and Limit Schemata
3.5 Tables and Matrices
3.6 Enlivening Expressions
4 Content Markup
4.1 Introduction
4.2 Content Element Usage Guide
4.3 Content Element Attributes
4.4 The Content Markup Elements
5 Combining Presentation and Content Markup
5.1 Why Two Different Kinds of Markup?
5.2 Mixed Markup
5.3 Parallel Markup
5.4 Tools, Style Sheets and Macros for Combined Markup
6 Characters, Entities and Fonts
6.1 Introduction
6.2 MathML Characters
6.3 Character Symbol Listings
6.4 Differences from Characters in MathML 1
7 The MathML Interface
7.1 Embedding MathML in other Documents
7.2 Generating, Processing and Rendering
MathML
7.3 Future Extensions
8 Document Object Model for MathML
8.1 Introduction
A Parsing MathML
A.1 DOCTYPE Declaration for MathML
A.2 MathML as a DTD Module
A.3 Namespace prefix declarations
A.4 Use of MathML without a DTD
A.5 SGML
A.6 The MathML DTD
B Content Markup Validation Grammar
C Content Element Definitions
C.1 About Content Markup Elements
C.2 Definitions of MathML Content Elements
D Document Object Model for MathML
D.1 IDL Interfaces
D.2 MathML DOM Tables
E MathML Document Object Model Bindings (Non-normative)
E.1 MathML Document Object Model IDL Binding
E.2 MathML Document Object Model Java Binding
E.3 MathML Document Object Model ECMAScript Binding
F Operator Dictionary (Non-normative)
F.1 Format of operator dictionary entries
F.2 Indexing of operator dictionary
F.3 Choice of entity names
F.4 Notes on lspace
and
rspace
attributes
F.5 Operator dictionary entries
G Sample CSS Style Sheet for MathML (Non-normative)
H Glossary (Non-normative)
I Working Group Membership and Acknowledgments (Non-normative)
I.1 The Math Working Group Memberships
I.2 Acknowledgments
J Changes (Non-normative)
K References (Non-normative)