Whenever the XML allows a string decider (instead of a concrete string), these are the valid options:
"nameOfTextbox"/>) inside the parent element.
All binary operations requires <
first> and <
second> elements (which themselves could be deciders). The type of decider is dependent on the binary-operation attribute value.
The substring binary operation string decider requires a string decider for the <
first> element and an integer for the <
second> element. The result of the operation is the first n characters of the <
Here, the first three characters of the "payment-value" component are calculated.
<calculate binary-operation="substring"> <first> <component id="payment-value" /> </first> <second>3</second> </calculate>
Operations require the operation attribute on the <
calculate> element. The attribute value determines the type of operation.
These are some other keywords to get specific strings:
To append multiple strings together, use the "append-in-order" decider. This requires at least two children string deciders.
<calculate operation="append-in-order"> <value order="1">Add a new reservation with </value> <value order="2"> <component id="procs" /> </value> <value order="3"> Processor(s)</value> </calculate>
The conditional decider uses "if", "then", "else", and "else-if" syntax to determine the string's value. The root of the value decider is a <
conditional> element that includes the following three child elements:
if> - REQUIRED - The <
if> element is a Boolean decider that is evaluated first. It has one child element, <
then>. The <
then> element is the value of the evaluated condition if the
ifdecider evaluates to true.
else-if> - OPTIONAL - The <
else-if> element is a Boolean decider. If specified, it must contain a <
then> child element that is the value of the conditional if previous conditions evaluated to false. There may be zero or more <
else> - RECOMMENDED - The <
else> element does not contain a Boolean decider, but instead is the value of the conditional if the other <
if> and <
else-if> statements evaluated to false. Although optional, it is always recommended to include the <
else> element to verify that the decider always returns a value.
The following is an example of using the conditional syntax:
<conditional> <if comparison="equal"> <first> <component id="script-chooser" /> </first> <second>Upload</second> <then> <component id="upload-script" type="upload" /> </then> </if> <else-if comparison="equal"> <first> <component id="script-chooser" /> </first> <second>NONE</second> <then>NO_VALUE</then> </else-if> <else> <component id="write-script" type="upload" /> </else> </conditional>
In the preceding example, if the "script-chooser" component was "Upload", then the value is the value of the "upload-script" component. Else if the "script-chooser" component was "NONE", then the value would be "NO_VALUE". If neither of these conditions are true, then the value would be the value of the "write-script" component.
The string replace decider is where the decider replaces all instances of the first string with the second string. The three required children elements are:
regex> - The regular expression to match.
replacement> - The string that replaces the matched expression.
value> - The original string that is evaluated. The regular expression checks this string.
<calculate operation="string-replace"> <regex>\.</regex> <replacement>_</replacement> <value>Name.Of.File</value> </calculate>