axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tammy Dugan <>
Subject Re: [AXIOM] How to serialize axiom document without building objects in memory
Date Thu, 15 Mar 2007 13:02:38 GMT
Before we started looking at axiom, we created a class called StringDom 
that extends the w3c dom classes. Each time an appendChild is called, 
this dom implementation writes the child to an outputstream/writer. That 
way, when we are building a large dom, the elements are not actually 
stored in memory but are directly flushed to the outputstream/writer. Of 
course, the disadvantage of this technique is that the dom elements must 
be appended in the exact order they will be written to output. My 
question is whether axiom allows the same kind of absolutely direct 
serialization when a child is appended to a parent? If so, how do I do it?



Punnoose, Roshan wrote:
> Tammy, 
> I'm not exactly sure what you are trying to do... But the
> serialzeAndConsume(...) should not hold it the element in memory.
> Check the implementation of the Writer, and also check if the
> serialize(...) method will work.
> If none of this works, then what version of axis/axiom are you using?
> Roshan Punnoose
> Phone: 301-497-6039
> -----Original Message-----
> From: Tammy Dugan [] 
> Sent: Wednesday, March 14, 2007 2:55 PM
> To:
> Subject: [AXIOM] How to serialize axiom document without building
> objects in memory
> I have the following code:
> new Thread(new ReadDeferred(writer, (OMElement) 
> returnData.createRawDataOutputFromTable(doc,
>             inputDatasetId,
>             outputDatasetId, type, false)
>                )).start();
>         ;
>         writer.close();
> class ReadDeferred
>     implements Runnable
> {
>     Writer writer = null;
>     OMElement topElement = null;
>     public ReadDeferred(Writer writer, OMElement topElement)
>     {
>         this.writer = writer;
>         this.topElement = topElement;
>     }
>     public void run()
>     {
>         try
>         {
>             topElement.serializeAndConsume(writer);
>         }
>         catch (Exception ex)
>         {
>             InitializationServlet.error("", ex);
>         }
>     }
> }
> I am trying to flush the output of createRawDataOutputFromTable directly
> to a file without creating a dom tree. The createRawDataOutputFromTable 
> method builds an OMDocument using a series of append child statements. 
> The above code still holds the whole dom tree in memory before it writes
> to a file. Is there a way I can prevent this? I essentially want every 
> appendChild to write the child to the file.
> Tammy
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

Tammy Dugan
Computer Programmer

Regenstrief Institute, Inc.
1050 Wishard Blvd., RG5
Indianapolis, IN 46202

(317) 630 - 7346

Confidentiality Notice: The contents of this message and any files transmitted with it may
contain confidential and/or privileged information and are intended solely for the use of
the named addressee(s). Additionally, the information contained herein may have been disclosed
to you from medical records with confidentiality protected by federal and state laws. Federal
regulations and State laws prohibit you from making further disclosure of such information
without the specific written consent of the person to whom the information pertains or as
otherwise permitted by such regulations. A general authorization for the release of medical
or other information is not sufficient for this purpose.
If you have received this message in error, please notify the sender by return e-mail and
delete the original message. Any retention, disclosure, copying, distribution or use of this
information by anyone other than the intended recipient is strictly prohibited.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message