Status of ODF 1.3 implementation in LibreOffice 7.0

Michael Stahl mst at libreoffice.org
Wed Jun 3 11:16:26 UTC 2020


On the master branch (and also libreoffice-7-0), the default ODF version 
is the newly added ODF 1.3 Extended; ODF 1.3 is also a newly available 
option.

For developers who want to add new ODF extensions, we would like to 
point out the behavioral change in commit
f1dbaac9e4b68941d845a5f0ab7b204e12de14de "xmloff: ODF export: rework 
version checks in SvXMLExportPropertyMapper"
(see commit message) that should simplify things a little bit.

* commits in LO master, for 7.0/7.1:

> d5b290dea1c8a8088b654ba8364906922b4c3a43 tdf#133555 xmloff: ODF export: don't produce text:drop-down in ODF 1.2
> bb95d189653d73911c187227ace682ba2b98172c tdf#133501 xmloff: ODF export: export annotation only if extended
> dee02bb5cfcd8f5835ec406a5f89ddb149d9a767 sc: ODF export: test new ODF 1.3 features exported to different versions
> 76a8e3fd2eb137ded34f818ad09b35c5094ac8ae sw: ODF export: test new ODF 1.3 features exported to different versions
> 316d68416dfee64d54ecaa4839a4045a4f205c4d tdf#102256 sw: ODF export: oops, don't write table attributes ...
> ef2e609b9c3c4b568e1d04360f81b5f614fa6bd8 tdf#103602 xmloff: ODF export of page style: don't export draw:fill
> 415fac828c4bb45fa23f7d81e93992b711f37810 tdf#103602 xmloff: ODF export: draw:background-size attribute
> 46f887893b15cab7375846763fc399a8bdb4238c Update git submodules
> d407019a69773156b0bb9ef0b4a775f67830949e tdf#41995: sxx: ODF export: save SVG to ODF 1.2 as well
> d6c7fbe28aca170e804c4ebe7c1101bb3345c2c2 [API CHANGE] officecfg,xmloff: remove SaveBackwardCompatibleODF
> c8406011eef27571529b2f497fdca449b9ab37bf chart2: avoid assert on SvxAdjustItem with WhichId 0
> c4df27dc893fc397725334f885cb6bdb2585924a sc: ODF export: OFFICE-3665 table:name on source-cell-range
> 693cefb59286daf6ff86f1db16f0d64b4b9b4588 tdf#89475 xmloff: ODF import/export: continue fixing draw:angle
> 34a513428d0786578c1c5f38fdc8a0fbd3b8f82f xmloff,filter: Flat ODF import: import BuildId from meta:generator
> d6ba23a7c0fbd4b59b8011012bbcaa002c5c84ca tdf#106780 xmloff: ODF export: only write invalid text:style-name...
> d705a860936a58e40a2894a12d02be585a06e1c1 tdf#102256 sw: ODF export: don't write table:table in shapes
> 97e9b250426ff09bba4546835ee9138d91e03fbb tdf#103602 xmloff,sw: ODF 1.3 export: PageStyle with drawing-page style
> 4e98ba4ba5c17ab8ae1170662af645b9d2bfde84 tdf#103602 xmloff,sw: ODF 1.3 import: PageStyle with drawing-page style
> bd03dc39f6f02a875590413378355daa4893a988 tdf#97630 xmloff: ODF export: fix draw:fit-to-size mess, step 2
> 9019288dc1ea8c6db615b9f8bbae14efc1ed8cd8 tdf#91306 xmloff: ODF export: allow style:page-number="0" in ODF 1.3
> 58c013516694b1083abdbc76300ed003f6a456c5 xmloff: ODF export: additional ODF 1.3 chart features
> a541cd91951eca15e40764244b34c72b347f9f26 officecfg,unotools,cui: add ODF 1.2 Extended / ODF 1.3 versions
> 101594c272a53727566b3533fd083178769a4b49 schema: adapt libreoffice schema to ODF 1.3
> 0ff75d6653e34b7cbb94f74ff8a71db9f738463e xmlsecurity: actually validate in testODFEncryptedGPG
> 75187e0a59b16b06c5adf16987919a39153030d5 upgrade ODF validator with ODF 1.3 support
> ba0d1a850ad118b5889a4814ef6d01b989029a58 package: ODF export: fix position of manifest:start-key-generation child
> 34ec838f0607564097cb08ce65165279e31888aa schema: update ODF 1.3 rng drafts to cs01
> e125c6c6693d4540ab3aacb11151e05b511b8051 replace hard-coded "1.2" ODF version strings
> bb6af185cb7a88dfc73ad067d928625f0a2ed590 xmloff: remove unused SvXMLExport::getDefaultVersion()
> 86cd3af48f8c00300d9826f3b7364e8447adb34e xmloff: ODF export: produce office:version="1.3"
> 5eda583443cd0ec323e925395ea734c20fdbcf13 package: OFFICE-3940 ODF 1.3 export of OpenPGP encryption
> 4f1b0f7d5235140611305b784b58f95fc5b8bd81 package: OFFICE-3940 ODF 1.3 import of OpenPGP encryption
> 1a60d388b566754d5fe6cee12adf7252a3206167 comphelper,sfx2,dbaccess: add ODFVER_013_TEXT constant
> 0777abafe01eb6c9ba6ed7412e44002c8018d972 filter,writerperfect: adapt XHTML,EPUB to draw:mime-type in ODF 1.3
> 816022a4d8a1878c8ea74f43a4821e3c8a12d1ea xmloff: ODF export: adapt to ODF 1.3
> 7c20c3c2a9fc85c66dad9d09908b257beeedd78d xmloff: ODF export: adapt all checks of ODFSVER_012 etc.
> 21ac2dae6a84b2c686abdbefb5d9bd10fed42680 sc,xmloff: ODF 1.3: adapt XMLPropertyMapEntry
> f1dbaac9e4b68941d845a5f0ab7b204e12de14de xmloff: ODF export: rework version checks in SvXMLExportPropertyMapper
> d840c7e15402dc3a133b400b113e28c0c78702c5 sc: ODF export: table:name extension element, step 1
> 561dd7ba983a0f40bff46169eb17358f73f6ff41 tdf#114400 Export drawoo:fontwork-xyz attributes
> 686d171303c3e9bbddf885ddfcfa65c5cb019733 sc: ODF export: style:hyperlink extension element, step 1
> 7f41eb8768160f79297712f3ac61a25a72dcd5a0 xmloff: ODF export: fix style:hidden nonsense, step 1
> e43ad1a8ae20cbd00c5c3346e1810196af6669a6 xmloff: GetEarliestODFVersionForExport(-1) is impossible
> 3a0a88083dc992015a64216bac94822af8eef6c1 replace ODFDefaultVersion usage with ODFSaneDefaultVersion...
> 36110559e9cd2b4f7c3dd173cb1cd60bb8d3df6f xmloff: rearrange XML_NAMESPACE_* and add some comments
> 638feb0e062537dd0f41b7b977b5b9fa1ac096ae sw: fix SwModelTestBase::parseExportedFile()
> d4d88774c505d3c6c6668dd06b941fb268e5a22b xmloff: ODF import: wrong Storage in SvXMLImport::IsODFVersionConsistent()
> 45f2e81c98a5b7fe6f021923fd93d20b3c5f3815 replace ODFDefaultVersion usage with ODFSaneDefaultVersion
> 9608f72347a8ec99f454802cc3cabc6e32d92370 ODF export: fix wrong definition of ODFSVER_LATEST_EXTENDED

