Re: [xsl] Xalan giving TransformerException for a defined variable

Subject: Re: [xsl] Xalan giving TransformerException for a defined variable
From: "Brian J. Coan" <brianc@xxxxxxxxxxxxxx>
Date: Mon, 04 Oct 2004 12:39:16 -0700
Anton, David and Marty,
 Thanks for you suggestions.  i rewrote the XSL per Anton below,
still got the Exception.  There must be something about the Xalan release
that is unhappy about a param/variable in an xsl:sort select expression.
per Marty's suggestion, i'm going to drop the variable entirely, can get
away with it in this template and hopefully in others similarly written.

Thanks again,
...bjc

Anton Triest wrote:

David Carlisle wrote:

The variable use looks correct although if you always call it with
<xsl:with-param name="shippedOrder" select="."/>
in your actual code then you could drop th eparam as the current node
is still the current node in the called template, you don;t need to pass
it directly.

and even if you want to call it with some other node in the select, you could drop the param
by using apply-templates with a mode instead of call-template:


<xsl:template match="ORDER">
   <xsl:element name="Shipment">
       <xsl:apply-templates select="." mode="generate-containers"/>
   </xsl:element>
</xsl:template>

<xsl:template match="*" mode="generate-containers">
<xsl:variable name="shippedOrder" select="."/>
<xsl:variable name="listoftrackingnumbers">
<xsl:for-each select=".//PACKAGE[generate-id(.) = generate-id(key('container-group', TRACKING_NUMBER)[1])]">
<xsl:sort select="count($shippedOrder/ORDER_DETAIL[.//PACKAGE/TRACKING_NUMBER = current()/TRACKING_NUMBER])"
order="ascending" data-type="number"/>
<xsl:value-of select="concat(TRACKING_NUMBER, '~')"/>
</xsl:for-each>
</xsl:variable>
</xsl:template>


Anton


-- Brian J. Coan Software Developer BabyCenter, Inc. (415) 344-7606 direct (415) 537-0909 fax brianc@xxxxxxxxxxxxxx

Current Thread