Thursday, December 02, 2004

Backward compatibility in XML

I wonder if XML messages should contain something like this (when straightforward backward compabiblity by flexible schema is not enough):


<version>
<number>1.4</number>
<transform to='1.3' version='0.1'>http://......14to13.xsl</transform>
<transform to='1.2' version='0.4'>http://......14to12.xsl</transform>
<transform to='1.1' version='0.3'>http://......14to11.xsl</transform>
<transform to='1.0' version='0.5'>http://......14to10.xsl</transform>
</version>


so that if you get a message for which you can't process that version, you can
lookup a transform to map to a version you do understand. If there is no transform then its an incompatible version change.

You could even imagine the URL being to a web service to handle further reaching changes, though performance would not be great.