The Disharmony of OOXML
[Quote:]
I sometimes hear it said that formats like OOXML, or ODF for that matter, are simply XML serializations of a particular application’s native data representation. This is said, seemingly, in an attempt to justify quirky or outright infelicitous representations. “We had no choice. Office 95 represents line widths in units of 1/5th of a barleycorn, so OOXML must as well”. This technological determinism indicates poor engineering judgment, laziness, or both.
An easy counter-example is HTML. Does HTML reflect the internals of NCSA Mosaic? Does it represent the internals of Netscape Navigator? Firefox? Opera? Safari? Are any faults in HTML properly justified by what a single browser does internally? Applications should follow standards, not the other way around.
[..]
With this in mind, let’s take a look at how OOXML and ODF represent a staple of document formats: text color and alignment. I created six documents: word processor, spreadsheet and presentation graphics, in OOXML and ODF formats. In each case I entered one simple string “This is red text”. In each case I made the word “red” red, and right aligned the entire string. The following table shows the representation of this formatting instruction in OOXML and ODF, for each of the three application types:
Format Text Color Text Alignment OOXML Text <w:color w:val=”FF0000″/> <w:jc w:val=”right”/> OOXML Sheet <color rgb=”FFFF0000″/> <alignment horizontal=”right”/> OOXML Presentation <a:srgbClr val=”FF0000″/> <a:pPr algn=”r”/> ODF Text <style:text-properties fo:color=”#FF0000″/> <style:paragraph-properties fo:text-align=”end” /> ODF Sheet <style:text-properties fo:color=”#FF0000″/> <style:paragraph-properties fo:text-align=”end”/> ODF Presentation <style:text-properties fo:color=”#FF0000″/> <style:paragraph-properties fo:text-align=”end”/> The results speak for themselves.
What is the engineering justification for this horror? I have no doubt that this accurately reflects the internals of Microsoft Office, and shows how these three applications have been developed by three different, isolated teams. But is this a suitable foundation for an International Standard?
March 27th, 2008 at 17:02
Throw them out. It’s horrible. But they won’t.