Christian,

You may wish to use string session instead of string.
file_to_string_output() will produce one without even placing whole text
to memory (if it's longer than the threshold then most of it will stay
on disk). At the same time string session is a valid input for both
xper_doc() and xtree_doc().

The unsupported case of big XML is when a string value in the tree is
longer than 10M, i.e. 10Mb block of text without a single tag. The only
practical case I can recall for such an oddity is an ill formed mail in
HTML format that is a forward of a mail with huge attachment, so the
text of the attachment is placed into enormous "paragraph". The email
like that will not be parsed by both 
xtree_doc() and xper_doc() because 10Mb is an universal and strick
threshold for strings in Virtuoso, even if strings are just parts of
bigger structures, not standalone values of some variables.

For most of XSLTs, xtree is much better than xper nowadays, because
you'll probably never see an XML that does not fit into the RAM of a
modern PC. XPER allows to fetch a small portion of a big document
without loading it all in memory or to handle data bigger than the
amount of available RAM; an XSLT transformation on a PC does not belong
to any of these two cases if it process the whole document.

Ivan.

On Fri, 2009-11-13 at 16:06 -0300, Cristian Vasquez wrote:
> Sorry,
> 
> It was an error when trying load an entity object using xtree_doc from
> a string longer than 10 megabytes.
> this issue was solved using xper_doc to operate over an 'XPER entity'.
> 
> Thank you for your answer.
> 
> Cristian.
> 
> On Fri, Nov 13, 2009 at 2:28 PM, Ivan Mikhailov
> <[email protected]> wrote:
> > Aldo,
> >
> > What limit do you mean? We've handled tens of megabytes of XML as XML
> > trees and gigabytes of XMLs as "persistent XMLs" without any issues.
> >
> > Best Regards,
> >
> > Ivan Mikhailov
> > OpenLink Software
> > http://virtuoso.openlinksw.com



Reply via email to