Florent, would you be kind enough to explain the function.
Actually, I think it should be using the operator "is" rather than "=". But
it's trying to return one of the strings "north", "south", etc, depending on
which of the four global variables is the root of the tree containing the
parameter $node.
I would personally be inclined to write it as
<xsl:function name="k:get-source" as="xs:string">
<xsl:param name="node" as="node()"/>
<xsl:variable name="root" as="node()" select="root($node)"/>
<xsl:sequence select='
for $i in 1 to 4 return
if (($north, $south, $east, $west)[$i] is $root)
then ("north", "south", "east", "west")[$i]
else ()'/>
</xsl:function>
<xsl:function name="k:get-source" as="xs:string">
<xsl:param name="node" as="node()"/>
<xsl:variable name="root" as="node()"
select="root($node)"/>
<xsl:choose>
<xsl:when test="$root = $north">
<xsl:text>north</xsl:text>
</xsl:when>
<xsl:when test="$root = $south">
<xsl:text>south</xsl:text>
</xsl:when>
<xsl:when test="$root = $east">
<xsl:text>east</xsl:text>
</xsl:when>
<xsl:when test="$root = $west">
<xsl:text>west</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
<xsl:text>Unjnown source!</xsl:text>
</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:function>
Thanks.
--
Kevin
--~------------------------------------------------------------------
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>
--~--
--~------------------------------------------------------------------
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>
--~--