Re: human-talk for "::"

Subject: Re: human-talk for "::"
From: David Carlisle <davidc@xxxxxxxxx>
Date: Thu, 25 May 2000 19:01:27 +0100 (BST)
> how to explain to a non-programmer the "verbal sense" conveyed/represented
> by the "::"

read x::y as

all y that are a(n) x

select="ancestor-or-self:xxx"

select all xxx nodes that are an ancestor of, or are, the current node.


> (preceding::foo)[1] example, I can't

That's because the spec defines this by sleight of hand.

The [4] syntax and more generally position() needs to know whether the
node set is in document or reverse document order.
By definition the ordering depends on the axis.

For something like following::* it is clear what the natural ordering of
the resulting node list should be but for a general expression

(following::xx | child::y | ancestor::*)

there isn't a natural order to the resulting node set as it might be
constructed from several axes,

so what does (following::xx | child::y | ancestor::*)[1] mean?
They could have defined that such expressions were ordered
in document order, but instead the spec defines that by default this

> The Predicate filters the node-set with respect to the child axis.

This has the effect that position() counts in document order because
child is a forward axis. But that is, I think, the _only_ effect of this
statement, so it might have been clearer to just have said that, rather
than introduce the confusing reference to the child axis.

David


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread