Office Open XML file formats

Last updated
Office Open XML Document
X-office-document.svg
Filename extension
.docx, .docm
Internet media type
application/vnd.
openxmlformats-officedocument.
wordprocessingml.
document [1]
Developed by Microsoft, Ecma, ISO/IEC
Initial release2006;18 years ago (2006)
Type of format Document file format
Extended from XML, DOC, WordProcessingML
Standard ECMA-376, ISO/IEC 29500
Website ECMA-376, ISO/IEC 29500:2008
Office Open XML Presentation
X-office-presentation.svg
Filename extension
.pptx, .pptm
Internet media type
application/vnd.
openxmlformats-officedocument.
presentationml.
presentation [1]
Developed by Microsoft, Ecma, ISO/IEC
Type of format Presentation
Extended from XML, PPT
Standard ECMA-376, ISO/IEC 29500
Website ECMA-376, ISO/IEC 29500:2008
Office Open XML Workbook
X-office-spreadsheet.svg
Filename extension
.xlsx, .xlsm
Internet media type
application/vnd.
openxmlformats-officedocument.
spreadsheetml.
sheet [1]
Developed by Microsoft, Ecma, ISO/IEC
Type of format Spreadsheet
Extended from XML, XLS, SpreadsheetML
Standard ECMA-376, ISO/IEC 29500
Website ECMA-376, ISO/IEC 29500:2008

The Office Open XML file formats are a set of file formats that can be used to represent electronic office documents. There are formats for word processing documents, spreadsheets and presentations as well as specific formats for material such as mathematical formulas, graphics, bibliographies etc.

Contents

The formats were developed by Microsoft and first appeared in Microsoft Office 2007. They were standardized between December 2006 and November 2008, first by the Ecma International consortium, where they became ECMA-376, and subsequently, after a contentious standardization process, by the ISO/IEC's Joint Technical Committee 1, where they became ISO/IEC 29500:2008.

Container

Container structure of Part 2 of the Ecma Office Open XML standard, ECMA-376 Open Packaging Convention.png
Container structure of Part 2 of the Ecma Office Open XML standard, ECMA-376

Office Open XML documents are stored in Open Packaging Conventions (OPC) packages, which are ZIP files containing XML and other data files, along with a specification of the relationships between them. [2] 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 provided MIME type information for parts of the package, using defaults for certain file extensions and overrides for parts specified by IRI.
_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/.rels
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.

Relationships

An example relationship file (word/_rels/document.xml.rels), is:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><Relationshipsxmlns="http://schemas.microsoft.com/package/2005/06/relationships"><RelationshipId="rId1"Type="http://schemas.microsoft.com/office/2006/relationships/image"Target="http://en.wikipedia.org/images/wiki-en.png"TargetMode="External"/><RelationshipId="rId2"Type="http://schemas.microsoft.com/office/2006/relationships/hyperlink"Target="http://www.wikipedia.org"TargetMode="External"/></Relationships>

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:

<w:hyperlinkr:id="rId2"w:history="1"xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">

In this example, the Uniform Resource Locator (URL) is in the Target attribute of the Relationship referenced through the relationship Id, "rId2" in this case. Linked images, templates, and other items are referenced in the same way.

Pictures can be embedded or linked using a tag:

<v:imagedataw:rel="rId1"o:title="example"/>

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.

Document properties

Office Open XML uses the Dublin Core Metadata 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:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><cp:corePropertiesxmlns:cp="http://schemas.openxmlformats.org/package/2006/metadata/core-properties"xmlns:dc="http://purl.org/dc/elements/1.1/"xmlns:dcterms="http://purl.org/dc/terms/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><dc:title>OfficeOpenXML</dc:title><dc:subject>Fileformatandstructure</dc:subject><dc:creator>Wikipedia</dc:creator><cp:keywords>OfficeOpenXML,Metadata,DublinCore</cp:keywords><dc:description>OfficeOpenXMLusesISO15836:2003</dc:description><cp:lastModifiedBy>Wikipedia</cp:lastModifiedBy><cp:revision>1</cp:revision><dcterms:createdxsi:type="dcterms:W3CDTF">2008-06-19T20:00:00Z</dcterms:created><dcterms:modifiedxsi:type="dcterms:W3CDTF">2008-06-19T20:42:00Z</dcterms:modified><cp:category>Documentfileformat</cp:category><cp:contentStatus>Final</cp:contentStatus></cp:coreProperties>

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.

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.