* commits in LO libreoffice-7-0:

> 02b577f2f2f8bfea144ad156a55eec6e2b06ad7b tdf#133555 xmloff: ODF export: don't produce text:drop-down in ODF 1.2
> 22943b7445c363895f61b9ad270f96ce78ab6ab9 tdf#133501 xmloff: ODF export: export annotation only if extended
> 72292b89dad6e58c12df6614458900d8014d84e4 sc: ODF export: test new ODF 1.3 features exported to different versions
> d895ea993a789fa2bc2d113700ad54b4b7c49172 sw: ODF export: test new ODF 1.3 features exported to different versions
> 05dfd20fd42f57d681fb65d3fee6b5fe10f4ea1b tdf#103602 xmloff: ODF export of page style: don't export draw:fill
> b8403f48b68b64e05a0c50578b8bde67b300c783 tdf#102256 sw: ODF export: oops, don't write table attributes ...
> 4166cf43d2a56b0c2e9a3bf4c15d906be025ada6 tdf#103602 xmloff: ODF export: draw:background-size attribute

* commits in LO libreoffice-6-4:

> a3ef13b495d5898488ae52981bdaf8cf34db791c package: OFFICE-3940 ODF 1.3 import of OpenPGP encryption
> ca9a719169fa444b5d82942ae1d5600fa0114002 tdf#103602 xmloff,sw: ODF 1.3 import: PageStyle with drawing-page style

