Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


NoOp has carried out some interesting experiments by using an ODF Validator (below at the end).

This brings to mind a few observations.  They are intriguing for me because they illustrate
how tricky it is to assess conformance and also the pitfalls that lurk in assuming conformance
by default.  (As I said before, I think OpenOffice.org/LibreOffice are mostly conformant.
There is just no better calibration than that without some sort of serious account of any
deviations by design and solid testing for any deviations by mistake.

1. First, about the resiliency test documents at 
<http://tools.oasis-open.org/version-control/svn/oic/TestSuite/trunk/odf12/NameSpaceResilience/>

I was preoccupied with the variations of a single part of the package, the META-INF/manifest.xml
file that appears in each ODF package.  It did not occur to me to test the entire document in an
ODF Validator.  It is nevertheless gratifying that two of the three documents that have valid 
manifests are also valid according to the ODF Validator: 
<http://tools.odftoolkit.org/odfvalidator/>.

I should include the ODF Validator results along with the jing results.  But wait ...

2. It turns out that the ODF Validator rejects one of the test documents for invalid reasons.
That is, the validator doesn't handle XML namespaces properly itself.  It fails 03 *incorrectly*,
it fails 04 - 09 correctly.  So I shall add it in the row of ODF consumers rather than as an 
authority on the correct validation of the test documents.

3. ABOUT VALIDATORS AND SCHEMA CONFORMANCE
Schema validation is important because it is the fundamental syntactic check that the ODF 
document is well-formed.  It doesn't tell us that what an ODF-accepting application *does*
*with* *it* will be correct, and it doesn't tell us that the ODF-producing application 
is associating the correct syntax with the correct behavior on its part.  But it is definitely
a bar that an application is expected to jump over.

4. SILOS AND MONOCULTURES
It is quite possible that an application is handling an ODF feature incorrectly, but all 
appears to be well since the observed behavior does match what an user created using the
same software.  The breakdown in the use of ODF may not be apparent until interchange with
another product that supports the format and the mystery is revealed.  (This can also 
happen when round-tripping an export and reimport involving a different format than ODF,
but that is out of scope for this topic.)  There are some of those invisible deviations
detected in the validations that NoOp ran.

Now, when there is shared implementation, there is a monoculture problem:  The same, 
shall it be said, genetic disease, is inherited by all of the shared implementations, at
least until the defect is noticed in some other way.  At this point, it may actually need
to be concluded that the ODF Specification is the thing to fix unless it is simply too
unpalatable in a given case.

5. EXTENSIONS AND FOREIGN ELEMENTS

ODF does allow for extensions in a particular way.  It is by allowance of foreign elements.
ODF also allows certain characteristics of features to be implementation-defined (and 
documented) and implementation-dependent (and take your chances).  Only the occurrence of
foreign elements, attributes, and attribute values can be caught in an ODF Validator.
None of the documents that NoOp and I have tested give rise to any of those.

6. FINE DETAILS

NoOp's tests uncover interesting small problems in the way ODF is defined.  I invite scanning
over the reports that NoOp has included in his message, below, for the error messages 
related to
   fo:hyphenation-remain-char-count
   style:text-combine-start-char
   manifest:manifest version

 a. First, the fo:hyphenation-remain-char-count errors are errors.  The ODF Schema is 
violated.  Oddly, the problem for fo:hypenation-remain-char-count="0" is that XSL allows any 
number here, not just a positiveInteger, and the value used is by conversion to an
integer greater than "0".  But there's no question that the ODF Schema is violated.

 b. The style:text-combine-start-char="" is also wrong.  There must be exactly one
character in the attribute value.  One would have to look at the test document to know
what happened here.  The attribute is optional and it appears that it should have been
omitted if no character is specified.  This takes more work to analyze, and a document
having the defect is needed.

 c. The manifest:manifest lacking a version attribute is an interesting problem.
The Validator must be clever here, since the attribute is required only for ODF 1.2 
documents. However, the addition of the requirement was late in the development of
ODF 1.2 and it was probably misguided to not make it optional in 1.2 and maybe mandatory 
in ODF 1.3 documents.  (The attribute does not exist in ODF 1.0/1.1 at all.)
  So the change invalidates what 3.3.4 does, but 3.4.3 is all right in this respect.
I had something to do with this breakage by ODF hammer and I am embarrassed.  Worse yet, 
I am having a difficult time convincing the TC that it should be fixed.
  [My vote is to make it mandatory only in a manifest that requires that version in
order to be handled correctly.  Omission of the attribute alone should not be enough 
to make the manifest invalid if it is still a perfectly good ODF 1.0/1.1 manifest.
I get push-back from strict-conformance purists about this, though.]


-----Original Message-----
From: NoOp [mailto:glgxg@sbcglobal.net] 
Sent: Monday, October 03, 2011 11:20
To: users@global.libreoffice.org
Subject: [libreoffice-users] Re: Assessing ODF Conformance (Re: OASIS Standard ODF 1.2 Approved)

On 10/02/2011 08:55 PM, Dennis E. Hamilton wrote:
Tom Davis remarks that he's noticed a couple of ODF-related bugs for
LibreOffice and it is presumed that they have been fixed.  That's
good to know.

FWIW:
https://bugs.freedesktop.org/show_bug.cgi?id=37390
[[Bug 37390] LibreOffice does not create valid ODF.]

I ran the file:
NameSpaceResilience-02-DefaultNS.odt
from
<http://tools.oasis-open.org/version-control/svn/oic/TestSuite/trunk/odf12/NameSpaceResilience/>
through:
http://tools.odftoolkit.org/odfvalidator/
and it passes.

I then opened the file in LO 3.4.3 (linux) using the default 1.2
(extended) and saved it as:
NameSpaceResilience-02-DefaultNS_Extended_343.odt
and ran it through the same tool. Result is:

This file is NOT valid

Result details:

This file is NOT valid

Result details:

upload:///NameSpaceResilience-02-DefaultNS_Extended_343.odt/styles.xml[2,5299]:Error:attribute 
"fo:hyphenation-remain-char-count" has a bad value: "0" does not satisfy the "positiveInteger" 
type
upload:///NameSpaceResilience-02-DefaultNS_Extended_343.odt/styles.xml[2,5886]:Error:attribute 
"fo:hyphenation-remain-char-count" has a bad value: "0" does not satisfy the "positiveInteger" 
type
upload:///NameSpaceResilience-02-DefaultNS_Extended_343.odt:Info:Generator: LibreOffice/3.4$Linux 
LibreOffice_project/340m1$Build-302



Turned off 'extended' and used only 1.2 and resaved as:
NameSpaceResilience-02-DefaultNS_NonExtended_343.odt
Reran the test:

This file is NOT valid

Result details:

upload:///NameSpaceResilience-02-DefaultNS_NonExtended_343.odt/styles.xml[2,5249]:Error:attribute 
"fo:hyphenation-remain-char-count" has a bad value: "0" does not satisfy the "positiveInteger" 
type
upload:///NameSpaceResilience-02-DefaultNS_NonExtended_343.odt/styles.xml[2,5836]:Error:attribute 
"fo:hyphenation-remain-char-count" has a bad value: "0" does not satisfy the "positiveInteger" 
type
upload:///NameSpaceResilience-02-DefaultNS_NonExtended_343.odt:Info:Generator: 
LibreOffice/3.4$Linux LibreOffice_project/340m1$Build-302

Did the same with LO 3.3.4:

3.3.4 1.2 Extended:

Result for NameSpaceResilience-02-DefaultNS_Extended_334.odt

This file is NOT valid

Result details:

upload:///NameSpaceResilience-02-DefaultNS_Extended_334.odt/META-INF/manifest.xml[2,88]:Error:element
 "manifest:manifest" is missing "version" attribute
upload:///NameSpaceResilience-02-DefaultNS_Extended_334.odt/styles.xml[2,5441]:Error:attribute 
"style:text-combine-start-char" has a bad value: the length of the value is 0, but the required 
length is 1.
upload:///NameSpaceResilience-02-DefaultNS_Extended_334.odt/styles.xml[2,6028]:Error:attribute 
"fo:hyphenation-remain-char-count" has a bad value: "0" does not satisfy the "positiveInteger" 
type
upload:///NameSpaceResilience-02-DefaultNS_Extended_334.odt:Info:Generator: LibreOffice/3.3$Linux 
LibreOffice_project/330m19$Build-401

3.3.4 1.2 Non-extended:

Result for NameSpaceResilience-02-DefaultNS_NonExtended_334.odt

This file is NOT valid

Result details:

upload:///NameSpaceResilience-02-DefaultNS_NonExtended_334.odt/META-INF/manifest.xml[2,88]:Error:element
 "manifest:manifest" is missing "version" attribute
upload:///NameSpaceResilience-02-DefaultNS_NonExtended_334.odt/styles.xml[2,5391]:Error:attribute 
"style:text-combine-start-char" has a bad value: the length of the value is 0, but the required 
length is 1.
upload:///NameSpaceResilience-02-DefaultNS_NonExtended_334.odt/styles.xml[2,5978]:Error:attribute 
"fo:hyphenation-remain-char-count" has a bad value: "0" does not satisfy the "positiveInteger" 
type
upload:///NameSpaceResilience-02-DefaultNS_NonExtended_334.odt:Info:Generator: 
LibreOffice/3.3$Linux LibreOffice_project/330m19$Build-401


...


-- 
For unsubscribe instructions e-mail to: users+help@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted


-- 
For unsubscribe instructions e-mail to: users+help@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.