xsl-list
[Top] [All Lists]

Re: [xsl] New XSLT 3.0 Working Draft

2012-07-12 10:10:39

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




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


====================================================================== 
B. Tommie Usdin                        
mailto:btusdin(_at_)mulberrytech(_dot_)com
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              
 
======================================================================


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