Standard practice?
Posted on 9 Oct 2007 at 11:11
Inspector Jon Honeyball rumbles Microsoft's apparent machinations in the ooxml file format battle, and doesn't like what he sees.
Now, let me explain my real worry about all this. Let's say I want to write an application that modifies Excel OOXML files. Maybe it's a batch-processing system, or something that sits on my mail-queue environment checking files for appropriate content before they're sent out. There are endless reasons why I might want to look inside an OOXML format file and make adjustments to its contents. Now, let's assume, for example, my application checks on data for validity before the file is cleared to leave the building. On the desktop, a user enters 1234.1234 into an Excel cell and the file is saved in OOXML format. Further down the workflow, the file is ready to be processed by this app I've just written: I open up the zip file, navigate to the XML part and look for the cell contents, which is now 1234.1233999999. What do I do now? Should I change it back to 1234.1234? Should I leave it as is, despite the fact that it fails to validate against the known input? What happens if this is a legally regulated environment? Is it acceptable for me to handcraft my own ad hoc number-fudging engine to attempt to undo what Excel appears to have done? It's an insoluble dilemma.
The inescapable reality is that OOXML is just an XMLified version of BIFF, and a whole pile of BIFF baggage has exposed what was previously hidden. Before, I was quietly confident it would be possible to read and write Office XML files by hand, using whatever tool I wanted on whatever platform, but the reality isn't so simple. And there lies the dilemma: if the user entered 1234.1234 and meant 1234.1234, is it acceptable in an ISO standard format for that data to be stored as 1234.1233999999? I'd say the answer is clearly no, and that either Microsoft needs to fully document and make open its numerical fudge engine, or else OOXML should store the right numbers.
Now how will you react when I tell you that the Open Office 2.2 format stores this same 1234.1234 value as:
<table:table-cell
office:value-type="float"
office:value="1234.1234"><text:p>1234.12</text:p>
</table:table-cell>
Let's just walk through that: it's a cell, it's of type float, it has the value 1234.1234 and its text representation is 1234.12 (presumably 2 place display is set). Seems straightforward enough to me. Microsoft, however, deems that <v>1234.1233999999999</v> is an adequate approximation, which it would be so long as it's only ever interpreted via Excel's number-fudging engine every time you open it, and which may not be the case if it's ever opened by someone else's code, including mine. Which format would I rather work with?
Either way, my faith in this whole matter of the OOXML file formats has taken a considerable battering, and I find the issue - including the accusations (true or otherwise) of stuffing the ISO committee at a late stage - to be quite upsetting. ISO standards should be held in the highest regard by everyone, and they can only work if they're perceived to be impartial, cleaner than clean and free of any commercial bias. Bringing the whole ISO process into disrepute is an offence that Microsoft won't escape from lightly in the end.
Download a year of Jon Honeyball's Advanced Windows columns by heading to our Free Downloads site
From around the web
advertisement
- Why you have to be left in the dark on OS patches
- Is Microsoft mismanaging Windows on ARM?
- Dealing with spam surrogates
- Why 3G broadband can be better and cheaper than ADSL
- Is Twitter bad for business?
- Publishing your email address isn't a security disaster
- Why you'll need a fax machine to develop iOS apps
- Learning to adapt to the mobile web
- Why you shouldn't use WPS on your Wi-Fi network
- Disabled users suffer when software breaks the rules
- Laptop bag reviews: nine tested
- Sony VAIO T Series Ultrabook review: first look
- Revealed: the military standards and robots HP uses to test its laptops
- Windows 8: multi-monitors and double standards?
- Why is TalkTalk's year-old porn filter suddenly big news?
- Why are laptop screens so far behind mobiles?
- HP EliteBook Folio review: first look
- The shoebox-sized all-in-one printer
- Forget the Ultrabook: here comes the HP Sleekbook
- HP Spectre XT review: first look
- Autonomy's Lynch joins 27,000 on way out of HP
- ICO: no fines for breaking cookie rules
- HP set to slash up to 30,000 jobs
- Government sites to miss cookie deadline
- Microsoft tweaks multi-monitor support in Windows 8
- Apple patches Leopard, despite ending support last year
- Defra opens rural broadband funding applications
- BT's broadband sales surpass calls revenue
- Apple patches multiple security issues
- FBI warns travellers to beware attacks via hotel Wi-Fi
advertisement

