XDuce ("transduce") is a typed programming language that is specifically designed for processing XML data. One can read an XML document as an XDuce value, extract information from it or convert it to another format, and write out the result value as an XML document. Since XDuce is statically typed, XDuce programs never crash at run time and the resulting XML documents always conform specified types.
XDuce has several notable features.
This implementation is a part of our ongoing research. The language design has not been finished, and some algorithmic issues in type checking and the run-time system still remain. This language system is likely to be drastically changed in near future. So please do not depend on this software. On the other hand, any comments and suggestions are welcome!
XDuce system is solely written in the O'Caml language. In principle, XDuce should run on any platform that O'Caml supports. In particular, we have checked that XDuce works on the following.
We have not yet tested compilation on Windows. However, since recent versions of O'Caml and the libraries that XDuce depends on support Windoes with Cygwin, XDuce should work on this platform in principle.
Note: You have to build each library by typing "make opt" in order to build xduce by the native O'Caml compiler (type "make all" if you want to compile the bytecode version of xduce).
It will produce an executable file named xduce.opt in the xduce-xxx directory.
On platforms where native O'Caml compiler is not supported, still bytecode version may work. For this compilation, type:
make debugThis will yield an executable file xduce. The usage is the same.
xduce.opt -path <new-location> ...
type
xduce.opt <XDuce program file>to run a XDuce program. Type
xduce.opt -helpto see options.
There is no user's manual since the language design is not yet settled. The programs found in "examples" directory would be useful for understanding the language. Also, the files in "lib" directory (such as "pervasive.q" and "xml.q") would be worth seeing.
For more information, visit our web page:
http://xduce.sourceforge.netIt also provides some technical papers.