Design approach

Patrick Durusau, the editor of ODF, has viewed the markup style of OOXML and ODF as representing two sides of a debate: the "element side" and the "attribute side". He notes that OOXML represents "the element side of this approach" and singles out the KeepNext element as an example:

<w:pPr><w:keepNext/></w:pPr>

In contrast, he notes ODF would use the single attribute fo:keep-next, rather than an element, for the same semantic. [3]

The XML Schema of Office Open XML emphasizes reducing load time and improving parsing speed. [4] In a test with applications current in April 2007, XML-based office documents were slower to load than binary formats. [5] To enhance performance, Office Open XML uses very short element names for common elements and spreadsheets save dates as index numbers (starting from 1900 or from 1904). [6] 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[ citation needed ] 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 naming of elements and attributes within the text has attracted some criticism. There are three different syntaxes in OOXML (ECMA-376) for specifying the color and alignment of text depending on whether the document is a text, spreadsheet, or presentation. Rob Weir (an IBM employee and co-chair of the OASIS OpenDocument Format TC) asks "What is the engineering justification for this horror?". He contrasts with OpenDocument: "ODF uses the W3C's XSL-FO vocabulary for text styling, and uses this vocabulary consistently". [7]

Some have argued the design is based too closely on Microsoft applications. In August 2007, the Linux Foundation published a blog post calling upon ISO National Bodies to vote "No, with comments" during the International Standardization of OOXML. It said, "OOXML is a direct port of a single vendor's binary document formats. It avoids the re-use of relevant existing international standards (e.g. several cryptographic algorithms, VML, etc.). There are literally hundreds of technical flaws that should be addressed before standardizing OOXML including continued use of binary code tied to platform specific features, propagating bugs in MS-Office into the standard, proprietary units, references to proprietary/confidential tags, unclear IP and patent rights, and much more". [8]

The version of the standard submitted to JTC 1 was 6546 pages long. The need and appropriateness of such length has been questioned. [9] [10] Google stated that "the ODF standard, which achieves the same goal, is only 867 pages" [9]

WordprocessingML (WML)

Word processing documents use the XML vocabulary known as WordprocessingML normatively defined by the schema wml.xsd which accompanies the standard. This vocabulary is defined in clause 11 of Part 1. [11]

SpreadsheetML (SML)

Spreadsheet documents use the XML vocabulary known as SpreadsheetML normatively defined by the schema sml.xsd which accompanies the standard. This vocabulary is described in clause 12 of Part 1. [11]

Each worksheet in a spreadsheet is represented by an XML document with a root element named <worksheet>...</worksheet> in the http://schemas.openxmlformats.org/spreadsheetml/2006/main Namespace.

The representation of date and time values in SpreadsheetML has attracted some criticism. ECMA-376 1st edition does not conform to ISO 8601:2004 "Representation of Dates and Times". It requires that implementations replicate a Lotus 1-2-3 [12] bug that erroneously treats 1900 as a leap year. Products complying with ECMA-376 would be required to use the WEEKDAY() spreadsheet function, and therefore assign incorrect dates to some days of the week, and also miscalculate the number of days between certain dates. [13] ECMA-376 2nd edition (ISO/IEC 29500) allows the use of 8601:2004 "Representation of Dates and Times" in addition to the Lotus 1-2-3 bug-compatible form. [14] [15]

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, [16] footnotes, comments, images and elaborate formatting and styles. [17] 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 [18] through XSL Transformations; tools are provided with office suite and are automatically used via clipboard transformations. [19]

