Lists Home |
Date Index |
> Going off on a tangent here ... that is a subject which intrigues me.
> It is clear that much of XSLT2 really does offer simpler ways of doing
> things that are possible but tedious in XSLT 1. It's hard to know,
> before XSLT 2 gets into people's hands and the wheat and chaff get
> sorted out by experience, which parts reflect the the voice of
> experience, and which parts are "second system syndrome". Anyone want
> to offer opinions?
You're asking a very heavily loaded question. Have you stopped beating your
Most of the new features in XSLT 2.0 directly address the tasks that 1.0
users find difficult or impossible: grouping, conditional expressions,
functions, date and time handling, sequences, multiple output files, text
input files, conditional compilation, tunnel parameters, regular
expressions, collations, namespace manipulation, next-match, generalized
path expressions, intersect and except operators, the "is" operator, the
There are other things in XSLT 2.0 that attempt to strengthen the
foundations, in the belief that if all you do is add the surface
functionality that users know they need, the edifice is in danger of
collapsing. Notable here is the introduction of a richer and more rigorous
type system. This is about making the language more scaleable and robust,
and making it suitable for new applications at the same time as making life
easier for existing users.
There are one or two features I would personally have preferred to leave out
- for example, Unicode normalization, duration arithmetic, unsorted() - but
in such cases there have been powerful lobbies campaigning for the features
and their proponents might well turn out to be right - it's too early to
tell. If no-one uses them, these features are relatively harmless because
they aren't in the architectural core. Others would produce a different list
- it's inevitably a process that involves compromise.
There are other important features that aren't included because the WG
worked hard to avoid feature creep - examples are dynamic XPath evaluation,
higher-order functions, and try/catch. I mention these just to stress that
the WG doesn't automatically include everything that anyone happens to think
is a good idea. Of course, no two language designers either inside or
outside the WG would have made exactly the same selection of features, and
there is no way of arguing that the boundary that was drawn is the only
XSLT 2.0 has, of course, been in people's hands for two years now and the
feedback from early 2.0 users has been invaluable.