xsl-list
[Top] [All Lists]

RE: XSLT 1.0/2.0 forward/backwards compatibility behavior

2005-06-22 07:01:41


I'm a bit confused with backwards/forwards compatibility 
between XSLT 1.0/2.0. 
Here's what I've concluded:

An XSLT 2.0 processor running in backwards compatibility mode(due to 
xsl:version=1.0) accepts an illegal XSLT 1.0 stylesheet, as 
long as it is 
valid XSLT 2.0(say, an if statement was in an expression). 
Hence, one can 
write an "1.0" stylesheet which works just fine with an XSLT 
2.0 processor, 
but is flagged as invalid at a static stage with an XSLT 1.0 
processor.

I think this is right, because Saxon confirms it, and it is 
how I interpret 
the specifications.

Yes - sounds correct.

What makes me wonder is because I find it hard to to motivate 
this behavior or 
see it in a practical perspective.

From one perspective, I think I find it annoying, because one 
can't "simulate" 
an XSLT 1.0 processor with the xsl:version attribute, and 
hence be guaranteed 
a stylesheet works with a "real" 1.0 processor, without 
manually ensuring it 
will. But on the other hand, I can't tell what negative 
aspects it would lead 
to(of course, I could already have mentioned it..).

Perhaps someone can clear my confusion and provide some background? 

It's to ease the transition from 1.0 to 2.0 and is really useful.  You
can take your 1.0 stylesheet and pick-and-choose the features from 2.0
that you need and it all just works.  It's fantastic, really.

If you want to guarantee a 1.0 stylesheet works with a 1.0 processor
then use a 1.0 processor to test it, not a 2.0 processor (and use the
exact one you want to guatantee it for, I would say).

cheers
andrew


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



<Prev in Thread] Current Thread [Next in Thread>