XSLT 2.0 implementation
It is now possible to specify both an initial named template and a source document on the command line. The initial template is specified with the -it option, the source document using the new -s option.
On the command line, it is now possible to set the value of a stylesheet parameter to a zero-length
string by writing param=
.
Saxon reports the new error condition XTDE0045 if the initial mode requested on initiating a transformation does
not exist. Saxon previously handled this as if the mode existed but with no matching templates, that is, the built-in
template rule (or the rule for mode="#all"
) would be invoked. This reflects a late change in the
specification.
The error code returned when an invalid QName is passed to the type-available() function has changed from XTDE1425 to XTDE1428.
Serialization error SERE0008 is now reported when character maps are used to generate a character that cannot be represented in the selected encoding.
The unparsed-text()
function, when reading a resource from an HTTP connection, now accepts
gzip encoding. This means that the server can send the file in compressed form, for decompression on the client,
whereas it would otherwise be decompressed on the server before transmission. This can save substantially on
network costs. Surprisingly, Xerces does not appear to do the same thing when the doc()
function
is used. This means that calling saxon:parse(unparsed-text($uri))
can sometimes be significantly
faster than doc($uri))
. (It's possible to replicate this logic in a user-written URIResolver. I'm
reluctant to put it in the standard URIResolver because the XML parser needs to see the HTTP headers in order to
make its decisions about encoding. However, I've put a hook in the standard URIResolver that allows subclassing
to make this easier.)