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

[xsl] dynamic-context type-branching


Subject: [xsl] dynamic-context type-branching
From: ac <ac@xxxxxxxxxxxxx>
Date: Sun, 03 Feb 2008 14:36:07 -0500

Hi,

In schema unaware xslt2 environments, what would be the best way to select action depending on the result type (ex: string, text node(s), attribute(s), element(s)) of saxon:evaluate(), ex:

idealy (v1) something like ...
<xsl:template match="context" mode="foo">
<xsl:param name="xpathstring" select="... some xpath string ... "/>
<xsl:apply-templates select="saxon:eval(saxon:evaluate($xpathstring)" mode="lama"/>
</xsl:template>


but since you cannot apply-templates on atomic types, alternately (v2) ...
<xsl:template match="context" mode="foo">
<xsl:param name="xpathstring" select="... some xpath string ... "/>
<xsl:variable name="tmp" select="saxon:eval(saxon:evaluate($xpathstring)"/>
<xsl:choose>
<xsl:when test="$tmp instance of xs:anyAtomicType"><xsl:value-of select="$tmp"/></xsl:when>
<xsl:otherwise><xsl:apply-templates select="$tmp" mode="lama"/></xsl:otherwise>
</xsl:choose>
</xsl:template>


Assuming mode="lama" has templates with appropriate matches for the different types.

Thanks,
ac


Current Thread
 
© 2002-2008 SyncRO Soft Ltd. All rights reserved. | Sitemap | Privacy Policy
This website was created & generated with <oXygen/> XML Editor
Keywords