Developers can implement Open XML on a variety of platforms.
The description of paragraphs, styles, workbooks, worksheets, rows, and cells don’t have anything to do with whether you are writing code for Windows, Macintosh, Linux, or the iPhone. However, there are parts of the Open XML specification that the opponents of Open XML have said are platform dependant, such as the specification of embedded, linked objects, but this simply isn’t true. Of course, the best proof of platform neutrality are the many implementations of Open XML on a variety of platforms.I’ve written a fair amount of code that processes Open XML markup, and it is obvious that the markup is not platform specific.
Here is a screen clipping of an Open XML document that is being edited using ThinkFree.com. The screen clipping is of the Firefox web browser, and shows the editing of a document in a browser window.
ThinkFree’s rich web client runs using the Java Plug-in 1.6.0_05. It uses JRE version 1.6.0_05 Java HotSpot(TM) Client VM. ThinkFree’s server is a Linux server running Apache:
Hey, for those who want to live in a “No Microsoft Zone”, feel free to use ThinkFree to edit your Open XML documents. ThinkFree’s browser implementation works just as well on other platforms, such as Macintosh and Safari.
The same document looks like this in Microsoft Word 2007:
The opponents of Open XML who say that Open XML is tied to one particular platform are spreading disinformation.
I’ve made a short list of the various ways that Open XML embodies good cross-platform design:
- Open XML is based on standards that have been implemented on many platforms: XML and Unicode.
- Open XML is based on the widely deployed ZIP file format, as documented in the PKWARE specification. Open XML only uses the DEFLATE decompression method, which the first and most commonly implemented compression method for ZIP files.
- Several countries wanted improved interoperability with existing W3C standards by eliminating dependencies on specific Web browsers, such as Mozilla Firefox, Microsoft Internet Explorer, or Apple Safari. In the BRM, it was proposed to have a mechanism where applications can customize content for browsers according to their support for different levels of W3C HTML, XHTML, and CSS content.
- Some people falsely believed that the spec was tied to COM. However, object embedding and linking is implementable on multiple platforms. The KParts example that I posted demonstrates that object embedding and linking is actually quite easy. Some schema processors are not fully compliant with the specification. The Open XML reference schemas were tweaked so that they could be accommodate a broad set of platforms.
- Beyond that, Open XML allows for schema languages other than XSD for the validation of Open XML markup. Specification conformant Open XML can be validated using RELAX NG, Schematron, and NVDL schemas.
The specification is very much platform agnostic. In the BRM, it was made even more so.
The proof of the cross-platform capabilities are found in actual implementations:
- Microsoft Office 2008 for the Mac uses as its native file format ECMA 376, compatible with Office 2007 for Windows.
- ThinkFree allows users to access Open XML documents via a web interface, or through a rich client interface. The rich client interface is supported on Windows, Linux, and Macintosh systems.
- Other implementations, including iPhone from Apple, Dataviz Documents to Go from Palm, and Gnumeric from Gnome.