xsl-list
[Top] [All Lists]

Re: Problem with identity transform and Saxon

2005-08-06 10:32:37
Hi Kenneth,
  I would write identity transform as 
       <xsl:template match="@*|node()">
               <xsl:copy>
                       <xsl:apply-templates select="@*|node()" />
               </xsl:copy>
       </xsl:template>

I think, the template match=/ is reduntant for a identity stylesheet.
This is superfluous code, so _I would not say this is a Saxon bug_.
Also you are using non standard node-set function which is causing
trouble.  This certainly does'nt seem a bug to me..

       <xsl:template match="/">
               <xsl:apply-templates select="exsl-common:node-set($rtf)" />
       </xsl:template>

Regards,
Mukul

On 8/6/05, Kenneth Stephen 
<marvin(_dot_)the(_dot_)cynical(_dot_)robot(_at_)gmail(_dot_)com> wrote:
Hi,

   I have the following code :

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
       xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
       xmlns:exsl-common="http://exslt.org/common";
       version="1.0">

       <xsl:variable name="rtf" xml:space="preserve">
               <a>
                       <b />
               </a>
       </xsl:variable>

       <xsl:template match="/">
               <xsl:apply-templates select="exsl-common:node-set($rtf)" />
       </xsl:template>

       <xsl:template match="@*|node()">
               <xsl:copy>
                       <xsl:apply-templates select="@*|node()" />
               </xsl:copy>
       </xsl:template>

</xsl:stylesheet>

java net.sf.saxon.Transform <XSL filename> <XSL filename>

produces the following :

Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor
java.lang.StackOverflowError
       at java.lang.Object.getClass(Native Method)
       at 
net.sf.saxon.value.SingletonNode.convertToJava(SingletonNode.java:192)
       at 
net.sf.saxon.functions.ExtensionFunctionCall.setupParams(ExtensionFunctionCall.ja
va:330)
       at 
net.sf.saxon.functions.ExtensionFunctionCall.call(ExtensionFunctionCall.java:211)
       at 
net.sf.saxon.functions.ExtensionFunctionCall.iterate(ExtensionFunctionCall.java:1
11)
       at net.sf.saxon.expr.ItemChecker.iterate(ItemChecker.java:83)
       at net.sf.saxon.value.Closure.iterate(Closure.java:201)
       at net.sf.saxon.value.Value.getIterator(Value.java:202)
       at 
net.sf.saxon.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(App
lyTemplates.java:431)
       at 
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:276)
       at 
net.sf.saxon.instruct.ApplyTemplates$ApplyTemplatesPackage.processLeavingTail(App
lyTemplates.java:431)
.
.
.
.
       at 
net.sf.saxon.instruct.ApplyTemplates.applyTemplates(ApplyTemplates.java:276)
Exception in thread "main"

   This is with Saxon 8.4. Any ideas on what I'm doing wrong?

Thanks,
Kenneth

--~------------------------------------------------------------------
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>
--~--