Binary space

From page 68 of the part1 of the specifications, 12.3.5 Custom Property Part, we can read:

This binary part supports the storage of arbitrary user-defined data.

<Relationships xmlns="…">
<Relationship Id="rId7"
Type="http://.../customProperty" Target="CustomProperty.bin"/>

Having such place to put binaries will create a nightmare if you want to provide interoperability between different vendors, as one vendor will put some closed proprietary binary extensions in there, as it is already the case with the vbaProject.bin binary of Microsoft Excell 2007.

This is how Microsoft is trying to justify the use of this binary space (this is quoted from one document they have circulated in some countries):

The use of custom property part is determined by the user who has decided to use it. This part provides a method for the user to place their own arbitrary binary data alongside their spreadsheet content. It is not an application behavior but a user behavior. It would not be possible to speculate on the various reasons an user would decide to store additional data outside of what is part of the Spreadsheet, which is why the use cases are not detailed in the spec.

OOXML is a binary dump

Quick and dirty formula:

OOXML is NOT a document interchange format. It’s MS Office binary wrapped in XML…

Bin space