XML Schema Versioning Policies: Endorsed Note - Request for TCG Comments and Approvals
Document Link:
XML Schema Versioning Policies
Comments from the interested public
One problem I see with the proposal is transitioning. Unfortunately, most of our namespaces actually have a minor version in them. Consider, for example
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 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.
- 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.
- Say that, with these legacy namespaces, micro versions are to be used. That is, the next version of the SIA schema will declare its version as 1.1.1 (and after 1.1.2 and so on).
Opinions?
-
- This is now addressed in sect. 2.2.3 (we're telling people to ignore minor versions in namespace URIs) -- MarkusDemleitner - 2018-02-27
--
MarkusDemleitner - 2016-07-18
Comments from TCG members
WG chairs or vice chairs must read the Note, provide comments if any and formally indicate if they approve or do not approve of the Note. IG chairs or vice chairs are also encouraged to do the same, although their inputs are not compulsory.
TCG Chair & Vice Chair ( _Matthew Graham, Pat Dowler )
Minor editorial:
- In 2.2.1, the "in service responses" qualifier could probably be removed since I thin all these rules have to apply to clients that send xml documents as well. For example, vospace clients send node documents and the service should be able to tell which minor version the client is sending.
- The next paragraph could probably use some additonal explanation or an example. A good example is the transfer negotiation in vospace: the service can return an UWS job XML document (with UWS namespace and version attr) and inside the document (inside jobInfo element) is a VOSpace transfer document with it's own namespace and version attr).
- Put in an abridged example for vospace-within-uws in rev. 4773 -- MarkusDemleitner - 2018-02-27
- In 2.2.3, the example UWS/2 namespace URI has a period after it; to be clear that the namespace is ".../UWS/2" and not ".../UWS/2." I would probably remove the period.
- I see your point. I've put in a blank before the period now, which I hope should be sufficient for clarity without irritating those who'd like to see a period after every sentence. -- MarkusDemleitner - 2018-02-27
Approved.
--
PatrickDowler - 2018-02-14
Applications Working Group ( _Pierre Fernique, Tom Donaldson )
I totally approve the purpose of this note. It is a pragmatic approach for improving the interoperability without breaking the necessary protocol validation level. It is perfectly adapted to the IVOA context.
I have one point to precise before approving it formally : Is it really the responsability of the TCG to decide if a standard evolution requires just a minor update mechanism, or more ? (section 2.1.1). I suppose that the authors of a standard evolution are certainly more able to know if the backward compatibility is, or is not guarantee. The TCG should just check the proposal.
- I guess everyone agrees that whether or not something is a major version is up to the authors in the first place. On the other hand, I'd argue a new major version, in particular of a popular standard other standards may depend on, is a profound event that ideally should be taken in consensus with the wider community. Thus, I'd argue the current language is ok. -- MarkusDemleitner - 2018-02-27
And a suggestion: the syntax of the minor and major number version should be probably explained somewhere at the begining of the document.
- That's part of DocStd, and I'd like to avoid repeating things here in order to avoid future inconsistencies -- MarkusDemleitner - 2018-02-27
--
PierreFernique - 2016-04-25
Data Access Layer Working Group ( François Bonnarel, Marco Molinaro )
We consider that this managing of minor ad major versions is well written and allow a major improvement for standards development and management. We accept it but we agree with the concerns on introduction of section 2 as stated by others. We also would like to read in the intro that this note is part of standard and processes policy. The new "IVOA Document standards" doculent should refer also to the present endorsed note
Typos : page 3 2.1 "Specific structual changes" ---> "Specific structural changes"
section 3 "As this note now recommends that there are potentially many minor versions of a schema all in the same namespace the actual file than the first from of the URL above points to must be updated when a new minor version is published."must be updated when a new minor version is published." ????? We don't catch this ... maybe this means : ---> "As this note now recommends that there are potentially many minor versions of a schema all in the same namespace, the actual file that the first form of the URL above points to must be updated when a new minor version is published." ???
- Oops -- yes, that sentence has broken. Fixed to read "As this note now recommends that there are potentially many minor versions of a schema all in the same namespace, the location that the namespace URI redirects to must be updated when a new minor version is published." in rev. 4774. -- MarkusDemleitner - 2018-02-27
--
FrancoisBonnarel - 2017-01-11 --
MarcoMolinaro - 2017-01-11
Data Model Working Group ( _Mark Cresitello-Dittmar, Laurent Michel )
The approach seems very sensible and appropriate for the IVOA.
Opinions on other comments:
+ about TCG role (2.1.1). I agree that it should be careful about the role of the TCG in determining the version. For backward compatibility items, this should be straight forward and responsibility is on the author side. For errata issues, it seems more likely that the effects will be cross group.. a minor change from the DM perspective, may have larger repercussions on the Registry.. so more TCG involvment may be needed.
+ section 2 intro: I found the wording of the fist sentence confusing.. (not equivalent if only difference is the namespace declaration).. seemed like a typo. I needed the rest to clarify the intent. I think there is purpose to the paragraph, but I think the phrasing could be improved. Also, the case described, would only be true if there were no new 'optional' elements added in the instance.
+ section 2.2.1: "root elements must have a version attribute". I'm not too familiar with the details there.. but. Adding a 'must', would invalidate current responses which don't include it, so this may have to be a 'strongly encouraged' type of thing. I'm not sure I understand Marcus' comments about the root element, but specifying where to find this information seems like a good thing. If not on the root element.. where?
Reply from Paul Harrison
on the subject of
must - what this means in practice is that the 1.1 standards document has to say the version attribute
must be added, but in practice for the 1.1 schema the attribute can only be marked as 'optional' to be in compliance with a 1.0 instance that did not have the attribute. Of course a new 1.0 level schema created after this note should add the version attribute as a mandatory attribute from the beginning.
end reply
Other extremely minor items:
+ section 2.2: has a double 'the'.. "it becomes imperative that
the the minor"
+ since the 'official' schema will be associated only with REC standards, I'd prefer the example 'version' texts be for RECs, not PR or WD.
--
MarkCresitelloDittmar - 2016-05-02
Grid & Web Services Working Group ( Brian Major, Giuliano Taffoni )
I believe that the approach described to supporting minor changes to a major version in a client compatible way is complicated, but probably the best that can be done in such circumstances. We at the CADC are using this approach in services that involve UWS 1.0 and 1.1, and it is working well. I approve of this document and the process it describes.
There is certainly a lot of effort required in order to maintain backward compatibility, both by the writers of the specifications and the implementors. I wonder if the IVOA should consider moving to a model where backward compatibility (between both major and minor versions) isn't a requirement. Service providers could explicitly offer different versions in parallel for some period of time, giving time for client to upgrade. Maybe something to discuss in the future.
--
BrianMajor - 2017-12-18
Registry Working Group ( _Markus Demleitner, Theresa Dower )
(1) I'm not sure I like the language of
We can use the observation that simply removing the namespace definition from both instances would make the instances both textually the same and equivalent in the strict XML sense to inform the class of changes can be to the schema definition without necessarily needing to change the namespace, and how a client should treat such changes.
(introduction to section 2). I have an uncanny feeling that I don't understand what this is intended to mean. Also, it may be confusing in this context, even more so since
<doc xmlns="http://example.com/ns"/>
and
<ns:doc xmlns:ns="http://example.com/ns"/>
indeed are equivalent
Reply from Paul Harrison
This has confused two people so it is probably does need a better exposition!
What I mean is
<doc xmlns="http://example.com/1.0">
<anelement/>
</doc>
and
<doc xmlns="http://example.com/1.1">
<anelement/>
</doc>
are formally completely different XML - but as we know that the schema are related via an updated IVOA standard, in fact the "anelement" element really means the same in both documents. It is this observation that drives the idea that, as the bulk of the elements in a point update will be the same, the namespace should not be changed (even though this goes against "conventional wisdom").
end reply
Plus, I think we should not even suggest removing the namespace declarations might be a good idea under any circumstances, as doing this is certain to cause major interoperability problems as soon as the resulting tree is serialised again. I'd vote to remove the entire introductory paragraph to section 2.
(2) In
Hence, in service responses, root elements must have a \xmlel{version} attribute exactly giving the value of the corresponding XSD file's \xmlel{version} attribute.
I'm doubtful of the must. Ok, it is limited to "service responses", but that's a term not clearly defined. In VOResource, for instance, I don't think vr:Resource/@version is terribly useful; worse, the root element of actual responses of OAI-PMH-services is a container element we don't even control. And VOResource doesn't have global elements in the first place. So, I'm much rather have language like:
For such applications, protocols should place \xmlel{version} attributes, typically on the root element(s) of the schema. Their values exactly correspond to the value of the \xmlel{version} attribute on the \xmlel{xs:schema} (i.e., root) element of the XML schema file against which a given piece of software was implemented.
And then we could strike the sentence "When the discovery of ... may be left out" further down.
(3) I think the global exposition would profit if we first discuss xs.schema/@version (current sect 2.2.2) and only then talk about
@version in instance documents -- since the schema file is the source of the version string, that seems a bit more logical.
(4) While I personally am a big fan of the plural "schemata", I feel obliged to mention that if we wrote "schema files" instead, we'd probably be subscribing to less controversial terminology.
None of the above points is really serious, though, so regardless of how they are eventually decided, I approve of this document.
Semantics Working Group ( _Mireille Louys, Alberto Accomazzi )
I approve the document and appreciate it offers a way to trace minor corrections to the XML schema in the long term , when a specification gets real feedback and uptake and requires light fixes on the .xsd document.
It will remain up to the main authors of the corresponding specification to decide whether the changes are just minor , and issue XML schema update only , or whether a specification update is needed.
--
MireilleLouys - 2018-01-26
Education Interest Group ( _Massimo Ramella, Sudhanshu Barway )
Time Domain Interest Group ( _John Swinbank, Mike Fitzpatrick )
Data Curation & Preservation Interest Group ( Françoise Genova )
Operations Interest Group ( _Tom McGlynn, Mark Taylor )
Knowledge Discovery in Databases Interest Group ( George Djorgovski )
Theory Interest Group ( _Franck Le Petit, Carlos Rodrigo )
---+++ Standards and Processes Committee ( Françoise Genova)