Ok - this post is going to be soooo different than what I had envisioned. I had prepared documents for "object embedding" and "document protection" but when I started testing them, I soon realized that only Microsoft Office 2007 implemented these features - at least amongst the applications I had access to. These were:
Microsoft Office 2007 SP2
OpenOffice.org 3.0.1 (Windows)
OpenOffice.org 3.0.1 (Mac OS X)
NeoOffice (Mac)
iWorks 09 (Mac)
The reason?
- OOo3 doesn't fully support object embeddin
- OOo3 doesnt support document protection
- iWorks doesn't support object embedding at all
- iWorks doesn't support document protection
So I'll just give you one example of what will happen when strict documents come into play - when applied to document protection.
Document protection is the feature that allows an application to have a user enter a password and unless another user knows of this password, he or she cannot open the document in, say, "write-mode". There is no real security to it, though, it is simply a hashed password that gets stored in the document.
This data is stored in the "settings.xml"-file in the document, and this was rather drastically changed during the ISO-process.
If you use Microsoft Office 2007 to protect your document, it will result in an XML-fragment like this:
[code:xml]<w:documentProtection
w:edit="readOnly"
w:enforcement="1"
w:cryptProviderType="rsaFull"
w:cryptAlgorithmClass="hash"
w:cryptAlgorithmType="typeAny"
w:cryptAlgorithmSid="4"
w:cryptSpinCount="100000"
w:hash="XbDzpXCrrK+zmGGBk++64G99GG4="
w:salt="aX4wmQT0Kx6oAqUmX6RwGQ=="/>[/code]
You will have to look into the specification to figure out what it says, but basically it tells you that it created the hash using the weak algorithm specified in ECMA-376.
But as I said, this was changed during the BRM. Quite a few of the attributes are now gone for the strict schemas, and my take on a transformation of the above to the new, strict edition is this:
[code:xml]<w:documentProtection
w:edit="readOnly"
w:enforcement="1"
w:algorithmName="typeAny"
w:spinCount="100000"
w:hashValue="XbDzpXCrrK+zmGGBk++64G99GG4="
w:saltValue="aX4wmQT0Kx6oAqUmX6RwGQ=="/>[/code]
'Only thing I am a bit unsure about is the value for the attribute "algorithmName", but I guess it would be "typeAny". The result? Microsoft Office 2007 detects that the document has been protected, but it cannot remove the protection again - presumably due to the new attributes added to the schemas. I thought about creating new values using e.g. SHA-256 as specified in the spec, but the chances that Microsoft Office 2007 would detect this in unknown attribute values are almost nothing, so I didn't bother doing this. Feel to play around with it yourself.
The Chase
We need a namespace change for the strict schemas - and am thinking about ALL of the strict schemas including OPC. If we don't do it this way, my estimate is that we will lose all kinds of data - and the existing applications will not (as they behave currently) inform their users of it. Making existing applications break is a tough call, but I value data/information integrity more than vendors needing to update a bit of their code.
And as for the conformance attribute? Well, the suggestion as it is currently is to enlarge the range of allowed values of this attribute. Somehow I think it makes sense to enlarge the range as well.I think it would make sense to have the values one of
- strict
- transitional
- ecma-376
or something similar. Then when we make a new revision at some point in the future, we can add version numbers to them at that time. Changing the namespaces will also make it possible to use MCE to take advantage of new features of IS29500 while maintaining compatibility with existing applications supporting only ECMA-376 1ed. (more about this later)
And what should the schemas be named?
Well, they are currently like "http://schemas.openxmlformats.org/wordprocessingml/2006/main" . So an obvious choice would be "http://schemas.openxmlformats.org/wordprocessingml/JLUNDSTOCHOLM/main"

... or maybe simply "http://schemas.openxmlformats.org/wordprocessingml/main" would be better? Of course it introduces easy causes for errors for developers, so maybe "http://schemas.openxmlformats.org/wordprocessingml/iso/main" would be even better?
3ed94fd2-9463-4366-b31d-bc9afa58ff19|0|.0|96d5b379-7e1d-4dac-a6ba-1e50db561b04