What is conformance, really?

by jlundstocholm 6. May 2008 12:58

The OOXML/ODF-blogsphere has been in a frenzy the last couple of weeks after a couple of posts made by yours truly and Alex Brown that was picked up by Rob Weir. I don't want to get into the technical details here - you should catch up on the conversations taking place in the comment sections of their respective blogs.

Bu I do want to talk a bit about conformance - because conformance should be much more than schema-validation. To be able to have a clear perspective, we need to look in the two specifications for how conformance is described.

ODF 1.0 (IS 26300):

Conformance is described in section 1.5 

Documents that conform to the OpenDocument specification MAY contain elements and attributes not specified within the OpenDocument schema. Such elements and attributes must not be part of a namespace that is defined within this specification and are called foreign elements and attributes.

So this means that the only requirements for a document to have an "ODF-conformant" sticker slapped on it is to be able to validate against the ODF schema. If the document contains elements or attributes not defined in ODF 1.0, they should be marked with their own namespaces. This is actually all there is to say about conformance of individual documents in ODF 1.0 .

The section further describes conformance requirements for consuming and producing applications:

Conforming applications either MUST read documents that are valid against the OpenDocument schema if all foreign elements and attributes are removed before validation takes place, or MUST write documents that are valid against the OpenDocument schema if all foreign elements and attributes are removed before validation takes place.

So this section describes requirements to how foreign elements are handled when writing and reading ODF documents.

OOXML 1.0 (IS 29500):

The conformance clauses for OOXML were (drastically) changed at the BRM. Conformance in OOXML is described with more details and most specifically it contains conformance clauses for the OOXML-package itself, the so-called "OPC-package".

As with ODF, an OOXML 1.0 document is conformant if it adheres to the schema described in the standard.

More specifically it says in Part 1 section 2.4

Document conformance is purely syntactic; it involves only Items 1 and 2 in §2.3 above.

  • A conforming document shall conform to the schema (Item 1 above) and any additional syntax constraints (Item 2).

Now, this is already more difficult to "put down on paper" than the ODF-equivilant. Because "Item 1" and "Item 2" are described in Part 1 section 2.3 as

  1. Schemas and an associated validation procedure for validating document syntax against those schemas. (The validation procedure includes un-zipping, locating files, processing the extensibility elements and attributes, and XML Schema validation.)
  2. Additional syntax constraints in written form, wherever these constraints cannot feasibly be expressed in the schema language.


As a side-note, Item 2 above was the exact reason Stepháne Rodriguez' example with the broken Calculation Chain was actually a non-conforming OOXML-document, but that's a completely different story.

Moreover OOXML describes a few "conformance classes", specifically "Wordprocessing", "Spreadsheet" and "Presentation"-classes. The intent here is to be able to claim conformance to parts of the OOXML-spec.

And just as ODF contained requirements for applications, so does OOXML. But it takes conformance a bit wider. Since there is an "Item 1" and "Item 2" above, there is also an "Item 3". This was modified at the BRM and now says:

3. Descriptions of element semantics. The semantics of an element refers to its intended interpretation by a human being. 

In section 2.5 of Part 1 it now says:

Application conformance incorporates both syntax and semantics; it involves items 1, 2 and 3 in §2.3 above.

So a conforming application also has to abide by the semantics of the specification of elements and attributes. In lay-man's terms this could be described as "A conforming application has to treat content faithfully with respect to the specification of it". So it basically tells applications not to make their own interpretation of the elements it encounter as it traverses the XML-tree.

Now, I know that this is just a crude introduction to conformance of ODF- and OOXML-documents, but I think it is important to get the ball rolling and to give everyone a feeling of the complexity of the concept.

Thoughts, anyone? 

Comments

5/6/2008 3:18:18 PM #

Rob Weir

I wouldn't take Section 1.5 as a complete statement of conformance requirements in ODF 1.0.  That sections deals merely with document processing and conformance.  If you search the specification for "MUST" you will find other requirements.

In ODF 1.2 we will move to the ISO control vocabulary, e.g., "shall" instead of "must".  We will also centralize and list all of the conformance requirements into one section.

But you are right that conformance will mainly be a matter of validity and package structure.  These are document standards, not standards for defining word processor applications.

Rob Weir United States | Reply

5/7/2008 8:52:20 AM #

jlundstocholm

Rob,

Will there in ODF 1.2 be a consolidation of the requirements for conformance? As a developer I would prefer to have a single location to look for the [u]scope of conformance[/b] and not have them scattered throughout the specification.

Also, will some details be included with regards to ODF package conformance? It seems odd to me that there is not a single requirement of how document conformance in relation to the (psysical) is defined.

(I have browsed through the latest draft of ODF 1.2 and I don't see real changes in terms of conformance)

Smile

jlundstocholm Denmark | Reply

5/7/2008 2:51:53 PM #

Rob Weir

OASIS periodically reviews its rules for standards, and adds new requirements.  One rule change they recently made was to add this requirement:

"A specification that is approved by the TC at the Public Review Draft, Committee Specification or OASIS Standard level must include a separate section, listing a set of numbered conformance clauses, to which any implementation of the specification must adhere in order to claim conformance to the specification (or any optional portion thereof)."

This rule did not apply to ODF 1.0 or ODF 1.1, but it will apply to ODF 1.2

The plan is also to have the packing conventions be in their own formal part, so they would have their own such conformance definition.

Rob Weir United States | Reply

5/8/2008 6:02:07 AM #

jlundstocholm

Hi Rob,

That sounds really good. I am looking forward to seeing the added text. Do you have an idea of when it will end up in the draft?

Thanks for supplying the information Smile

jlundstocholm Denmark | Reply

5/8/2008 3:54:31 PM #

Rob Weir

We'll probably do the conformance at the end, after all the other technical content has been settled.

Rob Weir United States | Reply

7/19/2009 12:31:35 AM #

Robert

Also, will some details be included with regards to ODF package conformance? It seems odd to me that there is not a single requirement of how document conformance in relation to the (psysical) is defined.

Robert Spain | Reply

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen

about ...

Image of Jesper Lund Stocholm

Name: Jesper
Nationality: Danish
Civil status: Married
Kids: a girl
Home town: CPH
iPhone-owner: Yes
ubuntu-edition: 9.04
Spam-impact: Moderate

(when spam-impact is anything but low, this blog is sadly moderated.)

Update 2009-07-11: I am experiencing really, really high spam influx these days, so I appologize if your legitimate comment is lost in the flood of crap.

OOXML ISO

Country adoption

Country ODF1.0
ODF1.1 OOXML
Ecuador x    
Norway
x  
UK x    
US x    
Vietnam x    

If you know of other countries that have decided on an approved document format, please let me know. I'll need a reference before it is added to the list.

Smile

Badges of honor

Burst A J
Microsoft Lackey  I I,
Microsoft booster   I,
Microsoft drone   I
ODF basher   I,
ODF Offender
I
I
Microsoft mole I  
IBM Drone   I
MS Provocateur   I
Pro-ms saboteur   I
Crony  I I
Microsoft's special friend I  
Micro$oft nazi I  
Microsoft minion   I
Nattering nabob O  


From Dec 16th 2009, new additions are marked with "O"

Quote

You have it backwards, OpenOffie should switch to OOXML so they are interoprable woth the worlds largest installed base.

Sorry, but the tail does not wag the dog.

From ZDNet (No_Ax_to_Grind)

License

The content of this blog is licensed under the Creative Commons "Attribution license"

Creative Commons Attribution license

This basically means, that you can do just about anything with the content I provide, but not in any way that suggests that I endorse you or your use of the content on my blog.