MS-OOXML: a pseudo-standard that pretends to be open
Since the very beginning of the standardisation process for Microsoft's Office Open XML - OOXML (hereinafter MS-OOXML), the FSFE has expressed serious doubts about whether MS-OOXML could be considered as open, if even, as a standard at all. The FSFE first raised the issue in the community and led the movement against the standardisation of MS-OOXML, following closely over the years the relevant developments. But why can MS-OOXML still not be considered an Open Standard, despite its approval by international standards organisations?
What is Microsoft's OOXML?
MS-OOXML is an XML-based format for office documents developed by Microsoft. It covers word processing documents, spreadsheets, presentations, charts, diagrams, shapes, and other graphical material. MS-OOXML was first adopted in 2006 by ECMA International - a private international standards organisation - allegedly as an Open Standard.
In 2008, the International Standards Organisation (ISO) also approved the MS-OOXML, as international Open Standard under the ISO/IEC 29500, after Microsoft requested fast-track process. ISO approved the standard despite the fact that it was initially rejected, due to a big number of justified concerns expressed by its national member bodies.
How did we get there?
In 2001 a collective effort started to create an open document format, promoting Open Standards and trying to limit Microsoft's office software monopoly. The result of this effort which lasted four years, was the Open Document Format v1.0 (ODF), implemented with Free Software. It was first approved in 2006 as an OASIS Standard and later, by ISO/IEC JTC1 as an International Standard, under the code ISO/IEC 26300:2006. Such a format could threaten Microsoft's dominant position in the Document market, which at the time ran on closed formats. Under the fear of losing its power, the latter produced its own allegedly open document through a dubious ISO approval process.
As it can be imagined, the "new" format seemed in a first vote unnecessary to the ISO working group since there was already an existing document standard -ODF- and was, therefore, rejected. However, Microsoft, in a more political than technical process, got its proposal fast-tracked even though specific clauses of it still met resistance from the national member bodies. And this is the point in the revision process, where a suggestion came on the table, to create two sub-standards of MS-OOXML, namely ISO 29500 Transitional and ISO 29500 Strict. Here is what happened: the Strict version got accepted by ISO, while the Transitional version was granted to Microsoft, allowing it to exclude certain legacy features and facilitating conversion from the older closed-source binary formats.
ISO then gave its approval to MS-OOXML in 2008, and justified its decision by claiming that the market needed another document standard. It is noteworthy that Microsoft did not have, at the time of the approval, an available version of Microsoft Office that would be compliant to the ISO/IEC standard it has just passed. That was the result of the multiple changes on the original version of the standard in order for the approval process to move forward.
Consequently, although the older binary formats (.doc, xls, and .ppt) continued to be supported by Microsoft, MS-OOXML became the default standard of all Microsoft Office documents (.docx, .xlsx, and .pptx), starting with Microsoft Office 2007. Nevertheless, MS-OOXML Transitional is the only variant in widespread use and this is a note to keep in mind: those dual requirements led to a situation where one standard exists, and another format is fully implemented and spread all around, despite just having the status of an undocumented, proprietary specification. In other words, something that started as an intent to enable a transitional period was turned into a norm, setting obstacles to any interoperability claims.
At a glance, Microsoft Office 2010 provides read-support for ECMA-376, read/write-support for ISO/IEC 29500 Transitional, and read support for ISO/IEC 29500 Strict. Microsoft Office 2013 and Microsoft Office 2016 additionally support both reading and writing of ISO/IEC 29500 Strict. However, in all of them, the default option is the transitional one, meaning that the strict standard is still not used in practice, unless the users change the default settings ad hoc.
Is MS-OOXML a true open standard?
Although many people share the assumption that some widely used formats can be identified as Open Standards, there is a number of them that does not comply with the criteria listed in the Open Standards definition. MS-OOXML is one of them, the so-called pseudo-standards.
As first objection, MS-OOXML could be seen as unnecessary. Software engineers could instead use Open Document Format (ODF), as a less complicated office software format that was already an international standard at the time of the MS-OOXML review process, is also built upon XML technology and has the same theoretical capabilities. Microsoft itself is a member of OASIS, the organisation in which the ODF standard was developed and where it is being maintained. Microsoft was aware of the whole process and was invited to participate, but allegedly refused to do so, although it could have submitted its technological proposals to OASIS for inclusion into ODF. Having two overlapping standards for the same thing creates only further burden and confusion, and can be detrimental for competition.
Compatibility and interoperability
One of the alledged main advantages of MS-OOXML was its ability to allow for backward compatibility. However, in practice MS-OOXML seems to be compatible only with Microsoft documents, whilst its interoperability with products from other vendors appears to have been made extremely complicated by design. This is also related to the fact that MS-OOXML was initially designed to be compatible with existing Microsoft closed formats, in comparison to ODF, which was designed with the aim to achieve document interoperability.
Supporting pre-existing Open Standards
Whenever applicable and possible, standards should build upon previous standardisation efforts and not depend on proprietary, vendor-specific technologies. Albeit, MS-OOXML neglects various standards and uses its own vendor-specific formats instead. This puts a substantial burden on all vendors to fully implement MS-OOXML. It seems questionable how any third party could ever implement them equally well, especially when a standard comes with 6000 pages of specifications without serving its minimalistic purpose.
Proprietary, application-specific extensions are a known technique employed in standardisation by vendors to abuse monopoly. Abusive behaviour was at the core of the decision against Microsoft by the European Commission in 2004. For this reason, it is common understanding that Open Standards should not allow such proprietary extensions, and that such market-distorting techniques should not be possible on the grounds of an Open Standard.
Standards should not depend on certain operating systems, environments or applications, since application and implementation independence is one of the most important characteristics of all standards. Nevertheless, MS-OOXML includes references to particular Microsoft products.
MS-OOXML Strict does not serve its purpose as Open Standard. It was deliberately never implemented, to allow its transitional proprietary version to gain more ground as a default format for MS Office and to keep people locked in to proprietary solutions. See what you can do about it.