text:id is deprecated
Jos van den Oever
jos.van.den.oever at kogmbh.com
Fri Dec 2 15:38:29 GMT 2011
After upgrading the calligra source code to the latest version of the Relax NG
schema, a problem became apparent.
In various places, Calligra uses text:id. In ODF 1.2, text:id has been
deprecated in many places in favor of xml:id. For <text:p> the specification
says:
-------
The text:id attribute specifies an identifier for an element.
OpenDocument consumers shall ignore a text:id attribute if it occurs on a
<text:p> element with an xml:id attribute value. If there is no xml:id
attribute value, then a text:id attribute should be processed as it were an
xml:id attribute.
OpenDocument producers may write text:id attributes for <text:p> elements in
addition to an xml:id attribute.
A <text:p> element shall not have an text:id attribute if it has no xml:id
attribute value. The value of a text:id attribute shall equal the value of an
xml:id attribute on the same <text:p> element.
The text:id attribute is deprecated in favor of xml:id. 19.914
-------
The same rules are defined for draw:text-box, text:changed-region, text:h, and
text:p. The quickest fix for this problem is to write out xml:id whereever
text:id is written on one of these elements.
I've fixed this in libs/kotext/opendocument/KoTextWriter_p.cpp as a start.
At least a few odf documents should now roundtrip to valid ODF documents.
Cheers,
Jos
--
Jos van den Oever, software architect
+49 391 25 19 15 53
074 3491911
http://kogmbh.com/legal/
More information about the calligra-devel
mailing list