xsl-list
[Top] [All Lists]

RE: passing_cousin_content_as_counter

2004-08-01 15:02:02
and while it seems pretty logical to just select the relevant
COORDINATES_ITEM elements
and add a d character in front of their number content, it doesn't.It
produces an identical
xml doc with the source one.It looks like, it ignores the 
second template
and just applies
the first identity template, producing exactly the same document.

It's a shame that having got that far, you weren't able to find the simple
error in my code. The predicate should be

<xsl:template match="COORDINATES_ITEM[position() =
    /SHAPE/ELEM_INFO/ELEM_INFO_ITEM[position() mod 3 = 1]]">

This now works in Saxon 6.5.3. Unfortunately it shows up an optimization bug
in Saxon 8.0, which is related to
https://sourceforge.net/tracker/index.php?func=detail&aid=998978&group_id=29
872&atid=397617 but not identical to it. Although this predicate does not
use variables explicitly, it is optimized to the XQuery expression

let $temp := /SHAPE/ELEM_INFO/ELEM_INFO_ITEM[position() mod 3 = 1]
return COORDINATES_ITEM[position() = $temp]

and this is hitting problems in allocating stack space for variables in
patterns.

Michael Kay