[xsl] Streaming terminology: Grounded

Subject: [xsl] Streaming terminology: Grounded
From: "Costello, Roger L." <costello@xxxxxxxxx>
Date: Mon, 20 Jan 2014 10:38:08 +0000
Hi Folks,

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

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 me.

I am puzzled why

	copy-of(.)

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

And why is

	doc('Book.xml')

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", right?

/Roger

Current Thread