xsl-list
[Top] [All Lists]

Re: performance issues saxon

2003-02-17 12:48:31
Ok Mike,
So I am not using the templates

I have the following structure for the xsl.

<saxon:preview mode="preview" elements="Products"/>
 <xsl:template match="/">
<xsl:for-each
select="/schedule/timeslot[generate-id(productdetails/productid-number)=
generate-id(key('products',productdetails/productid-number)[1])]">
      <xsl:variable name="product-numner" select="."/>
      <xsl:variable name="FILE"
select="concat('outputpath/','my-textoutput.txt')"/>
   <saxon:output file ="{$FILE}">
    <xsl:for-each
select="/schedule/timeslot[productdetails/productid-number=$product-number]"

  ---    process data ---
</xsl:for-each>
   </saxon:output>
  </xsl:for-each>
</xsl:template>

and the transformastion fails for an xml file of 20 Mg ( i would have
thought 20Mg is reasonable .. but anyway  ), anything above 10 Mg fails.
The results of the above transformation seems to be output to the screen as
opposed to the output to the file defined by $FILE. This is unusual
behaviour which i dint expect.I wonder if this is the bug with saxon 5.5.1 .
I am now going to check this with the later versions of the Saxon. ( Saxon
7.3)
Please advice

----- Original Message -----
From: "Michael Kay" <michael(_dot_)h(_dot_)kay(_at_)ntlworld(_dot_)com>
To: <xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com>
Sent: Monday, February 17, 2003 6:04 PM
Subject: RE: [xsl] performance issues saxon


Thanks for your suggestions Mike. I am looking at the
solution you had suggested. I am at the moment sticking to
saxon5.5.1 for some reasons. I looked at  the documentation
for saxon:preview and the sample play.xsl. I am all set to do
a basic test ..can I give a wildcard * to say preview all
elements? like. <saxon:preview mode = "preview" elements = "*"/>

No, it has to be a list of specific element names, whitespace-separated.
If you gave the name "*", it would match the document element, which
would make the whole exercise rather pointless.

Or do we have to give the specific element's name??

Also will it only work if we have a template of that name.. I
am asking this because i am making use of  a for-each and not
a template.?

You don't need to have a template of the form match="element-name", but
you do need to have a template rule that matches the preview element.
The rule is triggered automatically when the XML parser hits the end tag
for a registered preview element, it does not need to be fired using
xsl:apply-templates.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list