OASIS Energy Market Information Exchange (eMIX) TC

 View Only
  • 1.  namespaces, versioning, and backward compatibility

    Posted 04-02-2011 19:52
    I recall a discussion recently on versioning and backward compatibility. I'd like to propose we use a major/minor versioning scheme such that the major version is captured in the namespace but the minor version is captured in the schema element 'version' attribute. So, for instance, the current schema element declaration: <xs:schema targetNamespace=" http://docs.oasis-open.org/ns/emix" ; elementFormDefault="qualified" attributeFormDefault="unqualified"> would become <xs:schema targetNamespace=" http://docs.oasis-open.org/ns/emix-1" ; elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0"> This would allow for minor versions to be created/released without changing the namespace, maintaining backward compatibility across minor versions (as long as no other changes were made that broke compatibility). -Anne


  • 2.  RE: [emix] namespaces, versioning, and backward compatibility

    Posted 04-04-2011 14:05
    Hello, Anne: I think this is a great idea. I always hate invoking hindsight in a bandage manner; this is forward thinking. The "version" attribute isa part of "xs:schema" so I think we should use it (it's free and easy). Cheers, - Jeremy


  • 3.  Re: [emix] namespaces, versioning, and backward compatibility

    Posted 04-04-2011 15:29
    Hi Jeremy, Yes, I think using the built-in attribute is very straightforward and easy to maintain. The aspect of using minor/major version numbers that has the most draw for me is that the format has recognizable meaning since it is used in most software versioning which should be familiar to people working with the standard schemas. You can tell right away if you are looking at a major version (3.0) which may break compatibility, or a minor version that has a stable base (2.3.1). How often have you made decisions on what to download just looking at those numbers? I know I do that all the time. The recognition is instantaneous. You can make decisions based on that immediate understanding. It makes it easier, and more clear, for our eventual implementors and for end users as well. No need to delve into the release first -- there is some immediate intelligence in the format and meaning of the numbers that is well understood in the software world. I also believe that it would make it easier to automate checking (say in a tool or an application) on whether you are looking at a backward-compatible version or not. -Anne Jeremy Roberts wrote, On 4/4/2011 7:06 AM: > Hello, Anne: > > I think this is a great idea. I always hate invoking hindsight in a > bandage manner; this is forward thinking. The "version" attribute isa > part of "xs:schema" so I think we should use it (it's free and easy). > > Cheers, > - Jeremy > > > >


  • 4.  Re: [emix] namespaces, versioning, and backward compatibility

    Posted 04-04-2011 16:14
    Version numbers of documents and encodings and communication of version(s) supported by an interface has been an ongoing dialogue in the OGC ever since we started interface spec design. We have stated policies. If these policies would help in the EMIX version discussion, please let me know and I can provide them. Regards Carl


  • 5.  Re: [emix] namespaces, versioning, and backward compatibility

    Posted 04-04-2011 17:07
    Anne, Jeremy, and others -- This has gotten off track of the original theme, I think, which was namespace maintenance AKA versioning. I'm repeating and extending an earlier message to put it in this thread; it's really very effective to keep this discussion in comments on the namespace Jira item, EMIX-317 and one I've created for possible schema version inclusion discussion  -- having separate discussions apart from the issues makes it harder to work efficiently in my experience, so please put your comments as this thread matures into the Jira items. WS-Calendar uses for namespace definition (as do many OASIS specifications) the year and month of publication.  Using the date to disambiguate namespaces is a common approach. See (e.g.) Service Component Architecture, WS-Calendar, and more. A time sequence of major/minor versions is identified by the date. The most frequently changing versions we've had are working drafts, where we sometimes have several (including wip ) a week. But the namespace changes at Committee Specification Drafts and Committee Specification. The benefit of the scheme in http://www.oasis-open.org/committees/download.php/41708/EMIX_Namespace_Declarations_and_Maintenance_Policy_20110403.rtf is that it identifies the production date; the disadvantage (minor IMO) is that it doesn't readily support minor revisions that are more frequent than monthly. I've also found that the management of major/minor for specs like this is often more costly than the benefit obtained. Finally, we use a schemaVersion attribute in Energy Interop to identify the schema version in major classes.  The same approach might be used in EMIX, and given the relationships of the specs it should be the same mechanism and same naming in Calendar, EMIX, and EI. My next note will explore the pluses and minuses of creating and using a schema versioning mechanism in addition to the required namespace maintenance plan. Thanks! bill William Cox Email: wtcox@CoxSoftwareArchitects.com Web: http://www.CoxSoftwareArchitects.com +1 862 485 3696 mobile +1 908 277 3460 fax On 4/4/11 12:07 PM, Carl Reed wrote: E74DE475BA1D4FD2996EC0BB69EB4375@CarlandSusieOf type= cite >Version numbers of documents and encodings and communication of version(s) supported by an interface has been an ongoing dialogue in the OGC ever since we started interface spec design. We have stated policies. If these policies would help in the EMIX version discussion, please let me know and I can provide them. Regards Carl


  • 6.  Re: [emix] namespaces, versioning, and backward compatibility

    Posted 04-04-2011 17:15
    Hi Carl, Thanks. I would find the rationale for the policies would be the most helpful as a basis for discussion, rather than the policies themselves. If this is just for versioning hopefully there aren't many policies? Best, -A Carl Reed wrote, On 4/4/2011 9:07 AM: > Version numbers of documents and encodings and communication of > version(s) supported by an interface has been an ongoing dialogue in > the OGC ever since we started interface spec design. We have stated > policies. If these policies would help in the EMIX version discussion, > please let me know and I can provide them. > > Regards > > Carl > >


  • 7.  Re: [emix] namespaces, versioning, and backward compatibility

    Posted 04-07-2011 15:53
      |   view attached
    Anne - On a regular basis, the OGC Members discuss (and argue) about various aspects of standards development and documentation. Many of these discussions have to do with XML schema (of course). After much discussion and input from the OGC Architecture Board, the Members vote on a directive (policy) related to a specific discussion. These directives are documented in a single OGC directives document (similar in intent to the ISO directives). The discussions are often lost in the dust of time, although some are well documented in white papers or OGC Engineering reports. Anyway, the attached document is the current OGC directives document. Read section 13 for XML usage and documentation (including versioning) directives. Cheers Carl