Ok this is what I'm doing:

I produce an XML file from data stored on a mainframe.  The XML is generate in a VB 
object.  The XML is
passed up to an ASP page that makes a Low Level API SOAP call, using MSSOAP Toolkit 
2.0,  to my PDF server.
The PDF server is running Tomcat 4/Apache SOAP 2.2.

On the PDF server, I receive the XML as literalxml in the envelope, fetch a 
stylesheet, pass the Element
object to a Xalan 2.3 transformer (wrapped in a DOMSource object), and then transform 
the XML into XSL:FO

Now I have a Document object that was returned from the transformer wrapped in a 
DOMResults object.  The
next step is where the problem lies.  I want to pass the Document to a Driver, but I 
get the dreaded

Most of the time, the XML is will be small ( 5 - 7K), but there is a potention for an 
account to have 5 to
10 thousand transactions in a day, and we store up to 63 days of data (a single 
transaction in XML is 594
bytes, therefore a 630K transaction XML file would be 374MB, plus some extra data at 
the top).  So you can
see what I have the potential to deal with.

What I don't even know is how FOP will handle this.  The XSL:FO file is sure to be 
much larger than 380MB.
I transformer a 6.66KB XML file and it produced a XSL:FO file of 16.2KB.  If we use 
that as a benchmark,
than the same 374MB would become 909.8MB.  That's a whole lot of RAM, not to mention 
what FOP is going to
use to store the rendered PDF.

I'm hoping that someone can poke a hole in these numbers (please), because this is 
getting to look a whole
lot bigger than expected.  Obviously performance and resource utilization are major 
concernes (like when are
they not?).  Obviously SAX for this would be faster because it wouldn't require 
loading the entire XML
contents into memory.

So, now is here the questions come in.  Do I return from the transform a SAXResults?  
Also, how do I
effectively handle the incoming XML into the SOAP method?  I would prefer to send the 
XML in literalxml
format so the < and > are HTML encoded (increasing the size of the content even more).

Where do I go from here?

On Fri, Mar 22, 2002 at 04:49:40PM +0100, Jeremias Maerki wrote:
> <comment>Oops, that one didn't make it to the list at first.</comment>
> DOM (Document) should work. But using DOM to process a 400MB XML? You
> wouldn't want to do that. Try to find a way to use SAX. You can fill SAX
> events into FOP to create the FO tree. Maybe it helps us to provide you
> with some pointers and ideas if you tell us what exactly you're trying
> to do.
> >     I'm sorry to post this again but I need help.  Does passing a Document 
>datatype to the Driver
> > render() method work?  I have to potential to move XML files in excess of 400MB 
>and so I need to avoid as
> > moving of data in memory as possible.
> Cheers,
> Jeremias M?rki
> Postfach 3954 - Rhynauerstr. 15 - CH-6002 Luzern
> Tel. +41 41 317 2020 - Fax +41 41 317 2029
> Internet http://www.outline.ch
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, email: [EMAIL PROTECTED]


David B. Bitton

Diversa ab illis virtute valemus.

To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, email: [EMAIL PROTECTED]

Reply via email to