1.2. Macro-variables

The parameter of a command C contained in the macro-command can contain variables. These variables are substituted with their values before executing command C.

Macro-variable substitution is also performed in the context, pattern and expression attributes of the match, test, get, set pseudo-commands.

Excerpt of Example 4.2, “Macro-variables” below: <command name="putAttribute" parameter="%0 %1"/>.

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

A macro-command can have a parameter. This string is split like in a command line. A part of the split parameter can be referenced as variable %0, %1, %2, ..., %9.

%* can be used to reference the whole parameter of the macro-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 '.'.

%n, %r, %eSimilar to %N, %R, %E except that these variables contain properly escaped URI components. For example if %R contains "foo bar", then %r contains "foo%20bar".
%S

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

%UUser's account name. Example: john.
%H, %h%H is the user's home directory. Example: /home/john.

%h is the URL of the user's home directory. Example: file:///home/john.

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

%A, %a%A is the user's preferences directory. Example: /home/john/.xxe10.

%a is the URL of the user's preferences directory. Example: file:///home/john/.xxe10.

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

%X (or %W), %x (or %w)

%X (or %W) is the name of the user's current working directory (that is, the current working directory of XXE). Example: C:\Users\john\Documents\report.

%x (or %w) is the URL of the user's current working directory. Example: file:///C:/Users/john/Documents/report.

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 macro 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 '/'.

%_

A macro-command can be used to specify a ``pipe'' of commands.

If variable %_ is referenced in the parameter of command C contained in the macro-command, this variable is substituted with the result of the command executed before C.

Each executed command overwrites %_.

This variable is set to the empty string for commands which do not return a result.

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).

In addition to the above variables, a macro-command may reference any Java™ system property or environment variable. Examples: %{user.home} (for system property user.home), %{HOME} (for environment variable HOME)