Sustainability of Digital Formats: Planning for Library of Congress Collections

Introduction | Sustainability Factors | Content Categories | Format Descriptions | Contact
Format Description Categories >> Browse Alphabetical List

Markup Compatibility and Extensibility (Office Open XML), ISO 29500-3:2008-2015, ECMA-376, Editions 1-5

>> Back
Table of Contents
Format Description Properties Explanation of format description terms

Identification and description Explanation of format description terms

Full name Markup Compatibility and Extensibility (MCE), ISO 29500-3:2008-2015, also ECMA-376, Editions 1-5.
Description

MCE, Markup Compatibility and Extensibility defines a set of conventions for forward compatibility of markup specifications, applicable not only to the Open Office XML (OOXML) specifications defined in ISO/IEC 29500, but also to other markup specifications based on XML. These conventions allow XML documents created by later versions of applications to be handled by earlier versions. Files in any of the primary OOXML file formats, .docx,. pptx, or .xslx, may include MCE constructs, for example, so that Office 2007 can read files created in later versions of Office that use text styles or slide transitions not defined in ISO/IEC 29500. MCE is also employed in ECMA-388: Open XML Paper Specification (OpenXPS), a standard used for print drivers. In OpenXPS, MCE may be used by different printer manufacturers to support tailored printer characteristics.

This description is based on the MCE format as specified in part 3 of ISO/IEC 29500:2012, Information technology -- Document description and processing languages -- Office Open XML File Formats (OOXML). However, since the specification has very few changes since first standardized as ECMA-376, Part 3 in 2006, this description can be read as applying to all versions published by Ecma International and by ISO/IEC through 2015. See Notes below for more detail on the chronological versions and minor differences. In this format description, the names MCE and MCE/OOXML_2012 should be considered equivalent. ISO/IEC 29500-3:2015 is a complete rewrite of the document but the only changes to the specification were small corrections and the removal of some functionality that had not been used by Microsoft or any other implementers.

