[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] (Possible) pitfall: XSLT 2, 9.4 Creating implicit doc
Hello, this is a heads-up for a pitfall (that at least I have fallen into several times now...) with respect to XSLT 2, 9.4 "Creating implicit document nodes": <http://www.w3.org/TR/xslt20/#temporary-trees> With the source document: --src.xml-- <a> <b/> </a> ----------- and this transformation --transformation.xsl-- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="xs" version="2.0"> <xsl:template match="/"> <xsl:variable name="v1"><xsl:sequence select="a"/></xsl:variable> <xsl:variable name="v2" select="a"/> <xsl:text>v1: </xsl:text> <xsl:apply-templates select="$v1/a" mode="out"/> <xsl:text>
</xsl:text> <xsl:text>v2: </xsl:text> <xsl:apply-templates select="$v2/a" mode="out"/> </xsl:template> <xsl:template match="*" mode="out"> <xsl:value-of select="name()"/> <xsl:apply-templates mode="#current"/> </xsl:template> <xsl:template match="text()" mode="#all"/> </xsl:stylesheet> ----------- the output is: --output-- v1: ab v2: ---------- I understand now why this is so per the spec, although I was puzzled at first. However, I've spent considerable time debugging stylesheets where accessing a tunnel variable with $var/elem sometimes yielded nothing (see v2 in my example above) until I found that in some places, the variable was defined using <xsl:sequence> (because some complex content construction takes place which is either not doable or hardly readable using a single XPath expression), and using a select attribute at other places. Is there a technique or pattern I could employ (maybe utilizing the @as attribute somehow?) to unify the access to variable contents where I know that the sequences are node sequences, regardless of their content construction using @select or <xsl:sequence>? Thanks, Christian
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|