The Functional XML Transformation Tool

fxt (the functional xml transformer) is a transformation tool for XML documents. fxt generates code to perform transformations of XML documents according to a given specification. The specification indicates how the generated transformation code will process an XML input document. Depending on the specification, the output of the transformation can be another XML document or an integer, string, etc.
fxt is written in the functional language of SML of NJ . SML of NJ must be installed on the host system in order to run fxt. SML programming knowledge is not required. However, it may prove useful for taking advantage of the full computational power of the SML language in the XML document processing.
The idea of fxt is to combine the computational power of SML, a functional programming language well suited for tree processing (which is to what XML document processing mainly reduces),and the expressivity of pattern matching over XML documents, provided by fxgrep, a powerful pattern matcher for XML documents.
New: fxt can now use binary match patterns for node selection.
The current release is the release 4.1. Changes from the previous versions are described here.
The source code for fxt can be downloaded by http. The Copyright note is here.
In order to install fxt, you need an SML compiler. The current version of fxt has been tested with version 110.0.7 of SML of New Jersey, but it might also run with other versions. The compiler must have the compilation manager (CM) built in, which is the default when installing SML-NJ.
These are the steps for installing fxt under Unix:
1. Download and install the latest version of fxp (the XML parser).
It suffices to install the fxlib library.
(http://www.informatik.uni-trier.de/~aberlea/Fxp/);
2. Download and install the latest version of fxgrep (the XML
query tool). It suffices to install the fxgreplib library.
(http://www.informatik.uni-trier.de/~aberlea/Fxgrep/);
3. Download the latest version of fxt (the transformation
language itself);
4. Unpack the sources, and change to the fxt directory, e.g.:
gunzip -c fxt-4.1.tar.gz | tar xf -
cd fxt-4.1
5. Read the COPYRIGHT;
6. Edit the Makefile according to your needs. Probably you will only have
to change the following:
FXP_LIBDIR is where the fxp library was installed. This should
be set to the same path as for the installation of
fxp; it must contain the file fxlib.cm. Make sure
that fxp was compiled with the same version of SML-NJ.
FXGREP_LIBDIR is where the fxgrep library was installed. This should
be set to the same path as for the installation of
fxgrep; it must contain the file fxgrep.cm. Make sure
that fxgrep was compiled with the same version of SML-NJ.
FXT_BINDIR is where the executable will be installed;
FXT_LIBDIR is where the heap image of fxt will be installed;
SML_BINDIR is the directory where the SML executables are found.
It must contain the .arch-n-opsys script from the
SML-NJ distribution, so make sure that this is where
SML-NJ is physically installed;
SML_EXEC is the name of the SML executable. This is the program
that is called for generating the heap image and at
execution of fxt. If sml will be in your PATH at
installation time, you don't need the full path here.
7. Compile fxt by typing make;
8. Install fxt by typing make install.
If you experience problems installing fxt, send me a mail.
The user guide is here.
Authors of fxt are A. Berlea, A. Neumann and H. Seidl. fxt is developed within the DocML project financed by the DFG Research Foundation.