The following Office MathML example defines the fraction:

<m:oMathPara><!-- mathematical block container used as a paragraph --><m:oMath><!-- mathematical inline formula --><m:f><!-- a fraction --><m:num><m:r><m:t>π</m:t></m:r></m:num><!-- numerator containing a single run of text --><m:den><m:r><m:t>2</m:t></m:r></m:den><!-- denominator containing a single run of text --></m:f></m:oMath></m:oMathPara>

Some have queried the need for Office MathML (OMML) instead advocating the use of MathML, a W3C recommendation for the "inclusion of mathematical expressions in Web pages" and "machine to machine communication". [20] Murray Sargent has answered some of these issues in a blog post, which details some of the philosophical differences between the two formats. [21]

DrawingML

Example of DrawingML charts DrawingML example.png
Example of DrawingML charts

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. [22]

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.

A DrawingML graphic's dimensions are specified in English Metric Units (EMUs). It is so called because it allows an exact common representation of dimensions originally in either English or metric units—defined as 1/360,000 of a centimeter, and thus there are 914,400 EMUs per inch, and 12,700 EMUs per point, to prevent round-off in calculations. Rick Jelliffe favors EMUs as a rational solution to a particular set of design criteria. [23]

Some have criticised the use of DrawingML (and the transitional-use-only VML) instead of W3C recommendation SVG. [24] VML did not become a W3C recommendation. [25]

Foreign resources

Non-XML content

OOXML documents are typically composed of other resources in addition to XML content (graphics, video, etc.).

Some have criticised the choice of permitted format for such resources: ECMA-376 1st edition specifies "Embedded Object Alternate Image Requests Types" and "Clipboard Format Types", which refer to Windows Metafiles or Enhanced Metafiles  – each of which are proprietary formats that have hard-coded dependencies on Windows itself. The critics state the standard should instead have referenced the platform neutral standard ISO/IEC 8632 "Computer Graphics Metafile". [13]

Foreign markup

The Standard provides three mechanisms to allow foreign markup to be embedded within content for editing purposes:

These are defined in clause 17.5 of Part 1.

Compatibility settings

Versions of Office Open XML contain what are termed "compatibility settings". These are contained in Part 4 ("Markup Language Reference") of ECMA-376 1st Edition, but during standardization were moved to become a new part (also called Part 4) of ISO/IEC 29500:2008 ("Transitional Migration Features").

These settings (including element with names such as autoSpaceLikeWord95, footnoteLayoutLikeWW8, lineWrapLikeWord6, mwSmallCaps, shapeLayoutLikeWW8, suppressTopSpacingWP, truncateFontHeightsLikeWP6, uiCompat97To2003, useWord2002TableStyleRules, useWord97LineBreakRules, wpJustification and wpSpaceWidth) were the focus of some controversy during the standardisation of DIS 29500. [26] As a result, new text was added to ISO/IEC 29500 to document them. [27]

An article in Free Software Magazine has criticized the markup used for these settings. Office Open XML uses distinctly named elements for each compatibility setting, each of which is declared in the schema. The repertoire of settings is thus limited for new compatibility settings to be added, new elements may need to be declared, "potentially creating thousands of them, each having nothing to do with interoperability". [28]

Extensibility

The standard provides two types of extensibility mechanism, Markup Compatibility and Extensibility (MCE) defined in Part 3 (ISO/IEC 29500-3:2008) and Extension Lists defined in clause 18.2.10 of Part 1.

Related Research Articles

Mathematical Markup Language (MathML) is a mathematical markup language, an application of XML for describing mathematical notations and capturing both its structure and content, and is one of a number of mathematical markup languages. Its aim is to natively integrate mathematical formulae into World Wide Web pages and other documents. It is part of HTML5 and standardised by ISO/IEC since 2015.

