Hi

I've started looking at how to add ODF 1.3 support to OpenOffice.

If you scroll to the end of the monstrously long part 3 of the ODF 1.3
specification at
https://docs.oasis-open.org/office/OpenDocument/v1.3/os/part3-schema/OpenDocument-v1.3-os-part3-schema.html
where you'll see "Appendix G: Changes From ODF 1.2 (Non Normative)".
Then examine:

"Document Fields – General 7.3.1 Office-3783"

and you follow that link to "Office-3783" and have a read, you'll see that
all it does is *fix a typo*:
Section 7.3.1 used to contain "OpenDocument fields display information
about the current document or about a specific part of the current
document.," - note the superfluous comma at the end - and now ends without
that comma!

So that item can immediately be ticked off as completed, because there is
nothing we have to do.

The same is also true for at least:
"table:table-background 19.733 Office-3954"

And:
"Normative References 1.3 Office-3868"
updates the <manifest:media-type> tag to refer to RFC6838 instead of the
older RFC4288, which also might require no work to implement.

So what we need is a table in our Wiki, with all "Changes From ODF 1.2"
items from all the 1.3 documents (there's several), and then to read over
them and mark off the ones that are irrelevant or complete, and track
progress on the other items where we do have some development to do on our
side.

Can someone please create such a Wiki page, or give me access to do so?

And out of interest, how do you find how and where we use an XML element or
attribute? For example let's examine:
<draw:applet> 10.4.7 Office-2044
which is deprecated by ODF 1.3.
First remember our XML parsing doesn't work on strings, that would be too
slow. Rather strings are converted to unique integers, and then we do fast
integer comparisons.
So if you go to main/xmloff and "grep applet * -R" you'll see:
source/core/xmltoken.cxx:        TOKEN( "applet",
 XML_APPLET ),
where XML_APPLET is an integer constant (from an enum) that the "applet"
element will be converted to.
Then go to OpenGrok and do a "Full Search" for "XML_APPLET", and you can
see where that's used.

I've also created a local odf-1.3 Git branch for any development, but at
present it only has 1 small patch to stop the version upgrade warning:

---snip---
diff --git a/main/sfx2/source/doc/objstor.cxx
b/main/sfx2/source/doc/objstor.cxx
index d794747b60..89ab8e1ca3 100644
--- a/main/sfx2/source/doc/objstor.cxx
+++ b/main/sfx2/source/doc/objstor.cxx
@@ -856,8 +856,8 @@ sal_Bool SfxObjectShell::DoLoad( SfxMedium *pMed )
                 if ( sVersion.getLength() )
                 {
                     double nVersion = sVersion.toDouble();
-                    if ( nVersion > 1.20001  &&
SfxObjectShell_Impl::NeedsOfficeUpdateDialog() )
-                        // ODF version greater than 1.2 - added some
decimal places to be safe against floating point conversion errors (hack)
+                    if ( nVersion > 1.30001  &&
SfxObjectShell_Impl::NeedsOfficeUpdateDialog() )
+                        // ODF version greater than 1.3 - added some
decimal places to be safe against floating point conversion errors (hack)
                     {
                         ::rtl::OUString sDocumentURL(
pMedium->GetOrigURL() );
                         ::rtl::OUString aSystemFileURL;
---snip---

If others want to help, I'd rather push that branch upstream soon, so we
can work on it together?

Regards
Damjan

Reply via email to