A
Alain Frisch
Hello,
I'd like to announce a new small language for XML transformation, called
XStream. Transformations written in XStream are compiled into efficient
XML stream processors: the output is computed and produced while the
input is being parsed, which makes it possible to run some
transformations on very big XML documents which could not even fit in
memory. The programmer does not have to worry about streaming or
buffering, this is all done automatically.
Though XStream is mostly intended as a back-end for higher-level
languages, it is also possible to use it directly. The language
features ML-like pattern matching and higher-order functions, but no types.
Web-site: http://yquem.inria.fr/~frisch/xstream
The reason I'm posting this announce here is that I did a tiny benchmark
to compare the performance of a transformation written in XStream, and
the same transformation written in XQuery and XSLT, with several
XQuery/XSLT engines. You can find the results here:
http://yquem.inria.fr/~frisch/xstream/bench.html
As you can see, Saxon/XQuery performs roughly as well as Qizx/open.
Saxon/XSLT performs better than Xalan C++ and xsltproc (Gnome's
libxslt), but Xalan's XSLTC is slighlyt better. XStream outperforms all
these implementations. If someone can propose more efficient versions of
the XSLT or XQuery scripts, or tell me which configuration settings
could improve Saxon performance, I'd be happy to run the benchmarks again.
(Note that I'm not claiming any superiority of XStream over XQuery or
XSLT implementations: the data models and the languages are too different.)
Alain Frisch
I'd like to announce a new small language for XML transformation, called
XStream. Transformations written in XStream are compiled into efficient
XML stream processors: the output is computed and produced while the
input is being parsed, which makes it possible to run some
transformations on very big XML documents which could not even fit in
memory. The programmer does not have to worry about streaming or
buffering, this is all done automatically.
Though XStream is mostly intended as a back-end for higher-level
languages, it is also possible to use it directly. The language
features ML-like pattern matching and higher-order functions, but no types.
Web-site: http://yquem.inria.fr/~frisch/xstream
The reason I'm posting this announce here is that I did a tiny benchmark
to compare the performance of a transformation written in XStream, and
the same transformation written in XQuery and XSLT, with several
XQuery/XSLT engines. You can find the results here:
http://yquem.inria.fr/~frisch/xstream/bench.html
As you can see, Saxon/XQuery performs roughly as well as Qizx/open.
Saxon/XSLT performs better than Xalan C++ and xsltproc (Gnome's
libxslt), but Xalan's XSLTC is slighlyt better. XStream outperforms all
these implementations. If someone can propose more efficient versions of
the XSLT or XQuery scripts, or tell me which configuration settings
could improve Saxon performance, I'd be happy to run the benchmarks again.
(Note that I'm not claiming any superiority of XStream over XQuery or
XSLT implementations: the data models and the languages are too different.)
Alain Frisch