The Office Open XML format specification has been approved as a free and openEcma International standard. A newer improved version is approved as an ISO/IEC standard.
Microsoft originally developed the specification as a successor to its earlier binary and Office 2003 XML file formats. The specification was later handed over to Ecma International to be developed as the Ecma 376 standard, under the stewardship of Ecma International Technical Committee TC45. Ecma 376 was published in December 2006 and can be freely downloaded from Ecma International.
An amended version of the format, ISO/IEC DIS 29500 (Draft International Standard 29500), received the necessary votes for approval as an ISO/IEC Standard as the result of a JTC 1 fast tracking standardization process that concluded in April 2008.
The current stage of ISO/IEC DIS 29500 is "FDIS registered for formal approval" (Final draft International Standard).
Therefore next and last step in the standardization proces is the final publication as of ISO/IEC IS 29500, Information technology – Office Open XML formats as an international standard.
Prior to the 2007 edition, the core applications of the Microsoft Office software suite (primarily Word, Excel, and PowerPoint) by default stored their data in binary files. Historically, these files were difficult for other applications to interoperate with, due to the lack of publicly available information and royalty-free access to the format specifications. More recently, Microsoft has offered these binary format specifications under a royalty-free covenant not to sue as part of its Open Specification Promise. While a level of support for the binary formats had been achieved by some applications, full interoperability remained elusive.
In 2000, Microsoft released an initial version of an XML-based format for Excel, which was incorporated in Office XP. In 2002, a new file format for Microsoft Word followed. The Excel and Word formats – known as the Office 2003 XML formats – were later incorporated into the 2003 release of Microsoft Office.
In May 2004, governments and the European Union recommended to Microsoft that they publish and standardize their XML Office formats through a standardization organization. Microsoft announced in November 2005 that it would standardize the new version of their XML-based formats through Ecma, as "Ecma Office Open XML".
File format and structure
Office Open XML uses a file package conforming to the Open Packaging Convention. This format uses mechanisms from the ZIP file format and contains the individual files that form the basis of the document. In addition to Office markup, the package can also include embedded files such as images, videos, or other documents.
Document markup languages
An Office Open XML file may contain several documents encoded in specialized markup languages corresponding to applications within the Microsoft Office product line. Office Open XML defines multiple vocabularies using 27 namespaces and 89 schema modules.
DrawingML used for vector drawing, charts, and for example, text art (additionally, though deprecated, VML is supported for drawing)
Custom XML data properties
In addition to the above markup languages custom XML schemas can be used to extend Office Open XML.
The XML Schema of Office Open XML emphasizes reducing load time and improving parsing speed. In a test with applications current in April 2007, XML based office documents were slower to load than binary formats. To enhance performance, Office Open XML uses very short element names for common elements and spreadsheets save dates as index numbers (starting from 1899 or from 1904). In order to be systematic and generic, Office Open XML typically uses separate child elements for data and metadata (element names ending in Pr for properties) rather than using multiple attributes, which allows structured properties. Office Open XML does not use mixed content but uses elements to put a series of text runs (element name r) into paragraphs (element name p). The result is terse and highly nested in contrast to HTML, for example, which is fairly flat, designed for humans to write in text editors and is more congenial for humans to read.
Office MathML (OMML)
Office Math Markup Language is a mathematical markup language which can be embedded in WordprocessingML, with intrinsic support for including word processing markup like revision markings, footnotes, comments, images and elaborate formatting and styles.
The OMML format is different from the World Wide Web Consortium (W3C) MathML recommendation that does not support those office features, but is partially compatible through relatively simple XSL Transformations.
The following Office MathML example defines the fraction:
DrawingML is the vector graphics markup language used in Office Open XML documents. Its major features are the graphics rendering of text elements, graphical vector based shape elements, graphical tables and charts.
The DrawingML table is the third table model in Office Open XML (next to the table models in WordprocessingML and SpreadsheetML) and is optimized for graphical effects and its main use is in presentations created with PresentationML markup.
DrawingML contains graphics effects (like shadows and reflection) that can be used on the different graphical elements that are used in DrawingML.
In DrawingML you can also create 3d effects, for instance to show the different graphical elements through a flexible camera viewpoint.
It is possible to create separate DrawingML theme parts in an Office Open XML package. These themes can then be applied to graphical elements throughout the Office Open XML package.
DrawingML is unrelated to the other vector graphics formats such as SVG. These can be converted to DrawingML to include natively in an Office Open XML document. This is a different approach to that of the OpenDocument format, which uses a subset of SVG, and includes vector graphics as separate files.
Office Open XML documents are stored in Open Packaging Convention (OPC) packages, which are ZIP files containing XML and other data files, along with a specification of the relationships between them. Depending on the type of the document, the packages have different internal directory structures and names. An application will use the relationships files to locate individual sections (files), with each having accompanying metadata, in particular MIME metadata.
A basic package contains an XML file called [Content_Types].xml at the root, along with three directories: _rels, docProps, and a directory specific for the document type (for example, in a .docx word processing package, there would be a word directory). The word directory contains the document.xml file which is the core content of the document. [Content_Types].xml : This file describes the contents of the package. It also contains a mapping for file extensions and overrides for specific URIs. _rels : This directory contains relationships for the files within the package. To find the relationships for a specific file, look for the _rels directory that is a sibling of the file, and then for a file that has the original file name with a .rels appended to it. For example, if the content types file had any relationships, there would be a file called [Content_Types].xml.rels inside the _rels directory. _rels/.rel : This file is where the package relationships are located. Applications look here first. Viewing in a text editor, one will see it outlines each relationship for that section. In a minimal document containing only the basic document.xml file, the relationships detailed are metadata and document.xml. docProps/core.xml : This file contains the core properties for any Office Open XML document. word/document.xml : This file is the main part for any Word document.
Relationship files in Office Open XML
An example relationship file (word/_rels/document.xml.rels), is:
As such, images referenced in the document can be found in the relationship file by looking for all relationships that are of type http://schemas.microsoft.com/office/2006/relationships/image. To change the used image, edit the relationship.
The following code shows an example of inline markup for a hyperlink:
In this example, the Uniform Resource Locator (URL) is represented by "rId2". The actual URL is in the accompanying relationships file, located by the corresponding "rId2" item. Linked images, templates, and other items are referenced in the same way.
Embedded or linked media file relations
Pictures can be embedded or linked using a tag:
This is the reference to the image file. All references are managed via relationships. For example, a document.xml has a relationship to the image. There is a _rels directory in the same directory as document.xml, inside _rels is a file called document.xml.rels. In this file there will be a relationship definition that contains type, ID and location. The ID is the referenced ID used in the XML document. The type will be a reference schema definition for the media type and the location will be an internal location within the ZIP package or an external location defined with a URL.
Office Open XML uses the Dublin CoreMetadata Element Set and DCMI Metadata Terms to store document properties. Dublin Core is a standard for cross-domain information resource description and is defined in ISO 15836:2003
An example document properties file (docProps/core.xml) that uses Dublin Core metadata, is:
Structure of the standard
To aid the reader's understanding, the Office Open XML specification contains both normative material and informative material. It is structured in five parts to meet the needs of different audiences.
Part 1: Fundamentals
Vocabulary, notational conventions and abbreviations
Summary of primary and supporting markup languages
Conformance conditions and interoperability guidelines
Constraints within the Open Packaging Conventions that apply to each document type
Part 2: Open Packaging Conventions
Defines the Open Packaging Conventions (package model, physical package)
Informative (non-normative) introduction to WordprocessingML, SpreadsheetML, PresentationML, DrawingML, VML and Shared MLs, providing context and illustrating elements through examples and diagrams
Describes the custom XML data storing facility within a package to support integration with business data
Part 4: Markup Language Reference
Contains the reference material for WordprocessingML, SpreadsheetML, PresentationML, DrawingML, Shared MLs and Custom XML Schema, defining every element and attribute including the element hierarchy (parent/child relationships)
XML schemas for the markup languages are declared as XSD and (non-normatively) using RELAX NG
Defines the custom XML data storing facility
Part 5: Markup Compatibility and Extensibility
Describes extension facilities of OpenXML documents and specifies elements and attributes by which applications with different extensions can interoperate
Extensibility rules are expressed using NVDL (ISO/IEC 19757-4)
Reasonable and Non Discriminatory
Ecma International provides specifications that "can be freely copied by all interested parties without restrictions". Under the Ecma code of conduct in patent matters, participating and approving member organisations are required to make available their patent rights on a Reasonable and Non Discriminatory (RAND) basis. While making patent rights available on a RAND basis is considered a common minimum patent condition for a standard, international standardization has a clear preference for royalty-free patent licensing. That is why Microsoft, a main contributor to the standard, provided a Covenant Not to Sue for its patent licensing. The covenant received a mixed reception, with some (like the Groklawblog) identifying problems and others (such as Lawrence Rosen, an attorney and lecturer at Stanford Law School) endorsing it.
"Microsoft irrevocably promises not to assert any Microsoft Necessary Claims against you for making, using, selling, offering for sale, importing or distributing any implementation to the extent it conforms to a Covered Specification […]"
subject to certain restrictions. Office Open XML can therefore be used under the Covenant Not to Sue or the Open Specification Promise.
The Open Specification Promise was included in documents submitted to ISO in support of the Ecma 376 fast track submission.
Ecma International asserted that, "The OSP enables both open source and commercial software to implement [the specification]."
In support of the licensing arrangements Microsoft commissioned an analysis from the London legal firm Baker & McKenzie.
Several standards and OSS licensing experts expressed support in 2006 of the OSP. A 2006 article in Cover Pages quotes Lawrence Rosen, an attorney and lecturer at Stanford Law School, as saying,
"I'm pleased that this OSP is compatible with free and open source licenses.
In 2006, Mark Webbink; a lawyer and member of the board of the Software Freedom Law Center, and former employee of Linux vendor Red Hat; has said,
"Red Hat believes that the text of the OSP gives sufficient flexibility to implement the listed specifications in software licensed under free and open source licenses. We commend Microsoft’s efforts to reach out to representatives from the open source community and solicit their feedback on this text, and Microsoft's willingness to make modifications in response to our comments.
Standards lawyer Andy Updegrove said in 2006 the Open Specification Promise was
"[…] what I consider to be a highly desirable tool for facilitating the implementation of open standards, in particular where those standards are of interest to the open source community.
On March 12, 2008 the Software Freedom Law Center, which provides services to protect and advance free software and open source software, has warned of problems with the Open Specification Promise as it relates to Office Open XML and the GNU General Public License (GPL). In a published analysis of the promise it states that
*"Any code that implements the specification may also do other things in other contexts, so in effect the OSP does not cover any actual code, only some uses of code."
*"...it permits implementation under free software licenses so long as the resulting code isn't used freely."
*"The OSP cannot be relied upon by GPL developers for their implementations not because its provisions conflict with GPL, but because it does not provide the freedom that the GPL requires."
Microsoft amended the OSP FAQ to specifically assure GPL license users that the open licensing of its covered formats through the Open Specification Promise applies to users of the GPL license when implementing covered implementations:
"The OSP provides the assurance that Microsoft will not assert its Necessary Claims against anyone who make, use, sell, offer for sale, import, or distribute any Covered Implementation under any type of development or distribution model, including the GPL.
Legal experts and academics have confirmed that the licensing is similar to the licensing terms offered by IBM, and to a lesser extent Sun and Adobe on their Office formats but warned that ambiguous legal jargon contained in Microsoft's Open Specification Promise, although understood in the terminology of the specialist patent and intellectual property law community, makes it hard for small developers to determine with certainty that Microsoft will not be entitled to sue them for using OOXML. They criticize Microsoft for not explicitly defining which parts of its 6000 page OOXML specification contains intellectual property. The OSP has never been tested in a court of law regarding intellectual property rights, and the OSP does not name which court or jurisdiction a dispute will be heard in. David Vaile, executive director of the Cyberspace Law and Policy Centre at the University of New South Wales, acknowledges that the Microsoft approach to its Open Specification Promise is similar although not identical to other approaches used by IBM, and to a lesser extent Adobe and Sun, and that these represent a substantial advance on the past practice of negotiating long case-by-case agreements.
Microsoft's Office Open XML is currently an Ecma standard (Ecma-376, approved on 7 December 2006). Ecma 376 was created using as a basis a new version of the Microsoft Office 2003 XML file format, donated by Microsoft, which was being created for Microsoft Office 12.
On April 2, 2008, ISO and IEC officially stated that the DIS 29500 had been approved for acceptance as an ISO/IEC Standard, pending any appeals. In accordance with the JTC 1 directives the Project Editor created a new version with the final text within a month after the BRM, to be published as ISO/IEC 29500. After review and corrections this text has been distributed to the members of SC34.
The current Ecma 376 specification of Office Open XML is the default format in Microsoft Office 2007.
For older versions of Office (2000, XP and 2003) a compatibility pack is provided. It is available for Windows 2000 Service Pack 4 and newer operating systems. The compatibility pack does not require Microsoft Office, but does require Microsoft Windows. It can be used as a standalone converter with products that read Office's older binary formats, such as OpenOffice.org.
The Mac OS X-based NeoOffice office suite supports opening, editing, and saving of most Office Open XML documents since version 2.1.
OpenXML Writer is an open source text editor for creating WordprocessingML files.
Online word processor Zoho Writer supports exporting to the Office Open XML WordprocessingML format.
Oxygen XML Editor allows you to extract, validate, edit and process the XML data stored in Office Open XML files. These capabilities allow developers to use data from Office 2007 documents together with validation and transformations (using XSLT or XQuery) to other file formats. Validation is done using the latest Ecma 376 XML Schemas.
OxygenOffice includes xmlfilter which is the code that OpenOffice.org 3 will use to process Office Open XML files, and xmlfilter is completely different than OdfConverter. This filter however is only for importing Office Open XML files not for exporting them.
docXConverter by Panergy Ltd. converts from WordprocessingML to Rich Text Format (RTF) and from SpreadsheetML to Comma-separated values (CSV). docXConverter can be used to transfer WordprocessingML data to other applications that read RTF data such as Word 97.
Microsoft and Sonata Software created a plugin to convert Office Open XML text documents to DAISY XML, an open standard format used for creating spoken document for disabled people.
Google search supports direct HTML view of Office Open XML files. Found files can be viewed directly in a converted HTML view.
NuanceOmniPage Professional 16, an OCR and Document Conversion Software, was the first desktop OCR application to provide native support for the Office Open XML standard.
Open XML Package Explorer supports browsing Office Open XML packages and subpackages, creating packages and parts using templates as well as creating internal and external relationships and digital signatures. It can display Dublin Core properties and validate package XML and custom XML using custom schemas.
Oxygen XML Editor provides ready to use validation, editing and processing support for Microsoft Office 2007 - Office Open XML (OOXML).
Microsoft has stated that Microsoft Office 14 will be the first version of Microsoft Office to support ISO/IEC 29500, though no release date has been announced.
On July 28, 2008 Murray Sargent, a software development engineer in the Microsoft Office team confirmed that Word 2007 will have a service pack release that enables it to read and write ISO standard OOXML files.
Microsoft, whose products currently only support the Ecma 376 standard version of Office Open XML, has committed to using the ISO/IEC 29500 standard in their products and has also committed to participate in the maintenance of this standard.
In a Zdnet article Alex Brown, leader of the ISO/IEC group in charge of deciding maintenance processes for any ISO/IEC 29500 Standard, stated
"I am hoping that Microsoft Office will shortly be brought into line with the [ISO/IEC] 29500 specification, and will stay that way".
On March 13, 2008 Doug Mahugh, a Senior Product Manager at Microsoft specializing in Office client interoperability and the Open XML file formats confirmed that version 1.0 of the Open XML Format SDK
"will definitely be 100% compliant with the final ISO/IEC 29500 spec, including the changes accepted at the BRM".
In a ComputerWorld interview from 2008, Doug Mahugh said that
"Microsoft would continue to update the SDK to make sure that applications built with it remained compliant with an Open XML standard as changes were made in the future".
Microsoft Open XML Format SDK contains a set of managed code libraries to create and manipulate Office Open XML files programmatically. Version 1.0 was released on June 10, 2008 and incorporates the changes made to the Office Open XML specification made during the current ISO/IEC standardization process. Version 2 of the Open XML SDK supports validating Office Open XML documents against the Office Open XML schema, as well as searching in Office Open XML documents.
The ODF Alliance UK Action Group says that with OpenDocument an ISO-standard for Office files already exists and that two competing standards are against the very concept of a standard.
Further, they argue that the Office Open XML file-format is heavily based on Microsoft's own Office applications and is thus not vendor-neutral, and that it has inconsistencies with existing ISO standards such as time and date formats and color codes.
Use of DrawingML and the transitional-use-only VML instead of W3C recommendation SVG. VML did not become a W3C recommendation.
Office Open XML does not define a macro language, leaving this aspect to be application-defined.
The standard is long, with the version submitted to ISO comprising 6546 pages. Google alleges that this length is unnecessary, saying that the OpenDocument specification is 867 pages in length and achieves the same goals. That coupled with the fast track standardization process, Google claims, reduces the review time per page ratio.
A comparison of some specific items in the format specification documents of Office Open XML and OpenDocument formats is used to claim disharmony within the Office Open XML format.