Using XDFLengine

Command Line Executable: XDFLrun

The XDFLrun executable simply makes the library available in the form
of a command-line executable.
It is used in the following manner:

XDFLrun <arg1>=<val1> <arg2>=<val2> ... <argn>=<valn>

        script          : XDFL script to execute. (required)
        init            : Init XDFL script to execute before processing main script.
        input           : File to read as input data of script. If not provided, input data is read from stdin.
        output          : File to wite as output data of script. If not provided, output data is written to stdout.
        log             : Log file name. If not provided, log is written to stdout.
        encoding                : Character encoding used.
        other args provided as argname=argvalue are available wiwthin the script as ARG.argvalue values.

The init file is a xdfl script used to initialize XDFLengine:
    - load the streamer modules
    - init application constants
    - ...

It is possible to specify as many arguments as need be, these
arguments then being loaded as variables in the processor.

Web Server Extensions: XDFLisapi and XDFLfcgi

Using XDFLengine as a web server extension

The XDFLengine is available as a web server extension for both IIS and
Apache. Although the web servers , the type of extension, and the
installation procedure are different, their principle, configuration
and usage are the same.

Writting XDFL scripts for web extensions

Writting scripts for the web extension is quite the same as for the
command line utility, the command line arguments being replaced by the
URL arguments : all parameters given on the URL are loaded as named
values in the script context. The key differences are :
- There is no input argument : the xdfl  script is called directly by
the URL and parsed by the extension thanks to the web server
- Web server variables can be loaded as named values in the script
context according to the configuration.


The extension expects to find a config.xdfl file which contains
configuration data.
The location of this file differs for XDFLisapi and XDFLfcgi (see
installation sections)
This file must produce some named values which will give the extension
its configuration parameters.


Beside the configuration file, the extension expects to find an
initialisation file, init.xdfl, in the same directory. This file is
executed once before the execution of the first request and  can be
used for vaious initilisation tasks, especially through the use of the
underscore-prefixed XDFL tags (static nodes) which can set the static
state of the extension.


Installation of XDFLisapi

The following procedure permits to install XDFLisapi as an ISAPI
extension on IIS4 or IIS5 web server,
to interpret the files with the .xdfl extension. The procedure is
given for Windows 2000 (IIS5) but is not very diffrent for IIS4.

1/  Copy the XDFLengine_win32.1.0.dll and XDFLisapi_win32.1.0.dll is the /WINNT/SYSTEM32/
2/  Open the IIS administration console.
3/  Create a new virtual directory with the script execution
4/  Open the property sheet for this virtual directory and go to the
Virtual Directory Tab.
5/  Open the configuration Window (click the 'Configuration...' Button),
and go to the Application Mapping tab.
6/  Click Add... to append a new isapi extension to the virtual
7/  Give the path to the XDFLisapi DLL (C:\WINNT\SYSTEM32\XDFLisapi.dll)
    Declare it for the .xdfl extension, for the GET and POST verbs
    Declare it as a script engine and allow IIS to check for the file
8/  All files with the xdfl extension in the virtual directory will
now be interpreted by XDFLisapi.dll when called through the web

It is then better to declare your IIS application for Medium or
High isolation level.

The config.xdfl and init.xdfl  files are expected at the root of the
virtual directory.

Installation of XDFLfcgi

A sample apache application is given in the sample
see the samples/sample_apache subdirectory

Copyright (c) XDFLengine 2004