* ODF Toolkit:

The ODF Validator can now validate ODF 1.3 documents, both in the 0.9 
and 1.0 branches; the only missing feature is recognition of the new ODF 
Global Document Template media type, which requires ODFDOM to support 
ODF 1.3 first, so for this bit there are only pull requests that can't 
be merged yet.

* commits in ODF Toolkit master, for 0.9:

> 2726ab578664434a545f8379a01a9faffac0ae73 validator: add fallback validation of manifest.xml to work around OpenJDK bug
> e28cc360e982ff5a6dd3cc5e1de5a70c23a2479f Merge pull request #34 from smehrbrodt/odf13
> d3365e41ccbabd9dff69304118d0ea72257d5e49 Support 1.3 in web validator
> b12dd5d3b35818bb7d2123f8952343e42947c525 Merge pull request #33 from smehrbrodt/trailing-whitespace
> dffa78caba1081a0e46c8baf0bcb1ebfb634ef07 Update html page
> 8cdfa2c4e8270336760e4bc7aa786b9608cd3015 Validator: Support ODF 1.3

outstanding pull request/branch:
https://github.com/tdf/odftoolkit/pull/43

* commits in ODF Toolkit 1.0.0_SNAPSHOT:

> fb8b486c15e946c79f4893b8c088655b1747d8a3 Merge pull request #35 from smehrbrodt/1.0_odf13
> ad97802527da4446da08decd6d25d1bcd9643626 Merge pull request #38 from tdf/pr-36
> 0dd3d8d82a45c6ef2c010bb77ce0ccaa8c79be84 Merge branch '1.0.0_SNAPSHOT' into pr-36
> dbd777df2bcd1caee47613120184545706c46298 Merge pull request #36 from smehrbrodt/javadefault
> 36d1ff40b199a94f209b57d8e20a6f8a10cff77d Adding earlier Java path solution as fallback in case JAVA_HOME is not set
> 1705f39989a162327f23550a2b04e57ba4268e4c Merge pull request #37 from smehrbrodt/trailingwhitespace
> eb0a553251c1f5f8f21e636720567922fb885679 Whitespace changes during build
> 4eb2bbd34075c46f2876f48019038681e5d79645 Fix test failure when default java is older than what is used during build
> 265465868c9045ed9e33ff62183ca5029a67a6f8 Support 1.3 in web validator
> 3b8cdc76f941d42d12b991f07ebdc45bd09cae5a Update html page
> 87497a93f83b086cf054598f19258533431ba86c Validator: Support ODF 1.3

outstanding pull request/branch:
https://github.com/tdf/odftoolkit/pull/46
https://github.com/tdf/odftoolkit/pull/48

* Wiki:

Release notes are updated:

https://wiki.documentfoundation.org/ReleaseNotes/7.0#ODF_1.3

The page with instructions for adding new ODF extensions was adapted to 
changes:

