Subject: RE: [xsl] Out OF Memory Exception for Large XML data From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 30 Jan 2006 13:14:00 -0000 |
Yes, this looks like one that's amenable to serial processing. Something like: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:f="http://localhost/functions"> <xsl:output encoding="UTF-8" indent="yes" method="xml" version="1.0"/> <xsl:param name="_userName"/> <xsl:param name="_password"/> <xsl:param name="_class"/> <xsl:param name="_identifier"/> <xsl:param name="_subject"/> <xsl:variable name="apos">'</xsl:variable> <xsl:template name="main"> <DB> <xsl:apply-templates select="f:suppliers()"/> </db> </xsl:template> <xsl:function name="f:suppliers" <xsl:copy-of select="doc('suppliers.xml')/DB/dbo.VW_Ref_Supplier_2_TPL_Supplier" saxon:read-once="yes" xmlns:saxon="http://saxon.sf.net/"/> </xsl:function> <xsl:template match="dbo.VW_Ref_Supplier_2_TPL_Supplier[Ref_Status != 'D']"> > <dbo.TPL_Supplier> > <xsl:variable name="supplierRID" > select="12345"/> > <xsl:attribute name="Action"/> > <xsl:attribute name="RollBackOnError"> > <xsl:value-of select="'true'"/> > </xsl:attribute> > <RID> > <xsl:value-of select="$supplierRID"/> > </RID> > <xsl:if test="ST_SupplierPWID != ''"> > <PWID> > <xsl:value-of > select="ST_SupplierPWID"/> > </PWID> > </xsl:if> > <PDOPWID> > <xsl:value-of select="PDOPWID"/> > </PDOPWID> > <xsl:if test="Ref_SupplierCode != > ST_CustomerKey"> > <CustomerKey> > <xsl:value-of > select="Ref_SupplierCode"/> > </CustomerKey> > </xsl:if> > </dbo.TPL_Supplier> </xsl:template> <xsl:template match="*"/> </xsl:stylesheet> > -----Original Message----- > From: Pankaj Bishnoi [mailto:pankaj.bishnoi@xxxxxxxxxxx] > Sent: 30 January 2006 12:00 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: Re: [xsl] Out OF Memory Exception for Large XML data > > Hi Michael > Thanks for your help. I set the heap size to > 1024 and it > was not helpful. I had also seen the serial link. Now my > quesstion is how > can i convert a xsl to serialized one. My XSL is:: > > <?xml version="1.0" encoding="UTF-8"?> > <xsl:stylesheet extension-element-prefixes="redirect" version="1.1" > xmlns:java="http://xml.apache.org/xslt/java" > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> > <xsl:output encoding="UTF-8" indent="yes" method="xml" > version="1.0"/> > <xsl:param name="_userName"/> > <xsl:param name="_password"/> > <xsl:param name="_class"/> > <xsl:param name="_identifier"/> > <xsl:param name="_subject"/> > <xsl:variable name="apos">'</xsl:variable> > <xsl:template match="/"> > <DB> > <xsl:for-each > select="DB/dbo.VW_Ref_Supplier_2_TPL_Supplier"> > <xsl:if test="Ref_Status != 'D'"> > <dbo.TPL_Supplier> > <xsl:variable name="supplierRID" > select="12345"/> > <xsl:attribute name="Action"/> > <xsl:attribute name="RollBackOnError"> > <xsl:value-of select="'true'"/> > </xsl:attribute> > <RID> > <xsl:value-of select="$supplierRID"/> > </RID> > <xsl:if test="ST_SupplierPWID != ''"> > <PWID> > <xsl:value-of > select="ST_SupplierPWID"/> > </PWID> > </xsl:if> > <PDOPWID> > <xsl:value-of select="PDOPWID"/> > </PDOPWID> > <xsl:if test="Ref_SupplierCode != > ST_CustomerKey"> > <CustomerKey> > <xsl:value-of > select="Ref_SupplierCode"/> > </CustomerKey> > </xsl:if> > </dbo.TPL_Supplier> > </xsl:if> > </xsl:for-each> > </DB> > </xsl:template> > </xsl:stylesheet> > > > Now my quesstion is can i convert this XSL to serialized one?. > > Thanks > Pankaj > > > > > ----- Original Message ----- > From: "Michael Kay" <mike@xxxxxxxxxxxx> > To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> > Sent: Monday, January 30, 2006 4:43 PM > Subject: RE: [xsl] Out OF Memory Exception for Large XML data > > > > > I am having a transformation in which the source > file size is > > > large. The source xml size is around 200 MB. So my > > > transformer throws Out of > > > Memory exception after some time. I am using Xalan. This > > > issue also comes > > > when i use Saxon transformer. Is there a way by which i > can set some > > > transformer parameter to overcome this problem. > > > > You can set the amount of memory allocated to java using > something like > > > > java -Xms1024M -Xmx1024M net.sf.saxon.Transform .... > > > > (or similarly for Xalan, of course). > > > > I wouldn't attempt this with less than 1Gb of main memory. > > > > If the transformation is essentially serial, take a look at > > > > http://www.saxonica.com/documentation/sourcedocs/serial.html > > > > to see if it provides a way forward. > > > > Michael Kay > > http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Out OF Memory Exception f, Pankaj Bishnoi | Thread | [xsl] Altsoft Xml2PDF version 2.5 i, Altsoft Xml2PDF |
Re: [xsl] Out OF Memory Exception f, Pankaj Bishnoi | Date | Re: [xsl] Selecting attribute from , Andrea Berman |
Month |