[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