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
