odb ODF standard conformance [was: minutes of ESC call ...]
Michael Stahl
mstahl at redhat.com
Fri Jan 10 09:14:14 PST 2014
On 07/01/14 17:20, Lionel Elie Mamane wrote:
> On Mon, Jan 06, 2014 at 09:45:54PM +0100, Michael Stahl wrote:
>> On 20/12/13 14:40, Lionel Elie Mamane wrote:
>>> 2) manifest:manifest without version attribute: I have no clue what
>>> version I should put there. Any hint?
>
>> to expand on Thorsten's answer, "1.2", but only if that's the ODF
>> version; the attribute did not exist in ODF 1.1/1.0.
>
> I don't find how to set the manifest:manifest version. It seems to be
> in the GetVersion() of the m_pRootFolder of ZipPackage
> (package/source/zippackage/ZipPackage.cxx), but I don't see how that
> is ever set except when reading the file (that is, parsing the
> manifest). So where/when is it set when *writing* the file?
>
> I pushed a maybe-related fix, but in my testing it still does not set
> the version in the manifest... See
> http://cgit.freedesktop.org/libreoffice/core/commit/?id=67db0c190ed2fe0629380ca32d153d3f5ab475dc
>
> Help appreciated.
the relevant line for other files is in SfxObjectShell::SetupStorage():
> xProps->setPropertyValue("Version", uno::makeAny( ODFVER_012_TEXT ) );
xProps is the XStorage; dbaccess (and chart2) do not use SfxBaseModel so
they're missing that bit.
i'm not seeing any code to set "Version" in sw/source/filter/xml,
probably the "Version" you added in the above commit (which was
half-there is a broken way before) doesn't do anything?
ok i've pushed f60b61b2cf87e89938c760877a56bc4dd5c577a9 based on the
above, seems to work here.
>>> I need help on these:
>
>>> 1) fdo36288-2.odb/forms/Obj42/content.xml[2,17145]: Error: attribute
>>> "xlink:href" has a bad value: ".uno:FormController/saveRecord" does
>>> not satisfy the "anyURI" type
>
>>> What is the "right" way to put a .uno URI?
>
>> anyURI is actually an IRI reference in ODF (not that it makes a
>> difference here). RFC3987 says:
>
>> scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
>
>> ... so the problem is that it starts with "." where only ALPHA is
>> allowed. was that perhaps legal in a previous URI RFC or how did we end
>> up with this?
>
> <shrug> I don't know the history, but as far as I can see, that's how
> UNO commands are stored as a URI; that's also used extensively within
> LibreOffice, e.g. to give the action of a toolbar button.
hmm... the only option to make that conforming is to do some hack to
write "uno:" instead and add a "." when reading that ... but it would
create interop issues with older versions, and the ".uno:" urls are
specific to this code-base anyway, it's not like MSO will ever
understand those, so there are no real-world benefits to gain here...
More information about the LibreOffice
mailing list