- From: David Orchard <dorchard@bea.com>
- Date: Mon, 7 Jul 2003 16:38:09 -0700
- To: "'Tim Bray'" <tbray@textuality.com>
- Cc: <www-tag@w3.org>
> -----Original Message----- > From: Tim Bray [mailto:tbray@textuality.com] > Sent: Monday, July 07, 2003 4:21 PM > To: David Orchard > Cc: www-tag@w3.org > Subject: Re: Section 3.2.2.4 text on extensibilty > > > David Orchard wrote: > > > Here's a rough start to the extensibility and versioning > section of the web > > arch document, and a small change proposed to 3.2. > > I'm basically OK with the content here, although I suspect that Ian > could usefuly tighten the whole thing up and shrink it a bit. > Couple of > points: > > > Backwards compatibility means that existing sending agents > can use receiving > > agents that have been updated, and forwards compatibility > means that newer > > sending agents can continue to use existing recieving agents. > > Er, really? I would say forward compatibility means that the new > software can read the old data. Or do I have this backward? > You do have the backwards/forwards definition backwards ;-). Think of your favourite word processor. V6 processor reading V5 data means that v6 processor is backwards compatible with V5 stuff. Now if V5 processor can read V6 stuff, then v5 processor is forwards compatible with v6 data. Forwards compatibility is all about older software reading newer data. In the example I gave, a newer sending agent sends the newer data to the existing receiving agent. > > XML and Schema languages require that schemas have > deterministic content > > models. An explanation from the XML 1.0 specification, > "For example, the > > content model ((b, c) | (b, d)) is non-deterministic, > because given an > > initial b the XML processor cannot know which b in the > model is being > > matched without looking ahead to see which element follows the b." > > XML 1.0 DTDs require this, and so does XML Schema. RelaxNG > doesn't. I > don't think this is architectural in the slightest. > Really? Deterministic content models have an extremely large effect on how you go about acheiving backwards or forwards compatibility. In some cases, loosely coupled backwards compatible changes are not permitted because of determinism. As determinism is a large determinent (so to speak) of the ability to use extensibility to do compatible changes, it seemed worthwhile to me to mention. Cheers, Dave
Received on Monday, 7 July 2003 19:38:38 UTC