Schema Versioning

Paul Harrison paul.harrison at manchester.ac.uk
Mon Jul 18 15:18:51 CEST 2016


> On 2016-07 -18, at 13:03, Markus Demleitner <msdemlei at ari.uni-heidelberg.de> wrote:
> 
> Hi Grid,
> 
> Sorry to take this here, but since this is where the schema
> versioning thing started, I thought I'd take this here.
> 
> This is about the sluggish RFC on
> 
> http://wiki.ivoa.net/twiki/bin/view/IVOA/XMLVersRFC

I have to admit that this RFC had passed me by without my noticing for some reason. I will have a look.

> 
> Well, trying to apply schema versioning I encountered problems.  I've
> added a comment there (as "interested public", as it's not really
> Registry business).  To perhaps muster a couple of additional brain
> cells to come up with a good solution, I take the liberty of
> repeating my comment there here:
> 
> One problem I see with the proposal is transitioning. Unfortunately,
> most of our namespaces actually have a minor version in them.
> Consider, for example
> 
> * http://www.ivoa.net/xml/VOSIAvailability/v1.0
> * http://www.ivoa.net/xml/VOTable/v1.3
> * http://www.ivoa.net/xml/SIA/v1.1
> 
> This is problematic if we intend to evolve the schemas to new
> versions, because the namespace will insinuate something that is
> patently untrue. For instance (and this is already happening) the
> namespace of version 1.2 of the SIA registry extension will still be
> http://www.ivoa.net/xml/SIA/v1.1.
> 
> In the future, this kind of thing is fairly easy to avoid: Only put
> the major version into the namespace; I suppose we should use things
> like http://www.ivoa.net/xml/SIA1, http://www.ivoa.net/xml/SIA2, and
> so on (where this particular example stinks a bit because the
> extension schema is maintained independently of the standard).
> 
> For the transition, this isn't suitable. We have the "broken"
> namespaces.
> 
> I see a couple of escape routes.
> 
> (1) Comment that only legacy namespaces have minor versions in, and
>    these minor versions are to be ignored in the VO. Only the major
>    versions actually carry meaning.

This is what the schema versioning note tries to say, see the first point in the summary of recommendations. This is what was done for UMS1.1 too - the namespace still have a “1.0” in it but the other indicators of version in the instances and schema have “1.1” - this satisfies the constraints

* Don’t disrupt existing clients unnecessarily by presenting an unknown namespace.
* 1.1 level clients can understand that the schema is not the same as the original 1.0 schema even though the namespace is the same.

This only “works” of course if the changes are “minor” and that the clients are written in such a way that they are reasonably permissive - in only validating content that they “understand” and do not worry about “extra” content. They can still do strict schema validation, however, if they always pick up the “latest” schema for the namespace from the IVOA site, rather than working against an internal copy.

Cheers,
	Paul.






More information about the grid mailing list