Hi
I have a problem using a key. I have an XPath function
that can deal with elements that are identifiers for other
elements. In such a case, the function uses a key to
retreive the effective element (corresponding to the id).
Saxon-SA 8.6.1 give me the following error message:
Error on line 13 of ~/drafts/key-wo-context.xsl:
XPDY0002: Cannot select a node here: the context item
is undefined
While I think I understand mostly what it means, I can't
find a way to do what I want. Below is a minimal example
that reproduce the error:
~/drafts $ cat key-wo-context.xsl
<xsl:transform
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:foo="..."
version="2.0">
<xsl:output method="text"/>
<xsl:key name="by.id" match="item" use="id"/>
<xsl:function name="foo:do.it">
<xsl:param name="obj"/>
<xsl:choose>
<xsl:when test="$obj/@idref">
<xsl:value-of
select="foo:do.it(key('by.id', $obj/@idref))"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:function>
<xsl:template match="/">
<xsl:value-of select="*[1]/*"/>
</xsl:template>
</xsl:transform>
~/drafts $ cat key-wo-context.xml
<root>
<item id="a">A</item>
<item id="b">B</item>
<item idref="b"/>
<item id="c">C</item>
<item idref="c"/>
<item idref="a"/>
<item id="d">D</item>
</root>
~/drafts $ saxon key-wo-context.xml key-wo-context.xsl
Error on line 13 of ~/drafts/key-wo-context.xsl:
XPDY0002: Cannot select a node here: the context item
is undefined
Failed to compile stylesheet. 1 error detected.
Do you have any idea?
Thanks,
--drkm
___________________________________________________________________________
Appel audio GRATUIT partout dans le monde avec le nouveau Yahoo! Messenger
Téléchargez cette version sur http://fr.messenger.yahoo.com
--~------------------------------------------------------------------
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>
--~--