[odf-discuss] What is actually necessary and found only in OpenXML?

Daniel daniel.carrera at zmsl.com
Sat Jun 2 11:40:21 EDT 2007


Alex wrote:
>> It's really, really, really simple. Anything marked "MAY" does NOT need
>> to be implemented, under any circumstance. Any other understanding is
>> plainly wrong.

Marbux replied:
> True, but irrelevant. The issue is not implementation of a feature, but
> preservation of metadata needed by other apps. And the RFC 2119 definition
> of "may" means that if it is required for interoperability, you have to
> preserve it. That's interoperability as in round-tripping.

No.
1) RFC 2119 does not say that you must preserve foreign tags needed for 
interoperability. It says that you must be able to deal with 
applications that include optional features without requiring yourself 
to actually support those features.

2) The distinction you are drawing for "foreign tags needed for 
interoperability" is useless since there is no way that an application 
can know whether or not foo:baz="35d" is needed for interoperability or 
not. The only way to preserve "foreign tags needed for interop" is to 
preserve all foreign tags.

3) Preservation of foreign tags, in general, is simply not feasible.

Let's do an example:

<p foo:baz="3te" class="octupus">...</p>

Then the user edits the paragraph and changes the class to "weasel". 
What should the implementation do? Is foo:baz="3te" needed for 
interoperability? Does that class mean "invertebrate"? Does it mean 
"brown"? And how about this:

<p foo:baz="3te" class="octupus">...</p>
<p foo:baz="3te" class="jelly">...</p>

And you insret a paragraph in between those two. Do you copy 
foo:baz="3te"? If this attribute means "paragraphs entered by MS Office" 
then no, you shouldn't. But if the attribute denotes a sequential list, 
not adding it could destroy the information.

And what if you have:

<frame foo:cwr="fk7">
    <p foo:baz="3te" class="octupus">...</p>
</frame>

Then a user moves that paragraph outside the frame. Should you keep the 
foo:baz value? Many attributes only make sense when they are contained 
by a certain tag (for example, the "list-style" attribute for a 
paragraph only makes sense if the paragraph is inside a list-item tag).

If the unknown tags have any sequential order (so that foo:baz="3te" 
before foo:cwr="fk7" means something different than if it comes before) 
that could break the unknown data too.

Therefore: In general this feature cannot be implemented. If you want 
something in a similar spirit implemented you must add an additional 
specification that makes it feasible. For example, a tag that says 
<copyThisVerbatim> inside the header, provided that changing its 
location in the header does not alter the information. That might be 
feasible, but what you requested, as stated, is not feasible.

Daniel.



More information about the odf-discuss mailing list