Office Open XML (also referred to as OOXML or OpenXML) is a file format for representing spreadsheets, charts, presentations and word processing documents. An Office Open XML document file contains mainly XML based files compressed within a zip package.
The Office Open XML format specification has been approved as a free and open Ecma 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.
The Office Open XML file formats have become the default file format of the most popular Office suite starting with Microsoft Office 2007.
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".
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.
The primary markup languages are:
Shared markup language materials include:
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.
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.
Type="http://schemas.microsoft.com/office/2006/relationships/image"
Target="http://en.wikipedia.org/images/wiki-en.png"
TargetMode="External" />
Type="http://schemas.microsoft.com/office/2006/relationships/hyperlink"
Target="http://www.wikipedia.org"
TargetMode="External" />
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.
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
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.
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.
xmlns:dcmitype="http://purl.org/dc/dcmitype/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
Microsoft also added the format to their Open Specification Promise in which
"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
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.
The specification entered fast-track standardization within ISO/IEC as DIS 29500 (Draft International Standard 29500). In a September 2007 vote by ISO/IEC member bodies, the draft text was not approved as an international standard. A ballot resolution process in March 2008 amended the text.
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 voting process of some national standardization bodies has become subject to controversy, due to alleged voting irregularities.
On May 21st, 2008, Microsoft announced that it will be an active participant in the future evolution of the Office Open XML standard.
In october 2008 ISO/IEC committee JTC1/SC34 (Document Description and Processing Languages) created a working group for maintenance of the ISO/IEC 29500 standard within ISO/IEC.
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.
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".
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.