Subject: RE: [xsl] java.lang.OutOfMemory Error When Transforming a Flat XML Document into Detailed XML Document via XSL From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx> Date: Tue, 13 Nov 2001 22:21:44 -0000 |
Since this appears to be a completely serial process, and since you are already writing Java code, it would be much better done as a SAX pipeline. To process a 22MB file in XSLT you need a lot of memory (though you didn't say which processor you are using). The other thing you might look at is the <saxon:preview> extension, which allows you to process a large file "one subtree at a time". Mike Kay > -----Original Message----- > From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx]On Behalf Of > David Haines > Sent: 13 November 2001 22:08 > To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] java.lang.OutOfMemory Error When Transforming > a Flat XML > Document into Detailed XML Document via XSL > > > We are developing a process that converts a fixed-length flat > file into XML. > As of this point, I have performed the following steps via > Java and XSL: > > 1. Created a Java class to take a flat file and create a flat > XML file. For > instance, the flat XML file would look like: > > <ROWSET> > <ROW>flat file record 1</ROW> > <ROW>flat file record 2</ROW> > ... > </ROWSET> > > 2. Created an XSL stylesheet that would create a detailed XML > document (see > below) based on the flat XML file. > > <ROWSET> > <ROW> > <RECORD_ID>0342323</RECORD_ID> > <SUBMISSION_DATE>03/22/2001</SUBMISSION_DATE> > </ROW> > <ROW> > <RECORD_ID>0342324</RECORD_ID> > <SUBMISSION_DATE>03/23/2001</SUBMISSION_DATE> > </ROW> > </ROWSET> > > 3. Created a Java class to take the Flat XML file in (1) and > transform it to > full XML based on the XSL document in (2). > > public void convert() { > try { > javax.xml.transform.TransformerFactory tFactory = > javax.xml.transform.TransformerFactory.newInstance(); > javax.xml.transform.Transformer transformer = > tFactory.newTransformer(new > javax.xml.transform.stream.StreamSource(xslDoc)); > transformer.transform(new > javax.xml.transform.stream.StreamSource(inXML), > new javax.xml.transform.stream.StreamResult( > new java.io.FileOutputStream(outXML))); > } > catch (Exception ex) { > ex.printStackTrace(); > } > } > > 4. When I run execute this Java class using a large file > (e.g., 22 Mb), it > will process until it hits a java.lang.OutOfMemory error. > Mind you that it > creates approximately half its task of creating of the full > XML document > before hitting the OutOfMemory error. > > Any thoughts on how to process large files using XSL transformation? > > > David Haines > david.f.haines@xxxxxxxx > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] java.lang.OutOfMemory Error W, David Haines | Thread | RE: [xsl] java.lang.OutOfMemory Err, David Haines |
[xsl] java.lang.OutOfMemory Error W, David Haines | Date | Re: [xsl] Can XPath / XSLT be aware, Jeni Tennison |
Month |