Das Element <variable> definiert eine Variable. Es enthält Informationen in einem Format, auf das Ausdrücke verweisen können. Eine Variable kann auf der Ebene des Regelsatzes, eines Regelblocks oder einer Regel definiert werden.
Variablen können den gleichen Namen auf unterschiedlichen Ebenen in der Regelhierarchie haben. Beim Zugriff auf eine Variable wird die erste Definition einer Variablen ausgehend von der lokalen Ebene verwendet. Wird eine Variable z. B. auf der Ebene des Regelsatzes, des Regelblocks und der Regel mit dem gleichen Namen definiert, wird die Variablendefinition auf der Ebene der Regel von den Ausdrücken in dieser Regel verwendet.
Wenn Variablen auf der Ebene des Regelsatzes oder Regelblocks definiert werden, werden sie zu unterschiedlichen Zeiten von mehreren Regeln abgerufen und festgelegt. Daher sollten die Interaktionen zwischen den Variablen im Regelsatz sorgfältig codiert werden, damit sichergestellt ist, dass die Variablenwerte korrekt verwaltet werden.
Wenn die Variable auf der Ebene des Regelsatzes oder Regelblocks definiert ist, wird sie nicht reinitialisiert, nachdem das Regelmuster abgeglichen wurde.
Wenn eine Regel mit einem Gruppierungsschlüssel definiert wird, sind Regelvariablen, die durch das Element <variable> definiert werden, in Lebenszyklusaktionen oder im Element <filteringPredicate> nicht gültig, das in einem Element<activateOnEvent> oder <deactivateOnEvent> enthalten ist, das wiederum in einem Element <activationInterval> enhalten ist. Dies ist der Fall, weil die Regelvariablen in diesem Fall nur auf eine Regelinstanz angewendet werden und Regelinstanzen bei der Ausführung dieser Ausdrücke nicht vorhanden sind.
<variable> hat die folgenden Attribute:
Name | Beschreibung | Datentyp | Erforderlich? |
---|---|---|---|
name | Gibt eine bestimmte Variable an. Auf eine Variable wird durch ihren Namen verwiesen. | xsd:NMTOKEN | Ja |
dataType | Gibt den in der Variablen enthaltenen Informationstyp an. Es muss sich um einen vollständig qualifizierten Datentyp wie z. B. java.lang.String handeln. | xsd:NMTOKEN | Ja |
<variable> enthält die folgenden Elemente.
Die Elemente müssen in der angezeigten Reihenfolge codiert werden. Wenn ein Element optional ist, muss es nicht codiert werden. Alle codierten Elemente müssen jedoch die richtige Reihenfolge aufweisen.
Element | Erforderlich oder optional? |
---|---|
<comment> | Optional. 0 oder 1 Vorkommen ist zulässig. |
<varInitializer> | Erforderlich. 1 Vorkommen ist zulässig. |