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

RE: [xsl] xsl:number with level=any


Subject: RE: [xsl] xsl:number with level=any
From: Richard Tobin <richard@xxxxxxxxxxxx>
Date: Wed, 13 Oct 2004 18:34:44 +0100 (BST)

> But the 1.0 spec does say explicitly that the "from" node is the last node
> *before* the current node that matches the "from" pattern, which means that
> it is irrelevant whether or not the current node matches the "from" pattern.

That seems reasonable.

> In the case where no node before the current node matches the "from"
> pattern, my interpretation (and that of the 2.0 spec) is that you count all
> the nodes back to the root.

My interpretation of the (amended) 1.0 description, was that there is
no node before the current node that matches "from", so there are no
nodes after that node, so an empty list is constructed.  Can a node be
after a non-existent node?

> <quote>
> Let $F be the node sequence selected by the expression
> 
>    $S/(preceding::node()|ancestor-or-self::node())[matches-from(.)][last()]
> 
> (the last node in document order that matches the from pattern and that
> precedes the selected node, using the same definition)
> </quote>

It was that inconsistency that led me to suspect that "before" and "after"
were meant to be interpreted as "before-or-self" and "after-or-self",
and thus have no confidence in my interpretation of the 1.0 wording!

The  definition of $A has a similar problem:

  Let $A be the node sequence selected by the expression

   $S/(preceding::node()|ancestor-or-self::node())[matches-count(.)]

  (the set of nodes that match the count pattern and that precede the
  selected node in document order, but excluding attribute and
  namespace nodes)

The expression includes the selected node if it matches "count", but the
text refers to nodes that *precede* the selected note.  In this case,
the text seems to be wrong and the expression right.

-- Richard


Current Thread