The MCE specification defines a small set of XML elements and attributes, in the MCE namespace (identified by http://schemas.openxmlformats.org/markup-compatibility/2006). Applications producing documents can use these elements and attributes to guide applications consuming the documents as to how best to handle elements and attributes those applications might not understand. MCE elements and attributes let producing applications use features added in new versions or extensions of a markup specification for new documents, in a way that remains interoperable with consuming applications that do not understand these features. Use of MCE typically involves pre-processing documents containing MCE elements and attributes to produce a document that will be understood by the consuming application. MCE elements and attributes support several compatibility and extension constructs, as summarized below:

  • Namespaces can be declared as ignorable, allowing identification of some markup as not essential to the document content, and enabling graceful degradation of functionality. An example of usage is in Notes below.
  • Elements in ignorable namespaces can be marked for their content to be processed rather than ignored. This allows producing applications to prevent loss of content nested within an element in an ignorable namespace when processed by consuming applications that do not understand that namespace but do understand the namespace(s) of the nested content.
  • Namespaces that must be understood by consuming applications in order to process the document can be declared. This allows producing applications to set minimum compatibility requirements for consuming applications.
  • Alternative representations of document content can be specified. This allows producing applications to include content alternatives for consuming applications with differing sets of understood namespaces and corresponding capabilities.
  • Application-defined extension elements enable producing applications to introduce features within particular elements defined by a markup specification. Consuming applications might retain application-defined extension elements even if they do not process them in any other way.

In 2016 some guidelines for the use of MCE were published in ISO/IEC TR 30114-1:2016 Information technology -- Extensions of Office Open XML file formats -- Part 1: Guidelines.

Production phase MCE encoding can be used in any production phase. Original use was for Office Open XML office documents, which are certainly created (initial state), exchanged for editing and review (middle-state) and may be published (final-state) as files that employ elements and attributes from the Markup Compatibility and Extensibility namespace.
Relationship to other formats
    Subtype of OOXML Family, OOXML (ISO/IEC 29500) Format Family
    Used by Application-specific formats in the OOXML Format Family, including those listed below. See also OPC/OOXML_2012.
    Used by DOCX/OOXML_2012, DOCX Transitional (Office Open XML), ISO 29500:2008-2012, ECMA-376. Uses WordprocessingML in an OPC/OOXML_2012 package.
    Used by XLSX/OOXML_2012, XLSX Transitional (Office Open XML), ISO 29500:2008-2012, ECMA-376. Uses SpreadsheetML in an OPC/OOXML_2012 package.
    Used by PPTX/OOXML_2012, PPTX Transitional (Office Open XML), ISO 29500:2008-2012, ECMA-376. Uses PresentationML in an OPC/OOXML_2012 package.
    Used by OpenXPS, ECMA-388: Open XML Paper Specification . OpenXPS specifically uses ECMA-376, 1st edition as a normative reference.
    Used by MS-XPS, Microsoft XML Paper Specification. MS-XPS specifically uses ECMA-376, 1st edition as a normative reference.
    Defined via XML, Extensible Markup Language (XML). The MCE specification defines a namespace and its elements and attributes. These constructs are designed for embedding in XML documents.

Local use Explanation of format description terms

LC experience or existing holdings Many documents generated by Library of Congress staff or acquired for the collections, particularly in collections of personal or organizational papers that include digital content, will have documents in OOXML subtypes that incorporate MCE markup.
LC preference Preferences for formats in the Recommended Formats Statement are expressed at the level of file formats, often by file extension. See, for example, Textual Works - Digital.

Sustainability factors Explanation of format description terms

Disclosure International open standard. Maintained by ISO/IEC JTC1 SC34/WG4. Originated by Microsoft Corporation and first standardized through ECMA International in 2006. Approval as part 3 of ISO/IEC 29500 was in 2008.
    Documentation

ISO/IEC 29500-3, Information technology -- Document description and processing languages -- Office Open XML File Formats -- Part 3: Markup Compatibility and Extensibility. Latest version (2015 as of March 2020) is available from ISO/IEC Publicly Available Standards.

All editions of the OOXML standards as published by ECMA are available from ECMA-376: Office Open XML File Formats. See Notes below for version chronology.

Adoption

MCE/OOXML_2012 was originally developed by Microsoft as a mechanism for implementing backwards and forwards compatibility among versions of its Office products. Files in the .docx, .xslx, and .pptx format created in versions of Office since Office 2010 may incorporate MCE constructs to handle new features introduced in versions after Office 2007. ECMA 388: Open XML Paper Specification (OpenXPS), another format originating with Microsoft and a significant component of Windows 8, allows for MCE constructs to be incorporated, based on the ECMA-376, 1st edition text. The OpenXPS format is used in printer drivers; individual printer manufacturers may introduce new features through use of MCE. Comments welcome

Generating appropriate MCE correctly is a complex task requiring understanding of features supported by different versions of different applications as well as the formats. The compilers of this resource are not aware of non-Microsoft applications that routinely generate documents incorporating MCE constructs. There have been very occasional suggestions that MCE might be useful with other XML-based file formats, e.g., 2009 blog posting at oreilly.com and 2013 email message on ODF committee list. Comments welcome.

The libOPC software toolkit (originally maintained at codeplex, now archived at codeplex libOPC archive (link via Internet Archive) and available at github libOPC repository) has code for processing MCE constructs encountered on input and for controlling the writing of MCE constructs for output of files using the Open Packaging Conventions format (OPC/OOXML_2012). Applications and software libraries that can import .docx/.xslx/.pptx files should be able to process MCE constructs but the compilers of this resource are not aware of the reliability of such processing, except when using the Open XML SDK (available at https://github.com/OfficeDev/Open-XML-SDK). Comments welcome.

    Licensing and patents

The specification originated from Microsoft Corporation. MCE/OOXML_2012 and future versions of ISO/IEC 29500-3 and ECMA-376 are covered by Microsoft's Open Specification Promise, whereby Microsoft "irrevocably promises" not to assert any claims against those making, using, and selling implementations of any specification covered by the promise (so long as those accepting the promise refrain from suing Microsoft for patent infringement in relation to Microsoft's implementation of the covered specification).

Features introduced into markup specifications through the MCE mechanism may be subject to patent protection. However, Microsoft's interoperability principles indicate "Microsoft will also make available a list of any of its patents that cover any extensions, and will make available patent licenses on reasonable and non-discriminatory terms."

Transparency

Since MCE defines a namespace that comprises a small collection of elements and attributes and is designed for use in XML documents, its use within XML files can be detected and interpreted by a human through a text editor as well as easily recognized and parsed by automated systems.

Self-documentation

Not applicable.

External dependencies Effective application of the compatibility constructs requires MCE processor software that recognizes MCE constructs and uses them to prepare a document for use in conjunction with a set of names of namespaces understood by a consuming application. Such software may be integrated into the file import modules of applications, as it is in Microsoft Office since 2007.
Technical protection considerations

Not applicable.


Quality and functionality factors Explanation of format description terms

Other
Extensibility No quality or functionality factors have been developed for mechanisms designed to permit extensibility of digital formats.

File type signifiers and format identifiers Explanation of format description terms

Tag Value Note
Filename extension See note.  MCE is used within files marked up in other XML specifications. Filename extensions are determined by the containing file.
XML namespace declaration http://schemas.openxmlformats.org/markup-compatibility/2006
Files may contain a namespace declaration that links this namespace identifier to a prefix even if they do not incorporate any elements and attributes that are not defined by Parts 1, 2, and 4 of the ISO 29500 standard. The prefixes "mc:" and "mce:" are both found in documentation and sample files, but, as in all XML, any prefix may be associated with any namespace through an xmlns declaration.
Pronom PUID See note.  Not applicable but see OOXML Format Family for subtypes.
Wikidata Title ID See note.  Not applicable but see OOXML Format Family for subtypes.

Notes Explanation of format description terms

General

The prefix used for the MCE namespace http://schemas.openxmlformats.org/markup-compatibility/2006 is typically mc: or mce:. In XML, any prefix may be associated with any namespace through an xmlns declaration and so, other prefixes may be used. Documents created by Microsoft Office applications may declare the MCE namespace and list namespaces used for new features in recent Office versions as ignorable, whether or not the new features and MCE elements or attributes are used in the document.

Here is a simple example, adapted from a blog post that demonstrates use of MCE to use a decorative font style not defined in ISO/IEC 29500, of declaring a namespace as ignorable, with mce: used as prefix for MCE namespace:

  • A new namespace is defined for the XML markup of a style introduced in a new version of Microsoft Word and declared to use w14: as prefix.
  • A new feature, for applying a glow style to text is encoded using the new namespace. For example: <w14:glow w14:rad="228600">...</w14:glow>.
  • The new namespace is marked as ignorable using mce:Ignorable="w14".

Features introduced through use of MCE are more likely to lead to interoperability problems than features supported by the underlying markup specification. Following its declared interoperability principles, Microsoft documents, and makes available license-free, extensions made using MCE in high-volume products such as applications in the Office suite, through documents such as those listed below:

History

Between the time the original MCE specification was published as ECMA-376, Part 3 in 2006 and 2015, there was no significant change in the MCE format. Editions of ISO/IEC 29500-3 and ECMA 376 through 2012 define the same namespace, elements, and attributes; changes to the MCE specification were limited to clarifications and corrections. The chronology of editions specifying MCE is:

  • ECMA-376, Part 3, 1st edition (December 2006)
  • ISO/IEC 29500-3:2008
  • ECMA-376, Part 3, 2nd edition (December 2008) [specification identical to ISO/IEC 29500-3:2008]
  • ISO/IEC 29500-3:2011
  • ECMA-376, Part 3, 3rd edition (June 2011) [specification identical to ISO/IEC 29500-3:2011]
  • ISO/IEC 29500-3:2012
  • ECMA-376, Part 3, 4th edition (December 2012) [specification identical to ISO/IEC 29500-3:2012]
  • ISO/IEC 29500-3:2015
  • ECMA-376, Part 3, 5th edition (December 2015) [specification identical to ISO/IEC 29500-3:2015]

The primary intent of the 2015 edition of the MCE specification was to improve the explanation and to emphasize the applicability of MCE beyond OOXML to support interoperability. This edition does not introduce new features but does remove some flexibility that had not been exploited in practice and was deemed unnecessary. In particular, an appropriate process for handling MCE on file import is described in more detail.


Format specifications Explanation of format description terms


Useful references

URLs


Last Updated: 03/23/2023