254 lines
11 KiB
HTML
254 lines
11 KiB
HTML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<html>
|
||
<version>1</version>
|
||
|
||
<head>
|
||
<title>MS-OOXML – Overview</title>
|
||
</head>
|
||
|
||
<body class="article" microformats="h-entry">
|
||
|
||
<p id="category">
|
||
<a href="/activities/activities.html">Our Work</a>
|
||
</p>
|
||
|
||
<h1 class="p-name">MS-OOXML: a pseudo-standard that pretends to be open</h1>
|
||
|
||
<div class="e-content">
|
||
|
||
<div id="introduction">
|
||
|
||
<p>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<a href="/freesoftware/standards/standards.html">
|
||
Open Standard</a>, despite its approval by international standards
|
||
organisations?</p>
|
||
|
||
</div>
|
||
|
||
<h2 id="What-is-microsoft's-ooxml">What is Microsoft's OOXML?</h2>
|
||
|
||
<p>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 <a href="http://www.ecma-international.org/publications/standards/Ecma-376.htm">
|
||
ECMA International</a> - a private international standards organisation -
|
||
allegedly as an Open Standard.</p>
|
||
|
||
<p>In 2008, the International Standards Organisation (ISO) also approved
|
||
the MS-OOXML, as international Open Standard under the
|
||
<a href="http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html">
|
||
ISO/IEC 29500</a>, 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.</p>
|
||
|
||
|
||
<h2 id="how-did-we-get-there">How did we get there?</h2>
|
||
|
||
<p>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 <a href="https://www.oasis-open.org/">OASIS Standard</a>
|
||
and later, by <a href="http://www.iso.org/iso/home.html">ISO</a>/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.</p>
|
||
|
||
<p>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.</p>
|
||
|
||
<p>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.</p>
|
||
|
||
<p>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.</p>
|
||
|
||
<p>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.</p>
|
||
|
||
|
||
<h2 id="is-ms-ooxml-a-true-open-standard">Is MS-OOXML a true open standard?</h2>
|
||
|
||
<p>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
|
||
<a href="/freesoftware/standards/def.html">Open Standards definition</a>.
|
||
MS-OOXML is one of them, the so-called pseudo-standards.</p>
|
||
|
||
<h3 id="dual-standards">Dual Standards</h3>
|
||
|
||
<p>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.</p>
|
||
|
||
<h3 id="compatibility-and-interoperability">Compatibility and interoperability</h3>
|
||
|
||
<p>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.</p>
|
||
|
||
<h3 id="supporting-pre-existing-open-standards">Supporting pre-existing
|
||
Open Standards</h3>
|
||
|
||
<p>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
|
||
<a href="/freesoftware/standards/minimalisticstandards.html">
|
||
minimalistic</a> purpose.</p>
|
||
|
||
<h3 id="proprietary-extensions">Proprietary extensions</h3>
|
||
|
||
<p>Proprietary, application-specific extensions are a known technique
|
||
employed in standardisation by vendors to abuse monopoly. Abusive behaviour
|
||
was at the core of <a href="/activities/ms-vs-eu/timeline.html">
|
||
the decision against Microsoft by the European Commission in 2004</a>.
|
||
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.</p>
|
||
|
||
<h3 id="application-independence">Application independence</h3>
|
||
|
||
<p>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.</p>
|
||
|
||
<h2 id="conclusion">Conclusion</h2>
|
||
|
||
<p>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. <a href="/freesoftware/standards/standards.html#what-can-you-do">
|
||
See what you can do about it.</a></p>
|
||
|
||
</div>
|
||
</body>
|
||
|
||
<sidebar promo="our-work">
|
||
<dynamic-content/>
|
||
|
||
<h2>Table of Contents</h2>
|
||
<ul>
|
||
<li>
|
||
<a href="#what-is-microsoft's-ooxml">What is Microsoft's OOXML?</a>
|
||
</li>
|
||
<li>
|
||
<a href="#how-did-we-get-there">How did we get there?</a>
|
||
</li>
|
||
<li>
|
||
<a href="#is-ms-ooxml-a-true-open-standard">
|
||
Is MS-OOXML a true open standard?
|
||
</a>
|
||
</li>
|
||
<li style="padding-left:10px;">
|
||
<a href="#dual-standards">Dual Standards</a>
|
||
</li>
|
||
<li style="padding-left:10px;">
|
||
<a href="#compatibility-and-interoperability">Compatibility and interoperability</a>
|
||
</li>
|
||
<li style="padding-left:10px;">
|
||
<a href="#supporting-pre-existing-open-standards">Supporting pre-existing Open Standards</a>
|
||
</li>
|
||
<li style="padding-left:10px;">
|
||
<a href="#proprietary-extensions">Proprietary extensions</a>
|
||
</li>
|
||
<li style="padding-left:10px;">
|
||
<a href="#application-independence">Application independence</a>
|
||
</li>
|
||
<li>
|
||
<a href="#conclusion">Conclusion</a>
|
||
</li>
|
||
</ul>
|
||
|
||
<h2>Further reading</h2>
|
||
|
||
<ul>
|
||
<li>
|
||
<a href="/activities/msooxml/msooxml-interoperability.html">FSFE Context Briefing: Interoperability woes with MS-OOXML
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/activities/msooxml/msooxml-idiosyncrasies.html">FSFE Context Briefing: DIS-29500: Deprecated before use?
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/activities/msooxml/msooxml-questions.html">Six questions to national standardisation bodies
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
|
||
<h2>External links of interest</h2>
|
||
<ul>
|
||
|
||
<li>
|
||
<a href="http://www.groklaw.net/articlebasic.php?story=20061208135621706">Article on Groklaw: Novell's "Danaergeschenk"
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/activities/msooxml/msooxml-questions-for-ms.html">Article on BBC: Questions for Microsoft on open formats
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a href="/activities/msooxml/msooxml-converter-hoax.html">Article on Heise.de: The converter hoax
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</sidebar>
|
||
</html>
|
||
<!--
|
||
Local Variables: ***
|
||
mode: xml ***
|
||
End: ***
|
||
-->
|