Re: [Widgets] Widget Gallery RSS like sharing format

>> I think that is what we are doing. By not including a version
>> identifier, we remove the temptation to make backwards incompatible
>> changes protected by a version switch. Those are the type of changes
>> that are harmful since they require more complex authoring than much
>> of the web seems to use.
>
> Agreed. Our current model follows Jonas' thinking. We think that our
> approach is architecturally sound but I'm open to hearing further
> suggestions.

It's tricky definitely, and currently I don't think there is an
established way to handle xml versioning, but there are few things to
consider:

- never change the namespace, unless you want every existing consumer
of your xml to change too

- when multiple versions of the xml exist, you need some way to
differentiate them other than checking for the existence of certain
elements/attribute

If you do use an attribute to identify the intended version of the xml then:

- a 1.0 parser can still parse a 2.0 instance, but give a good error
message when it encounters an instruction it doesn't understand (so
this forward looking behaviour has to be built into the 1.0 parsers).
When a user tries parsing a 2.0 instance using a 1.0 parser, they can
be told "you need a 2.0 parser" rather than "unknown element nnn".

- a 2.0 parser knows all about the 1.0 spec, so can parse both, can
switch modes if there are incompatible changes etc  This allows you to
tweak 1.0 functionality in subsequent versions, rather than having 1.0
instructions set in stone forever (and then having to provide 2.0
alternatives or workarounds etc)

- users/developers/IDEs know exactly what they are dealing with.

That's how XSLT 2.0 does it, and I think XHTML 2.0, but I notice XSD
1.1 is going down a different route...

I guess it's slightly harder here because "version" currently refers
to the widget version, and not the xml version, so you would need to
differentiate them somehow.  Either way, I think an explicit version
is definitely something that you should include (if only in 2.0, with
no version implying 1.0).



-- 
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

Received on Wednesday, 18 March 2009 10:33:45 UTC