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