You'll probably get a better size reduction by just compressing the text
XML. Binary XML representations can be faster to process and smaller
than text XML, but they don't compress nearly as well.

  - Dennis

Dennis M. Sosnoski
XML and Web Services in Java
Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117


On 09/13/2010 05:08 AM, sub3 wrote:
> That works great. Thanks.
>
> I am getting about 30% reduction in size.  I can get another 30% (total
> ~60%) if I compress the byte[] afterwards.
>
> I know this is highly object dependent, but does these 2 steps sound like
> the smallest I can make an object?
>
> Thanks.
>
>
>
> Tim Watts-3 wrote:
>   
>> For serializing, looks like you could use a SAX approach with the
>> XmlBean's  save(ContentHandler,LexicalHandler) method:
>>
>>         OutputStream out = ...
>>         SAXDocumentSerializer saxOut = new SAXDocumentSerializer();
>>         saxOut.setOutputStream(out);
>>         myXmlBeanDocument.save(saxOut, saxOut); // both args ???
>>         out.close();
>>         
>> Haven't actually tried this so I don't know if it will work (or even
>> compile). But it seems like a reasonable approach based on the FI
>> samples and the fact that there isn't a save(XMLStreamWriter) method.
>>
>> What you outlined for unserializing seems reasonable.
>>
>> HTH
>>
>>
>> On Sat, 2010-09-11 at 20:28 -0700, sub3 wrote:
>>     
>>> Hi,
>>> I am trying to save my XmlBeans objects and I need to use the smallest
>>> amount of disk space possible.  I believe that the Fast Infoset will give
>>> me
>>> that.  Please correct me if I am wrong.
>>>
>>> Does anyone have any example code to implement this?  I tried using the
>>> example code on the Fast Infoset site, but I am not sure how it interacts
>>> with the XmlBeans.
>>>
>>> I've tried to serialize by :
>>>     ByteArrayOutputStream fiDocument = new ByteArrayOutputStream();
>>>     StAXDocumentSerializer staxDocumentSerializer = new
>>> StAXDocumentSerializer();
>>>     staxDocumentSerializer.setOutputStream(fiDocument);
>>>
>>>     XMLStreamWriter streamWriter = staxDocumentSerializer;
>>>     // Write out some simple infoset
>>>     streamWriter.writeStartDocument();
>>>     //streamWriter.writeStartElement("foo");
>>>     //streamWriter.writeCharacters("bar");
>>>     streamWriter.writeEndElement();
>>>     streamWriter.writeEndDocument();
>>>     streamWriter.close();
>>>     return fiDocument.toByteArray();
>>>
>>> I don't really understand the start/character functions, but even without
>>> that, I am still not getting any data saved.
>>>
>>> Assuming the above is a simple fix, would this unserialize the object:
>>>     InputStream fiDocument = new ByteArrayInputStream(bytes);
>>>     XMLStreamReader streamReader = new StAXDocumentParser(fiDocument);
>>>     return AckDocument.Factory.parse(streamReader);
>>>
>>> Thanks for any help.
>>>
>>>       
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@xmlbeans.apache.org
>> For additional commands, e-mail: user-h...@xmlbeans.apache.org
>>
>>
>>
>>     
>   

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@xmlbeans.apache.org
For additional commands, e-mail: user-h...@xmlbeans.apache.org

Reply via email to