OASIS Open Document Format for Office Applications (OpenDocument) TC

 View Only

The structure of ODF 1.2 Conformance

  • 1.  The structure of ODF 1.2 Conformance

    Posted 10-05-2009 16:42
    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 
    requirements.
    
    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, 1.4.2.1 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