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: Wendell Piez <wapiez@xxxxxxxxxxxxxxx>
Date: Tue, 14 Jan 2014 10:24:31 -0500
Hi,


On Tue, Jan 14, 2014 at 9:50 AM, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote:
> On Tue, Jan 14, 2014 at 4:26 AM, Michael Kay <mike@xxxxxxxxxxxx> wrote:
>> I mean that within the set of nodes selected by //x, there may be two nodes A and B such that A is an ancestor of B.
>>
>> (I'm not using the term overlap in the sense of non-hierarchic markup: perhaps that's the cause of any confusion).
>
> Yes that is a big source of confusion. "Overlap" in its general sense
> means that their isn't proper containment -- just intersection.
>
> And this is not the case here at all.
>
> It would be precise and clear to replace the term "overlapping" with
> something like "containment".

Yes, this is hard because English appears not to have a verb that
indicates a reciprocal ancestor/descendant relation. Ancestor nodes
may contain, include or "dominate" descendant nodes, but since the
graph is acyclic, nodes never contain each other.

One could say more simply "a 'crawling' expression -- one that selects
both ancestors and their descendants together". But that doesn't solve
the problem for the spec, as in "For example, an implementation might
be able to treat the expression .//title as striding rather than
crawling if it can establish from knowledge of the schema that two
title elements will never overlap" [18.1.1]. I suppose that could be
rewritten too ... "no title element will contain another". Or "will
never coincide".

Does the spec need a term to indicate this relation in the general
case? I agree that the term "overlap" is fraught with other senses,
and should probably be avoided.

Cheers, Wendell

Wendell Piez | http://www.wendellpiez.com
XML | XSLT | electronic publishing
Eat Your Vegetables
_____oo_________o_o___ooooo____ooooooo_^

Current Thread