---++ XML Schema Versioning Policies: Endorsed Note - Request for TCG Comments and Approvals Document Link: [[%ATTACHURL%/schemaVersioning.pdf][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 * 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 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? -- IVOA.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_ ) ---+++ 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.<br /> <br /> 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.<br /> <br /> And a suggestion: the syntax of the minor and major number version should be probably explained somewhere at the begining of the document. -- IVOA.PierreFernique - 2016-04-25 ---+++ Data Access Layer Working Group ( _François Bonnarel, Marco Molinaro_ ) ---+++ 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? %RED%Reply from Paul Harrison%ENDCOLOR% 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. %RED%end reply%ENDCOLOR% 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. -- IVOA.MarkCresitelloDittmar - 2016-05-02 ---+++ Grid & Web Services Working Group ( _Brian Major, Giuliano Taffoni_ ) ---+++ Registry Working Group ( _Markus Demleitner, Theresa Dower_ ) (1) I'm not sure I like the language of <blockquote>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.</blockquote> (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 <verbatim> <doc xmlns="http://example.com/ns"/> </verbatim> and <verbatim> <ns:doc xmlns:ns="http://example.com/ns"/> </verbatim> indeed are equivalent %RED%Reply from Paul Harrison%ENDCOLOR% This has confused two people so it is probably does need a better exposition! What I mean is <verbatim> <doc xmlns="http://example.com/1.0"> <anelement/> </doc> </verbatim> and <verbatim> <doc xmlns="http://example.com/1.1"> <anelement/> </doc> </verbatim> 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"). %RED%end reply%ENDCOLOR% 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 <blockquote>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.</blockquote> 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: <blockquote>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.</blockquote> 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_ ) ---+++ 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_ )<br /><br /> ---+++ Standards and Processes Committee ( _Françoise Genova_) <br /> <!-- * Set ALLOWTOPICRENAME = IVOA.TWikiAdminGroup -->
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
pdf
schemaVersioning.pdf
r1
manage
261.2 K
2016-09-23 - 21:37
BrianMajor
This topic: IVOA
>
WebHome
>
IvoaGridAndWebServices
>
XMLVersRFC
Topic revision: r8 - 2016-09-23 - BrianMajor
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback