Ivan,
Thanks for the info. One more related question. If the XML files are
in the DB, will the mem limit for the transformations still exist?
Today we find it necessary to split them into ~1MB files.
On Nov 13, 2009, at 4:12, Ivan Mikhailov <[email protected]>
wrote:
Hello Aldo,
If you transform each file only once then it does not matter (or
filesystem may be even faster). More important is that XSLT is a
single-thread thing so you may wish to occupy all your CPUs by running
an async queue of works or split the set of files in few parts and
process each part by a separate client connection, many connections in
parallel.
If a single file is transformed by many stylesheets or the process is
more complicated than read-transform-write or the processing is simple
but you expect tens of debugging runs then placing preparsed source
docs
into a table with LONG XML column may be an idea and keeping
intermediate results as variables of XML Tree type (in memory) is even
more important idea.
BTW there are undocumented xpath-debug-srcline(node) and
xpath-debug-srcfile(node) XPATH functions that return origin in the
source file where the given node come from. This works if the XML is
loaded with xtree_doc() and loading mode is 256 (in second parameter
of
xtree_doc() call). With other sorts of documents, line 0 in file "" is
assumed. Similarly, XPATH xpath-debug-xslline() and
xpath-debug-xslfile() "functions" return line and file where the
function call is located in the stylesheet file, lie __FILE__ and
__LINE__ macro in C.
Best Regards,
Ivan Mikhailov
OpenLink Software
http://virtuoso.openlinksw.com
On Thu, 2009-11-12 at 20:15 -0300, Aldo Bucchi wrote:
Hi,
We're currently running XSLT transformations against quite a bunch of
XML files ( half a million ).
Would this be fastest if we loaded the XML files to a table within
Virtuoso first? ( instead of keeping them in filesystem? ).
Thanks,
A