Expressions component
The expressions component comprises an expr.xsd file, which defines the abstract syntax, and an expr.properties file, which defines the concrete syntax.
Support for custom business rule
languages is deprecated in V8.8.1. This feature will be removed in
a future release of the product. See Deprecated features for migration
details.
The expressions component defines generic types that can be used in typed expressions:
T-expression: a generic element for a typed expression.
A T-expression is a choice between the following elements:
<element name="value" type="T-voc-value"/>: a literal value
<element name="collection" type="T-collection"/>: a list of items, each item of which is a T-expression
<element name="variable" type="T-voc-variable"/>: a reference to a variable
<element name="navigation" type="T-navigation-sentence"/>: a navigation phrase
<element name="operator" type="T-operator-sentence"/>: an operator phrase
<element name="subexpression" type="T-expression"/>: an expression between parentheses. This element enables rule authors to nest parentheses when writing expressions
T-collection: a list of items, each item of which an expression
T-navigation-sentence: a navigation phrase (sentence).
It has two subnodes:
the reference to the vocabulary sentence (type T-voc-sentence)
the roles that correspond to the placeholders in the phrase, in the form of any number of expressions. The actual number of roles in the abstract syntax depends on the number of roles defined in the vocabulary for the corresponding sentence
T-operator-sentence: a phrase (sentence) of type OPERATOR. This element has the same structure as T-navigation-sentence, but it uses only expressions with operators. Operator sentences are defined in the system vocabulary
T-test: an element for specifying tests in a where statement
T-origin: a simple element for specifying the origin of an expression. It consists of a choice between an in expression and a from expression
T-target: a simple element for specifying a target concept, as in the construct there is no <target> where (..).