W3C home > Mailing lists > Public > xmlschema-dev@w3.org > July 2008

Re: XSD versioning ...

From: Pete Cordell <petexmldev@codalogic.com>
Date: Fri, 11 Jul 2008 16:23:12 +0100
Message-ID: <001e01c8e36a$0a91e070$ea00a8c0@Codalogic>
To: "Dragon Fly" <dragon-fly999@hotmail.com>, <xmlschema-dev@w3.org>

You can design your XSD schema so that it accommodates versioning.  This is 
mainly done using xs:any, but, especially in XSD 1.0, there are gotchas 
involved in this.  There's a good article on this at:


The story for XSD 1.1 should hopefully be a lot better.

One thing such versioning strategies miss is the ability to declare that 
certain version 2 concepts are required to be understood by a parser, 
otherwise the message should be rejected in some way.  This procedure has to 
be defined when version 1 is specified.  The method I like best is using an 
attribute called something like "Requires" in the top level element which 
contains a number of tokens that the receiving parser must understand in 
order to fully understand the message.  This to me keeps all the 
compatibility assessment in one place and allows for an easy go/no go 
decision quite early.

Just as an example, it might look like:

    <MySchema Requires="foo bar">...

That's said, your versioning strategy does depend on things like whether you 
have one way or two way communication, or there's an archival aspect to it 


Pete Cordell
For XML C++ data binding visit http://www.codalogic.com/lmx/

----- Original Message ----- 
From: "Dragon Fly" <dragon-fly999@hotmail.com>
To: <xmlschema-dev@w3.org>
Sent: Friday, July 11, 2008 3:24 PM
Subject: XSD versioning ...

What is the best way to handle XSD versioning? Let's say I have the 
following scenario ...

- Version 1 of the XSD is given to a customer.
- The customer writes a parsing program (that performs validation against 

3 months later ...

- A new element is added to version 2 of the XSD.
- The new XML files sent to the customer have the new element.
- The new XML files fail validations because version 1 of the XSD does not 
have the new element.

Is there anything that I can do to plan for this? Thank you.

Itís a talkathon Ė but itís not just talk.
Received on Friday, 11 July 2008 15:24:01 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 7 January 2015 14:56:14 UTC