Guide to Versioning XML Languages using XML Schema 1.1

I took an Action to look at the "Guide to Versioning 
XML Languages using XML Schema 1.1":

  http://www.w3.org/TR/2006/WD-xmlschema-guide2versioning-20060928/

This first Working Draft, edited by our very own David Orchard,
introduces a variety of techniques for evolving XML messages made 
possible using the XML Schema 1.1 specification, itself a 
Working Draft as of 31 Aug:

   http://www.w3.org/TR/2006/WD-xmlschema11-1-20060831/

This document may be seen as a mini-Primer, introducing the new features 
for "versioning" provided by XML Schema 1.1

Reading the document, I was unclear which examples
were valid XML Schema 1.0 documents, which cases relied up additional
features of an XML Schema 1.1 processor, and which used the additional
elements and attributes introduced by XML Schema 1.1.

Also in some cases I had to play "spot the difference" between two
similar messages, some judicious highlighting may help.

The document discusses new features of XML Schema 1.1:

  1. Weak wildcards - permits wildcards adjacent to optional elements
  2. Updated All Group - wildcards within All Group
  3. Negative wildcard - exclude specific namespaces and names

These operate by relaxing where xs:any may occur and adding new syntax
in the form of a "notQName" attribute to xs:any, e.g:

  <xs:any notQName="name:name name:given name:family" 
      processContents="lax" minOccurs="0" maxOccurs="unbounded"/>

I'd like to see a table/guide of of new XML Schema 1.1 syntax with
references to the spec.

I'm unclear of the expected impact of passing the additional syntax to 
existing XML Schema 1.0 processors. It would be helpful if the document 
explained how to identify schemas containing the new constructs if 
indeed the xs namespace hasn't changed.

The document also cites mechanisms that are possible/probable/under 
discussion for the next Working Draft (of Schema 1.1?). I found this
interesting, but less easy to grasp:

  4. Fallback To Declared Type - use declared type if xsi:type is unknown
  5. Auto-insertion of wildcards
  6. Not in Schema wildcard - a wildcard that allows anything not defined in the current schema

Of these, personally I think (5) and (6) are particularly interesting as they
go towards final proposals and discussions made under our LC124 which changed
how an existing XML Schema 1.0 document may be processed differently to allow
more open content.

Except, AIUI, the examples all use a new "openContenct" (name not fixed) model
group, e.g.:

  <xs:openContent namespace="##any" processContents="lax">
     <xs:element .../>
     <xs:element .../>
  </xs:openContent>

I didn't spot a way to engage this flexibility at the schema level, or 
globally when processing existing Schema documents, which must be how many 
people would like to work. If this isn't allowed, hightlighting the 
restriction would be useful.

I personally find the use of xsi:type (4) rather worrying:

   http://blog.whatfettle.com/2006/11/29/xsitype-is-evil/

There are also placeholder sections for:

  12.5 Version numbers
  12.6 MustUnderstand

Overall I'm concerned at the wide variety of new features and techniques 
being introduced, and the strong likely hood how few will be implemented 
in a consistent manor by implementations across the board, but it's good
to see them enumerated in a single focussed document.

The document lacks a reference section, cites the 31 August XML Schema 1.1
WD, but doesn't AFAICT link to it.

--------------------------------------------
Proposed WG Actions:

We should first congratulate the XML Schema WG for pursuing
this very important topic, of interest to the WSD WG and providing what 
appears to be a number features directly targeted at enabling the
description of Web services messages which may evolve.  

We should reference this document as from the Primer in the
list of works "relevant to versioning of Web services description"
in Section 5.2.

We can also now remove the Primer ednote: 

"""
20050706 This section may be subject to change dependent upon the outcome 
of the WSDL Last Call Issue LC124, which discusses support compatible evolution 
of messages described using XML Schema 1.0.
"""

Let's plan to review the note formally when it's 
closer to final publication.

Paul

Received on Friday, 15 December 2006 12:50:36 UTC