Re: [xsl] New XSLT 3.0 Working Draft

Subject: Re: [xsl] New XSLT 3.0 Working Draft
From: Tommie Usdin <btusdin@xxxxxxxxxxxxxxxx>
Date: Thu, 12 Jul 2012 11:10:20 -0400
On Jul 10, 2012, at 1:20 PM, Michael Kay wrote:

> There's a new Working draft of XSLT 3.0 - the first new public draft for 2
years - at http://www.w3.org/TR/xslt-30/.

Very cool! (Some of us now have a lot of reading to do!)

>
> There's an enormous amount of new material here.

And some of it very important. I intend to start with "J Changes since XSLT
2.0" (http://www.w3.org/TR/xslt-30/#changes-since-2.0), in hopes that it will
help me focus on the new and not get distracted with details of 2.0 that I
haven't thought about.

Thank-you to the whole working group!

-- Tommie



>
> Big features:
>
> - Streaming -
>
> The analysis of streamability has been greatly simplified: it no longer
requires any complex data flow analysis. This is achieved largely by not
allowing variables to be bound to the nodes in a streamed document. Apart from
that, most of the new features introduced for the benefit of streaming, such
as xsl:iterate and xsl:stream, are largely intact.
>
> A major innovation is the introduction of "accumulators", values associated
with nodes that can be computed during a streaming pass of a document; they
have the usability of mutable variables while being defined in a purely
functional way, and are sufficiently constrained that they don't inhibit
optimization.
>
> - Packages -
>
> Intended for independent compilation of stylesheet components: they allow
stylesheets to distinguish which components are internal and which are visible
to the outside world. Gives general software engineering benefits by
separating interface from implementation; allows constraining of what can be
overridden/customized and makes overriding type-safe.
>
> - Maps -
>
> A new data type, similar to the dictionaries or associative arrays in other
languages. The keys in the map can be any atomic value; the associated value
can be any value whatsoever. A particular motivation for maps was that with
streaming, you only get to see each thing in a document once, so you need to
remember what you've seen for use later (for example, in an accumulator); so
you need a richer data structure for holding this data. Maps also provide a
useful mechanism for importing/exporting data to/from JSON format (for which
there are new functions).
>
> - Higher-order functions -
>
> More an XPath feature than an XSLT one, functions are now first-class values
and can be passed as parameters to functions, returned by functions, held in
maps, etc etc.
>
> Other things include:
>
> * xsl:try/catch
>
> * xsl:evaluate
>
> * xsl:assert
>

======================================================================
B. Tommie Usdin                        mailto:btusdin@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                           Phone: 301/315-9631
Suite 207                                    Direct Line: 301/315-9634
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
 Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread