Re: [xsl] Does the count() function require access to the whole subtree?

Subject: Re: [xsl] Does the count() function require access to the whole subtree?
From: Wolfgang Laun <wolfgang.laun@xxxxxxxxx>
Date: Mon, 13 Jan 2014 13:43:02 +0100
Sorry for my imprecision.

My first question in other words: Is count( x ) always streamable, no
matter what x (or a $x or...) is?

The "positioned" was referring to a quote from Roger, see his post, please.

-W


On 13/01/2014, Michael Kay <mike@xxxxxxxxxxxx> wrote:
>
> On 13 Jan 2014, at 11:59, Wolfgang Laun <wolfgang.laun@xxxxxxxxx> wrote:
>
>> With growing insecurity ;-)
>>
>> My understanding is that count($x) may be called on the construction
>> of a sequence which (the construction) is not streamable, and that
>> calling count(...) on it does not make it streamable.
>>
>> Another thing: calling count(...) doesn't require to be positioned
>> anywhere.
>>
>
> Sorry, but I'm afraid I don't even understand what you're saying/asking
> here. What do you mean by an expression being positioned?
>
> What we are discussing, is in simplified terms, the fact that count(//x) is
> streamable, but data(//x) is not. Here //x is a "crawling" expression - one
> that selects nodes which may overlap each other. When an expression returns
> (potentially) overlapping nodes, the W3C spec says you can apply inspection
> operations like count() to those nodes, but you cannot apply absorption
> expressions like data(), because doing so would require buffering.
>
> Michael Kay
> Saxonica

Current Thread