[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] RE: Decimal precision
Dimitre, I notice that in FXSL-for-XSLT2, you're still using this 1.0 idiom: <doubleall:doubleall/> <xsl:template name="doubleall"> <xsl:param name="pList" select="/.."/> <xsl:variable name="vFunDouble" select="document('')/*/doubleall:*[1]"/> Is this still necessary? It has very poor performance, because the stylesheet has to be reparsed at run-time. Wouldn't it now be possible to do <xsl:variable name="doubleall:doubleall" as="element()"> <doubleall:doubleall/> </xsl:variable> <xsl:template name="doubleall"> <xsl:param name="pList" select="()"/> <xsl:variable name="vFunDouble" select="$doubleall:doubleall"/> I also changed the representation of the empty sequence to something more direct. Also, your template rule: <xsl:template name="double" match="*[namespace-uri() = 'doubleall']" would be more efficient in Saxon as <xsl:template name="double" match="doubleall:doubleall"/> (because the hash lookup on template rules works best when the element name is known statically) and it would be better to return an atomic value rather than a text node: <xsl:value-of select="2 * $arg1"/> should be <xsl:sequence select="2 * $arg1"/> (I would also like to see some type declarations added, but that requires some thought.) Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Dimitre Novatchev [mailto:dnovatchev@xxxxxxxxx] > Sent: 05 February 2005 01:43 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: Decimal precision > > On Sat, 5 Feb 2005 12:13:08 +1100, Dimitre Novatchev > <dnovatchev@xxxxxxxxx> wrote: > > On Fri, 4 Feb 2005 23:32:03 -0000, Michael Kay > <mike@xxxxxxxxxxxx> wrote: > > > x/y/xs:decimal() works only in Saxon 8.2. In earlier > releases you have to > > > write it as > > > > > > for $x in x/y return xs:decimal($x) > > > > Or with FXSL: > > > > sum( f:map(f:decimal(), > /*/*/claim/claim_line/reimbursement_amount) ) > > > > The above was intended to show the solution of the OP. > > What in FXSL correspond's to: > > for $x in x/y return xs:decimal($x) > > is > > f:map( f:decimal(), x/y ) > > > Cheers, > Dimitre.
|
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
|