It's interesting to see the varying emotions people have had in reaction to the standardization of the Office Open XML formats. It was obviously an immense amount of work, and it resulted in a 6,000 page standard. As you all know by now, the reason there was so much information in the specification was that we absolutely had to ensure that all the information people currently had in their existing set of Office binary documents could be ported over into the new format (with no loss).
In addition to that, we wanted to make sure we did our best to ensure that anyone coming trying to build support for the OpenXML formats in their solution had all the information they would need for consuming and producing those documents. This meant we had to go beyond the basics, and document all the pieces of the format we could. This is where you start to see the differences between the approach taken with the ODF standard and the OpenXML standard. In the ODF standard, the decision was made to leave a lot of the pieces out of the standard and to instead have them be application defined. This means you have a simpler standard, but it also means that interoperability is much more difficult to achieve. Let me explain:
As you start to document a specific feature in a file format, you have a few choices:
One of the sections people have been wondering about in the Open XML spec is section 2.15 in part 4 (Markup Language Reference). That section defines a couple hundred document level settings. Some of for application behaviors like "don't check spelling." Others are for display behaviors like "show gridlines on tables." And others are for layout behaviors like "align tables row by row."
The important thing for people to realize is that many of these settings are common in a number of Wordprocessing applications. KOffice, OpenOffice, and Microsoft Office all have a similar set of document settings. In ODF, they took the "application defined" approach for the settings, rather than either partially or fully documenting (similar to the original approach with spreadsheet formulas). So, if you save out a blank text document or spreadsheet from OpenOffice you'll get the following set of extended properties, and not a single one of these appear in the ODF standard (many of these directly impact the interoperability of the document in terms of layout and display):
If you were to use KOffice to open the document, it wouldn't understand any of these settings as they are all in the http://openoffice.org/2004/office namespace and not defined in the ODF standard. The OpenOffice folks most likely document many of these on their own site so KOffice could use that material when trying for interoperability, but at that point they've had to go beyond the ISO standard and start to rely on application specific information that OASIS and ISO have no say over.
In KOffice they also have document settings (although it doesn't appear to be nearly as much as OpenOffic) So with KOffice, you would get a different set of properties (here are a few I found):
Let's compare that with the OpenXML specification where the large majority are fully documented, and only a few are partially documented (none are application defined). Also note that all of these are completely optional for implementation, and even within Microsoft Office we try to move our customers toward turning many of them off (especially the application specific legacy behaviors). Obviously there may be more settings out there in other applications than what we've specified, and the spec is fully extensible to allow for those as well. We wanted to try to cover all of those currently in use, and as we find new ones we can add them to the spec if needed:
-Brian