XML tools are the executables used to process XML. Typically, XML processing is done by chaining the output of one tool to the input of another; thus, you create an XML processing "tool chain." Mr. XML Publisher can use any XML tool that can be called from the command line in either Linux/Unix or Windows. Your XML tools can be native executables, such as the libxml2 tools, or Java based, as with Saxon. They can be Perl scripts, shell scripts, ant scripts, Makefiles, or scripts written in any language, including scripts that execute XML processing in pipelines you define with XPR (http://www.w3.org/TR/xproc/) and execute with applications like Calabash (http://xmlcalabash.com/).
Each format offered by the server is implemented via a unique sequence of commands defined in a web.xml <context-param>. Mr. XML Publisher refers to these command sequences as "command arrays." Mr. XML Publisher executes each command from a command array as an external subprocess in the order in which it appears in its command array. Just as when any user runs a command-line command, a successful execution of an external subprocess requires that necessary prerequisites be met. For example, the executable file must exist somewhere on the PATH, where PATH is the value of the PATH environment variable of the user executing the command. When Mr. XML Publisher processes an uploaded project, the user who uploaded the project is never the owner of any process used to service the formatting request. On the server, the user who owns the processes run by Mr. XML Publisher is the user who owns the web container process. Never allow the web container process to be owned by root on Linux/Unix or by a member of the Administrators group on Windows. For a discussion of security with Mr. XML Publisher, see Security.
Again, each command is executed with the process owner being the user who owns the web container process. Mr. XML Publisher runs all commands as that user, with that user's security settings, file permissions, and ENVIRONMENT variable values. You can change the owner of the web container process, but to do so you must follow the instructions in your web container's documentation. Under normal conditions, Mr. XML Publisher cannot change the user who owns a process, but it can change the ENVIRONMENT in which a process runs. Changing the ENVIRONMENT can be done in several ways. For a discussion of how to customize a process's ENVIRONMENT, see ENVIRONMENTs.