[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Streaming terminology: Grounded

Subject: Re: [xsl] Streaming terminology: Grounded
From: David Carlisle <davidc@xxxxxxxxx>
Date: Mon, 20 Jan 2014 10:49:42 +0000

On 20/01/2014 10:38, Costello, Roger L. wrote:
Hi Folks,

I am having a hard time understanding the new streaming terminology.
And, truthfully, I am feeling overwhelmed with all the new

Perhaps we could collectively discuss each term, one at a time, and
understand them?

How about starting with "grounded".

The spec defines it this way:

Grounded: indicates that the value returned by the construct does not
contain nodes from the streamed input document. Atomic values and
function items are always grounded; nodes are grounded if it is known
that the they are in a non-streamed document. For example the
expressions doc('x') and copy-of(.) both return grounded nodes.

So this string

"Hello World"

is grounded because it is an atomic value and clearly it doesn't
involve reading anything from the input. That seems reasonable to

I am puzzled why


is grounded, as it surely *does* result in reading (consuming) the
input, right?

And why is


grounded? Surely that expression results in reading new input (i.e.,
the content of Book.xml), right?

What are other examples of things that you might put in an XSLT
program that doesn't result in consuming any input?

So, grounded means "anything that doesn't result in consuming input",


No, the definition you quote is (mostly) about the result not the input.

>  Grounded: indicates that the value returned by the construct does not
> contain nodes from the streamed input document.

from that definition it is clear that copy-of is grounded as it copies 9ie makes new) nodes. So the returned value (if it is a node) is a new node not in the original input document. The fact that it may have to read some more or the input document to do that is relevant to the general scheme of things but not to that definition.

The streaming model is (I think) that there is a single main streamed input. so doc('x') returns nodes from a different document which are therefore "from the streamed input document".


The Numerical Algorithms Group Ltd is a company registered in England
and Wales with company number 1249803. The registered office is:
Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.

This e-mail has been scanned for all viruses by Star. The service is
powered by MessageLabs. ________________________________________________________________________

Current Thread