The Organization for the Advancement of Structured Information Standards is a nonprofit consortium that works on the development, convergence, and adoption of projects - both open standards and open source - for cybersecurity, blockchain, Internet of things (IoT), emergency management, cloud computing, legal data exchange, energy, content technologies, and other areas.

Vector Markup Language (VML) is an obsolete XML-based file format for two-dimensional vector graphics. It was specified in Part 4 of the Office Open XML standards ISO/IEC 29500 and ECMA-376. According to the specification, VML is a deprecated format included in Office Open XML for legacy reasons only.

A document file format is a text or binary file format for storing documents on a storage media, especially for use by computers. There currently exist a multitude of incompatible document file formats.

The Open Document Format for Office Applications (ODF), also known as OpenDocument, is an open file format for word processing documents, spreadsheets, presentations and graphics and using ZIP-compressed XML files. It was developed with the aim of providing an open, XML-based file format specification for office applications.

This is an overview of software support for the OpenDocument format, an open document file format for saving and exchanging editable office documents.

<span class="mw-page-title-main">Rick Jelliffe</span>

Richard (Rick) Alan Jelliffe is an Australian programmer and standards activist, particularly associated with web standards, markup languages, internationalization and schema languages. He is the founder and Chief Technical Officer of Topologi Pty. Ltd, an XML tools vendor in Sydney. He has a degree in economics from the University of Sydney.

Office Open XML is a zipped, XML-based file format developed by Microsoft for representing spreadsheets, charts, presentations and word processing documents. Ecma International standardized the initial version as ECMA-376. ISO and IEC standardized later versions as ISO/IEC 29500.

This article describes the technical specifications of the OpenDocument office document standard, as developed by the OASIS industry consortium. A variety of organizations developed the standard publicly and make it publicly accessible, meaning it can be implemented by anyone without restriction. The OpenDocument format aims to provide an open alternative to proprietary document formats.

The following article details governmental and other organizations from around the world who are in the process of evaluating the suitability of using (adopting) OpenDocument, an open document file format for saving and exchanging office documents that may be edited.

The Microsoft Office XML formats are XML-based document formats introduced in versions of Microsoft Office prior to Office 2007. Microsoft Office XP introduced a new XML format for storing Excel spreadsheets and Office 2003 added an XML-based format for Word documents.

The Open Packaging Conventions (OPC) is a container-file technology initially created by Microsoft to store a combination of XML and non-XML files that together form a single entity such as an Open XML Paper Specification (OpenXPS) document. OPC-based file formats combine the advantages of leaving the independent file entities embedded in the document intact and resulting in much smaller files compared to normal use of XML.

The Office Open XML file formats, also known as OOXML, were standardised between December 2006 and November 2008, first by the Ecma International consortium, and subsequently, after a contentious standardization process, by the ISO/IEC's Joint Technical Committee 1.

This is a comparison of the Office Open XML document file format with the OpenDocument file format.

The Office Open XML format (OOXML), is an open and free document file format for saving and exchanging editable office documents such as text documents, spreadsheets, charts, and presentations.

In computing, Open Data Protocol (OData) is an open protocol that allows the creation and consumption of queryable and interoperable Web service APIs in a standard way. Microsoft initiated OData in 2007. Versions 1.0, 2.0, and 3.0 are released under the Microsoft Open Specification Promise. Version 4.0 was standardized at OASIS, with a release in March 2014. In April 2015 OASIS submitted OData v4 and OData JSON Format v4 to ISO/IEC JTC 1 for approval as an international standard. In December 2016, ISO/IEC published OData 4.0 Core as ISO/IEC 20802-1:2016 and the OData JSON Format as ISO/IEC 20802-2:2016.