https://wiki.documentfoundation.org/Development/ODF_Implementer_Notes

There is the page that (supposedly) lists all of the ODF extensions 
implemented by LO:

https://wiki.documentfoundation.org/Development/ODF_Implementer_Notes/List_of_LibreOffice_ODF_Extensions

We found that it didn't list 3 of the extensions that were implemented 
in ODF 1.3, which isn't too bad, but then we also found 39 more unlisted 
extensions that will have to be added to ODF 1.4 or later, which is 
really quite a surprising number. Not sure what could be done to 
incentivise keeping the Wiki up to date with new extensions...

It would be particularly helpful to expedite the extensions that are 
currently written erroneously into standard namespaces, so that by the 
time the next ODF version is finished, we can continue writing to the 
standard namespaces instead of switching to writing exclusively to 
extension namespaces; see the following commits:

> 686d171303c3e9bbddf885ddfcfa65c5cb019733 sc: ODF export: style:hyperlink extensi on element, step 1
> 7f41eb8768160f79297712f3ac61a25a72dcd5a0 xmloff: ODF export: fix style:hidden nonsense, step 1

* Backports for LTS branches:

We have tested how LO 5.2 imports new ODF 1.3 features: fortunately it 
turned out that for most of the ODF 1.3 features, the standard namespace 
was already recognized in the import in addition to any extension namespace.
We don't consider commits where the feature itself is missing in the 
core, only those where the import filter can't recognize the new markup.
There are a few commits that can still be backported to 5.2 (which 
subset would be required for newer release branches is left as exercise 
for the reader):

> ca9a719169fa444b5d82942ae1d5600fa0114002 tdf#103602 xmloff,sw: ODF 1.3 import: PageStyle with drawing-page style
> a3ef13b495d5898488ae52981bdaf8cf34db791c package: OFFICE-3940 ODF 1.3 import of OpenPGP encryption
> dd9232a6b2bcd32c7279e1476445214c6bb9e417 ODF1.3: import new OpenPGP encryption markup
> 8d0e6ad024f3154115bc39f9db4cec3a6afc59c4 Related: tdf#71737 xmloff: import of user-defined hyperlink was missing
> 6ca6d6ac912588a8f62d7e6b668ebec333752ebc Related: tdf#71737: allows links in more indexes
> 934ae5cd6fc2c676429c14834b929707fec9faa1 tdf#71737 xmloff: ODF 1.2 doesn't allow hyperlinks in ...
> 267ef9428dd3713746f405a8a650defede3a4005 tdf#71737: save allows links in illustration index, but load doesn't
> 9b9e6de5c4f6fe3eb9b02e91f7dd7e482ecac5fe tdf#114400 Import drawoo:fontwork-xyz attributes
> c027764f94a1fc0a367e03b412d3c11d6c10769c tdf#109080 First page header/footer ODF (1/2)
> 244dfe2f3fa874d99dacea191e2265a288457a98 tdf#97630 xmloff: ODF extended draw:fit-to-size mess
> cc68977f1be22ac0f4a15eb37e05ccba13a7a554 OFFICE-3776 xmloff: adapt ODF import to renamed text:sender-initials
> 82c038edb8ad3dc507de7044f5b71b06bd8886b9 tdf#106780 xmloff: import ODF 1.2 attribute table:name in addition to...

* Unimplemented ODF 1.3 features:

We found just 2 new features that are not or only partially implemented 
in LO, and have filed enhancement bugs for these:

* OFFICE-2117 chart data-label-series
   https://bugs.documentfoundation.org/show_bug.cgi?id=133176
* OFFICE-3765 number:fill-character in number:text-style
   https://bugs.documentfoundation.org/show_bug.cgi?id=133200
* OFFICE-3941 user-index-entry-template links
   https://bugs.documentfoundation.org/show_bug.cgi?id=121842

Thanks to Samuel and Svante for helping with the ODF Toolkit parts, and 
Regina for carefully testing everything.

... that was all :)


More information about the LibreOffice mailing list