Arguments to some conditions, actions, and tokens use XPath 1.0 expressions. XPath is a language created to provide a common syntax and semantics for functionality shared between XSLT and XPointer. It is used primarily for addressing parts of an XML document, but also provides basic facilities for manipulation of strings, numbers, and Booleans.
The XPath specification requires that the embedding application provide a context with several application-defined pieces of information. In DirXML Script (see Section 4.1, DirXML Script), XPath is evaluated with the following context:
The context node is the current operation, unless otherwise specified in the description of the expression.
The context position and size are 1.
There are several available variables:
Variables available as parameters to style sheets within Identity Manager (currently fromNDS, srcQueryProcessor, destQueryProcessor, srcCommandProcessor, destCommandProcessor, and dnConverter).
Global configuration variables.
Local policy variables.
If there is a name conflict between the different variable sources, the order of precedence is local (policy scope), local (driver scope), and global.
Because of the XPath syntax, any variable that has a colon character in its name is not accessible from XPath.
There are several available namespaces definitions:
Any namespaces that are explicitly declared on the <policy> element using the XMNS:prefix.
The following implicitly defined namespaces (unless the same prefix has been explicitly defined):
xmlns:js=“http://www.novell.com/nxsl/ecmascript”
xmlns:es=“http://www.novell.com/nxsl/ecmascript”
xmlns:query=“http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.XdsQueryProcessor”
xmlns:cmd=“http://www.novell.com/nxsl/java/com.novell.nds.dirxml.driver.XdsCommandProcessor”
xmlns:jdbc=“urn:dirxml:jdbc”
Any namespace prefix that is not otherwise mapped is automatically mapped to http://www.novell.com/nxsl/java/ <prefix> if and only if prefix is the fully qualified class name of Java class that can be resolved to an available Java class via introspection.
Namespace declarations to associate a prefix with a Java class must be declared on the policy element.
There are several available functions:
All built-in XPath 1.0 functions.
Java extension functions as provided by NXSL.
Java extension functions are accessed via a namespace prefix mapped to a URI of the form: http://www.novell.com/nxsl/java/ <fully-qualified-class-name> .
For convenience, any prefix that is not otherwise mapped, is mapped to http://www.novell.com/nxsl/java/ <prefix> if prefix is the fully qualified class name of a Java class that can be discovered via introspection.
ECMAScript extension functions as provided by NXSL:
ECMAScript extension function definitions come from the set of ECMAScript resources that are associated with the driver.
ECMAScript extension functions are accessed via a namespace prefix mapped to the URI http://www.novell.com/nxsl/ecmascript.
For convenience, the prefixes js and es are both implicitly mapped to http://www.novell.com/nxsl/ecmascript unless otherwise explicitly defined.
The W3 Web site contains further information about XPath.