$Xml¶
Provides access to the process data model. $Xml is an instance of the XmlNode object and points to the root of the workflow instance pool.
1 | |
Remarks¶
Example¶
1 2 3 | |
Reference Point¶
The $Xml object points to different elements depending on where it is used: - In Pre-Work, Post-Work, Role, and Route scripts, $Xml is bound to the process pool element. - In Rule-Based Validation and Formatting rules, $Xml is bound to the control element.
Pool Element¶
The pool element is created at the root of the XML tree by default. However, sub-workflow instances may use any element in the data tree.
Example Data Model for Pool¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
product process, $Xml points to the Product element. For the Order process (as a sub-workflow of the Product process), $Xml points to the Order element where the sub-workflow is initiated. For rules on the Amount field, $Xml points to the Amount element. Accessing Pool Root¶
Because $Xml may point to different elements in the data model, in some cases you may need to access the pool root element. You can use the "/form/Product" XPath or the $poolRoot variable to access the pool root.
Using XPath to access the pool root¶
1 | |
Accessing the pool root with the¶
$poolRoot variable:
1 | |
Capabilities¶
Namespaces¶
$Xml.AddNamespace: Adds a namespace to the XML node with the given prefix and URI.$Xml.LookupNamespaceURI: Returns the namespace URI associated with the specified prefix.$Xml.LookupPrefix: Returns the prefix associated with the specified namespace URI.$Xml.RemoveNamespace: Removes the prefix for the specified namespace URI.
Structure Changes¶
$Xml.AppendChild: Appends a new child to the specified XPath location and executes the provided callback function on the newly created node before inserting it into the DOM. Returns the appended new node.$Xml.Copy: Copies the current XML node and all its child nodes from the source XPath to the target XPath or target navigator.$Xml.Remove: Removes the current node and returns it in an array.$Xml.Sync: Synchronizes the nodes at the specified XPath with the input nodes, and returns an array of the synchronized nodes.
Validation and Cleanup¶
$Xml.Assert: Performs an error check by asserting that the specified XPath evaluates to a boolean true value. If the assertion fails, an error is thrown.$Xml.CommitDeletes: Deletes all child nodes that have theStateattribute set to the value 'Deleted'.
Client Events¶
$Xml.Bind: Attaches a change event handler to the nodes selected by the specified XPath.$Xml.Live: Attaches a change event handler to the specified XPath.$Xml.Trigger: Triggers event handlers bound to the current node.
Reading and Predicates¶
$Xml.Count: Returns the number of nodes at the specified XPath.$Xml.Equals: Returns a boolean value indicating whether the specified XPath has the specified value.$Xml.Evaluate: Returns the string value of the current node.$Xml.EvaluateBoolean: Returns the boolean value of the current node.$Xml.EvaluateDateTime: Returns the date-time offset value of the current node.$Xml.EvaluateNumber: Returns the numeric value of the current node.$Xml.IsEmpty: Returns a boolean value indicating whether the current node has an empty string value.$Xml.Sum: Returns the sum of the numeric values of child elements on the current node, or at the specified XPath.
Creation and Persistence¶
$Xml.Create: Creates a new XmlWriter instance.$Xml.Load: Loads XML content into the current node from the$XmlRepository.$Xml.Parse: Parses the specified string as an XML node and returns the document element as an Xml instance.$Xml.Save: Saves the current node's content to the$XmlRepository.
Formatting and Transformation¶
$Xml.Format: Applies the specified template to the current node and returns the resulting string.$Xml.InnerXml: Returns the inner XML of the current node.$Xml.OuterXml: Returns the outer XML of the current node.$Xml.Transform: Performs an XSLT transformation on the current node and returns the result as a string.
Attributes¶
$Xml.GetAttribute: Gets an attribute value on the current node.$Xml.RemoveAttribute: Removes the attribute with the specified name.$Xml.SetAttribute: Sets an attribute on the current node to the specified value.$Xml.SetAttributeNS: Sets an attribute on the current node to the specified value in the specified namespace URI.
Selection and Navigation¶
$Xml.GetParent: Returns the parent node of the current node.$Xml.SelectAll: Selects all matching nodes based on the specified XPath expression.$Xml.SelectSingle: Selects a single node based on the specified XPath expression.
Value Updates¶
$Xml.SetDefaultValue: Sets the value of the current node if it is empty.$Xml.SetValue: Sets the value of the current node.