RE: Section 3.2.2.4 text on extensibilty

> -----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