References

  1. 1 2 3 Microsoft. "Register file extensions on third party servers". microsoft.com. Retrieved 2009-09-04.
  2. Tom Ngo (December 11, 2006). "Office Open XML Overview" (PDF). Ecma International. p. 6. Retrieved 2007-01-23.
  3. Patrick Durusau (21 October 2008). "Old Wine In New Skins" (PDF).
  4. Intellisafe Technologies. "Software Developer uses Office Open XML to Minimize File Space, Increase Interoperability" (PDF).
  5. George Ou (2007-04-27). "MS Office 2007 versus Open Office 2.2 shootout". ZDnet.com. Archived from the original on 2009-03-26. Retrieved 2007-04-27.
  6. "Differences between the 1900 and the 1904 date system in Excel". Microsoft. 2013-03-05. Retrieved 2016-08-23.
  7. Rob Weir (14 March 2008). "Disharmony of OOXML".
  8. John Cherry (14 March 2008). "OOXML — vote "No, with comments"".
  9. 1 2 "Google's Position on OOXML as a Proposed ISO Standard" (PDF). Google. February 2008. Archived from the original (PDF) on 2010-08-18. If ISO were to give OOXML with its 6546 pages the same level of review that other standards have seen, it would take 18 years (6576 days for 6546 pages) to achieve comparable levels of review to the existing ODF standard (871 days for 867 pages) which achieves the same purpose and is thus a good comparison. Considering that OOXML has only received about 5.5% of the review that comparable standards have undergone, reports about inconsistencies, contradictions and missing information are hardly surprising
  10. "OOXML: What's the big deal?". IBM. 2008-02-19. Archived from the original on 2009-10-03.
  11. 1 2 "ISO/IEC 29500-1:2016". ISO and IEC. 2016-11-01.
  12. Kyd, Charley (October 2006). "How to Work With Dates Before 1900 in Excel". ExcelUser. Retrieved 2009-09-16.
  13. 1 2 "The Contradictory Nature of OOXML". ConsortiumInfo.org. 17 January 2007.
  14. "ECMA-376 2nd edition Part 1 (3. Normative references)". Ecma-international.org. Retrieved 2009-09-16.
  15. "New set of proposed dispositions posted, including more positive changes to the Ecma Office Open XML formats – Dispositions now proposed for more than half of National Bodies' comments". Ecma-international.org. 2007-12-11. Retrieved 2009-09-16.
  16. Jesper Lund Stocholm (2008-02-12). "Do your math - OOXML and OMML (Updated 2008-02-12)". A Mooh Point blog. Archived from the original on 2016-03-26. Retrieved 2015-11-18.
  17. Murray Sargent (2007-06-05). "Science and Nature have difficulties with Word 2007 mathematics". MSDN blogs. Retrieved 2007-07-31.
  18. David Carlisle (2007-05-09). "XHTML and MathML from Office 2007". David Carlisle. Retrieved 2007-09-20.
  19. "DevBlogs".
  20. "Microsoft Office dumped by Science and Nature". ZDNet Australia. 18 June 2007.
  21. "DevBlogs".
  22. Wouter Van Vugt (2008-11-01). "Open XML Explained e-book". Openxmldeveloper.org. Archived from the original on 2007-10-28. Retrieved 2007-09-14.
  23. Jelliffe, Rick. "Why EMUs?". O'Reilly XML Blog. O'Reilly. Archived from the original on 2014-12-29. Retrieved 2009-05-19.
  24. "The X Factor". reddevnews.com. October 2007.
  25. "VML — the Vector Markup Language". W3.org. 1998-05-13. Retrieved 2009-05-19.
  26. "ODF/OOXML technical white paper — A white paper based on a technical comparison between the ODF and OOXML formats". Free Software Magazine.
  27. "ECMA-376 2nd edition Part 4 (paragraph 9.7.3)". Ecma-international.org. Retrieved 2009-09-16.
  28. "ODF/OOXML technical white paper — A white paper based on a technical comparison between the ODF and OOXML formats". Free Software Magazine. "... OOXML chose this route. Rather than create an application-definable configuration tag there is a unique tag for each setting ... Currently, the only application's unique settings that are catered for are the applications that the standard's authors have decided to include, ... For other applications to be added, further tag names would need to be defined in the specification, potentially creating thousands of them, each having nothing to do with interoperability ..".