[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
Re: [xml-dev]Changing Namespaces Between Specification Versions
- From: Chuck Bearden <cbearden@rice.edu>
- To: Pete Cordell <petexmldev@codalogic.com>
- Date: Wed, 22 Apr 2009 14:17:14 -0500
Pete Cordell wrote:
> Original Message From: "Andrew Welch"
>> 2009/4/22 Michael Kay <mike@saxonica.com>:
>>>> 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@rice.edu ; 713.348.3661)
http://cnx.org/
[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]