On 9 Feb 2014, at 10:38, Costello, Roger L. <costello(_at_)mitre(_dot_)org>
wrote:
Hi Folks,
A striding construct is one that returns a sequence of items and the items
are all disjoint (item i is not nested in item j).
Why are such constructs called "striding"? Would you please give some
intuition on why such constructs are called striding?
Largely whimsical, I was having a bit of fun. In the earlier spec they (or the
nearest equivalent) were called "incrementally consuming"; but in the new
analysis self::* comes out as striding but not consuming. The word "crawling"
is fairly natural for something that visits every node of a tree (visualise a
caterpillar), and I wanted a contrast for something that skips across from one
branch of a tree to another without visiting all the leaves. I thought of
"skipping" but that seemed to have connotations implying that there are nodes
that are not processed.
Also, why is striding important? I think that striding constructs are
important because:
The sequence of items returned by a striding
construct can be operated on in a streaming
fashion.
Is that correct?
Seems a gross over-simplification. The essence of striding expressions is that
they deliver a sequence of nodes with disjoint subtrees, so you can process
(and consume) the subtree of one node in the sequence before moving on to the
next.
Michael Kay
Saxonica
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--