[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: xsl:import and use-when

Subject: Re: xsl:import and use-when
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 16 May 2014 07:58:24 -0000
Re:  xsl:import and use-when
On 16 May 2014, at 03:09, Abel Braaksma (Exselt) abel@xxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

>
> On 16-5-2014 2:49, Rushforth, Peter peter.rushforth@xxxxxxxxxxxxxxxxx
wrote:
>> With regard to statically known available documents [2], the spec says that
statically known documents [3] in the static context [4] are used to provide
static type information, not to determine which documents are available.  But
if a document is statically known, it is potentially available using the doc()
function, hence I think the use of doc-available() in use-when should be
legal, although if it isn't it isn't.
>
> You are quoting the XPath spec here, which allows enough breath for host
> languages to provide a list of statically available documents. However,
> in the section that you also refered to,
> http://www.w3.org/TR/xslt20/#conditional-inclusion, you should scroll
> down until the bottom of the first table, there is says:
>
> Statically known documents     None
> Statically known collections     None
>

Actually and rather confusingly, it's the "available documents" in the dynamic
context that matters, not "statically known documents" in the static context.
Use-when expressions (and in XSLT 3.0, other static expressions) are evaluated
during stylesheet analysis, so their dynamic execution occurs during the XSLT
static analysis (compilation) phase; their dynamic execution has a dynamic
context, and it is this that determines the results of doc() and
doc-available().

Saxon still implements the 2.0 restriction on using doc() in use-when
expressions, despite the relaxation in the spec. I can't see any particular
reason not to lift the restriction (which can be done by removing one line of
code and adding a load of test cases....). Oh, looking at it more carefully, I
see that there would be no document pool maintained across a compilation, so
multiple calls on doc() to fetch the same document would be grossly
inefficient.

Michael Kay
Saxonica

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.