Re: Changing Namespaces Between Specification Versions
Pete Cordell wrote: > Original Message From: "Andrew Welch" >> 2009/4/22 Michael Kay <mike@s...>: >>>> I concur with Michael's observation, but I don't think a >>>> version attribute alone is sufficient for good versioning. >>> >>> It's not enough on its own, but it gets you a long way, provided of >>> course >>> that the value of the attribute is not just an opaque string but a >>> pointer >>> to a set of rules that define the contract between sender and recipient >>> associated with that version. >> >> For an alternative opinion on versioning, see Robin Berjon's posts in >> this thread: >> >> http://markmail.org/message/fmg75xevxdo4hunv >> >> "Personally, I would recommend that we don't :) Version identifiers >> are largely useless and experience shows that users use them wrong >> (e.g. a bunch of SVG out there that's labelled as 1.1 is really 1.2, >> but people just copy-paste the root element). " > > An interesting thread. I agree with most of the steps, but not sure I > agree with the conclusion (i.e. don't bother with version numbers). At > least version numbers let you know what the developer was aiming for > even if they failed spectacularly to achieve it! That helps those in > the know debug it, even if it's no help to Joe Public. > > That said, there isn't a one size fits all versioning strategy, and > that's why it needs to be considered at the start of a project. Here's a language versioning scenario (purely hypothetical, of course) I'd love to see comments on. Consider a fairly simple document-centric markup language EgXML. It is in version 1, and it is used almost exclusively by authors working in one particular repository. Feedback from authors leads the maintainers of EgXML decide to create version 2, in order to correct problems and enable authors to model more content. Version 2 shares 90% or more of its elements and attributes with version 1, and where an element or attribute name is common to both versions, the semantics are identical. 50% of the content models have changed, mostly for the more inclusive. At least one required element has a different name in v2, so that no v1 instance can be valid against a v2 schema, and vice versa. It is a requirement that documents of both versions live alongside each other in the repository and be rendered correctly, but no new v1 content (including new revisions of v1 content) will be added to the repository (the repository CMS has the capability to auto-upgrade v1 content to its v2 equivalent). The decision was made (a) to add a version attribute to the root element, and (b) not to change the namespace URI (which was already unversioned). Did the maintainers of EgXML make the right choice? Chuck -- Chuck Bearden (cbearden@r... ; 713.348.3661) http://cnx.org/
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format