1.20. Process variables

Almost all child elements and attribute values in a process element can include variables which are substituted just before the execution of the process-command. Example: <upload base="%0/">.

VariableDescription
%0, %1, %2, ..., %9, %*

A process-command can have a parameter. This string is split like in a command line. First 10 parts of the split parameter can be referenced as variables %0, %1, %2, ..., %9.

%* can be used to reference the whole parameter of the process-command.

%D, %d

%D is the file name of the document being edited. Example: C:\novel\chapter1.xml.

This variable is replaced by an empty string if the document being edited is found on a remote HTTP or FTP server.

%d is the URL of the document being edited. Example: file:///C:/novel/chapter1.xml.

%P, %p

%P is the name of the directory containing the document being edited. Example: C:\novel.

This variable is replaced by an empty string if the document being edited is found on a remote HTTP or FTP server.

%p is the URL of the directory containing the document being edited. Example: file:///C:/novel.

Note that this URL does not end with a '/'.

%N, %R, %E

%N is the base name of the document being edited. Example: chapter1.xml.

%R is the base name of the document being edited without the extension, if any (sometimes called the root name). Example: chapter1.

%E is the extension of the document being edited, if any. Example: xml.

Note that the extension does not start with a '.'.

%S

%S is the native path component separator of the platform. Example: '\' on Windows.

%UUser's account name. Example: john.
%HUser's home directory. Example: /home/john.
%W, %w

%W is the name of the temporary process directory. Example: C:\temp\xxe1023E45.

%w is the URL of the temporary process directory. Example: file:///C:/temp/xxe1023E45.

Note that this URL does not end with a '/'.

%C, %c

%C is the name of the directory containing the XXE configuration file from which the process command has been loaded. Example: C:\Program Files\XMLmind_XML_Editor\addon\config\docbook.

%c is the URL of the above directory. Example: file:///C:/Program%20Files/XMLmind_XML_Editor/addon/config/docbook.

Note that this URL does not end with a '/'.

The "%" character can be escaped using "%%". The above variables can be specified as %{0}, %{1}, ..., %{R}, %{E}, etc, if it helps (see note about escaped URIs).

Note

Most attribute and element values described in this documentation as being URIs (data type anyURI) in fact are not URIs. These attribute and element values can contain %-variables. They are required to be valid URIs only after the %-variables have been substituted with their values.

The problem is that URIs may also contain escaped characters which look very much like references to %-variables. For example, a whitespace must be escaped as "%20", which looks like a reference to variable %2 followed by literal string "0".

In practice:

  1. It is recommended to specify variables as %{0}, %{1}, ..., %{d}, %{E}, etc, rather than as %0, %1, ..., %d, %E, etc, because it makes clear what is a variable reference and what is an escaped character.

  2. An escaped character such as "%20" must be specified as "%%20" because variable substitution occurs before the URIs are used and because, during variable substitution, a real percent character can be protected against substitution by doubling it.

Example: relative URI "docs/my report/my.doc.%0", where variable %0 represents a file extension, must be specified as "docs/my%%20report/my%%20doc.%0".