OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]

Subject: The structure of ODF 1.2 Conformance

As we finish up ODF 1.2 we should pay particular attention to how the 
conformance clauses of each relate.  This is especially important as 
conformance in ODF 1.2 is more finely structured than it was with ODF 1.1. 
 Along with different conformance "targets" (Documents, Producers, 
Consumers) we also have conformance "levels" in OpenFormula (large, medium 
and small) and conformance "classes" in Parts I and III  (normal versus 
Extended conformance).  We need to ensure that it is clear how the 
conformance of the parts relate to each other.

The structure of conformance in ODF 1.2, Part I looks like this:

We have three top-level conformance targets:

Conforming OpenDocument Documents
Conforming OpenDocument Producers
Conforming OpenDocument Consumer

The document conformance defines the requirements that are statically 
testable, such as RNG validity and other structural constraints.  And the 
Producer/Consumer targets state the dynamic, runtime or behavioral 

This structure is echoed in Part II, although it is not as explicit as it 
needs to be in the latest draft.  But there is an intent to express static 
as well as dynamic conformance, which we can call conformance targets:

OpenFormula Expression
OpenFormula Evaluator

There are also conformance levels of "small", "medium" and "large" apply 
to each of these conformance targets.  For example, the "medium" level 
permits a larger range of functions than the "small" level.

And Part III defines conformance for:

Conforming OpenDocument Packages
Conforming OpenDocument Package Producer
Conforming OpenDocument Package Consumer

This also partitions the static and the dynamic requirements.

There are other conformance targets, dealing with "extended" documents and 
specialized document types like spreadsheets", but let's make sure we have 
things hooked up properly for these core conformance targets first.  In 
particular we want to make sure that this static/dynamic or 
structural/behavioral distinction is respected as we define how 
conformance relates among the parts.

For example, in Part I, we say:

"(D1.1)If the document is an OpenDocument package, then 
        (D1.1.1)it shall be a conforming ODF package as defined by the 
OpenDocument specification part 3: Packages,"

This is good, since the draft of Part III defines the requirements of a 
"conforming OpenDocument package".  We probably want to put "conforming 
OpenDocument package" in italics as a conformance target name.  Since this 
is a normative reference, we should also make sure that Part I formally 
references Parts II and III.

However, "Conforming OpenDocument Package Producer" does not reference 
"Conforming OpenDocument Package Producer" at all, so it does not trigger 
those requirements.  This seems like an error.

Similarly "Conforming OpenDocument Consumer" does not refer to "Conforming 
OpenDocument Package Consumer".

So in those two cases we have Part III conformance targets that are 
orphaned.  Nothing refers to them.

Would it help if we deprecated or removed the single-XML file option from 
ODF 1.0/1.1?  Does anyone actually support that today?  It would be a lot 
simpler to be able to say that a conforming ODF document is always a 
conforming Package, etc.

Part I also defines specialized document conformance targets for each of 
the major ODF document types:

Conforming OpenDocument Text Document
Conforming OpenDocument Spreadsheet Document
Conforming OpenDocument Drawing Document
Conforming OpenDocument Presentation Document
Conforming OpenDocument Chart Document
Conforming OpenDocument Image Document

Each of these conformance targets inherits the requirements of "Conforming 
OpenDocument Documents" and adds requirements that the document be 
harmoniously typed according to the target, specifically:

1. office:mimetype must match the document type
2. mimetype file in the package must match the document type
3. The child element of  <office:body>  must be proper for the document 

Additionally, Conforming OpenDocument Spreadsheet Document requires:

"(D1.2) All table:formula attribute values shall be namespace prefixed and 
the namespace prefix shall correspond to the 
"urn:oasis:names:tc:opendocument:xmlns:of:1.2" namespace.

(D1.3) All table:formula attribute values shall conform to the syntax 
defined by OpenFormula."

I think that (D1.3) is more correctly expressed as "All table:formula 
attribute values shall be conformant OpenFormula Expressions according to 
Part II of this standard". 

Note that there are no specialized Consumer or Producer classes according 
to document type.  So there is nothing here that directly states that a 
spreadsheet application must evaluate formulas according to the 
requirements of OpenFormula.  I think this needs to be fixed,

Finally, we have the various "extended" conformance targets:

In Part I:

Conforming OpenDocument Extended Documents
Conforming OpenDocument Extended Producers

In Part III:

Conforming OpenDocument Extended Packages
Conforming OpenDocument Package Extended Producer

However, the relationship between "Conforming OpenDocument Extended 
Documents" and "Conforming OpenDocument Extended Packages" is not stated. 
Was one intended?  Right now there is no reference to the "Extended 
Packages" conformance targets from Part I.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]