[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Updated Schema Versioning



Andrew –

Thanks for the update.  The point on forward compatibility issues with business rules is interesting.  However, I’m not sure that your example shows a lack of forward compatibility specific to the business rules.  Presumably this problem you describe for inflation swaps only happens with that product, not with the previously existing interest rate swaps.  However, this product wouldn’t be available in the older schema, so this would be outside of the scope of forward compatibility.  (I.e. it would fail schema validation before it even got to business rule validation.)  Any promise of forward compatibility would of course need to be limited to features that were available in the older schema.  I think that  we can conclude from your example that when you add new products, you need to regression test the business rules to ensure that you change them as required.

 In your conclusion, you state that there is no automated way to guarantee backward compatibility.  While this is probably true, there is a simple way to determine whether a new minor version breaks compatibility with a specific instance document:  simply do a validation against the new schema.  If we use the approach you describe here, we should ensure that we validate ALL previously published example documents for the major version against the new schema.  This won’t guarantee 100% compatibility, but it will provide a relatively high degree of assurance that the things we considered important to document are compatible.

We could also potentially do a forward compatibility test, in which we validate all “unmodified” examples against the older version of the schema.  (This may not be worth it, because the only change between the “unmodified” examples should be the version attribute… it would really be more of a check that our “unmodified” examples are actually unmodified.)

I would be reluctant to endorse the approach you describe without at least a backwards compatibility test of the previously published examples.  It may also be worth doing an additional test with each published schema, to verify that  there is at least one example of every element that  is available in the schema (not in all possible locations however, as the number of examples would probably be enormous).  I think that the checking of this could be automated, though it might be a little difficult.

 

Brian

From: mtf@xxxxxxxx [mailto:mtf@xxxxxxxx] On Behalf Of Andrew Jacobs
Sent: Friday, March 07, 2008 6:48 AM
To: mtf@xxxxxxxx
Cc: 'Karel Engelen'
Subject: Updated Schema Versioning

 

Added a new section covering the affect on business rules.

Thanks

 

Andrew Jacobs

Director & CTO

HandCoded Software Ltd

Mob: +44 (0)7710 304239