L'élément <variable> définit une variable et contient des informations sous une forme qui peut être référencée par expressions. Une variable peut être définie au niveau du jeu de règles, d'un bloc de règles ou d'une règle.
Plusieurs variables peuvent avoir le même nom si elles se trouvent à différents niveaux de la hiérarchie de règles. Lorsqu'on accède à une variable, la définition la plus locale de la variable est utilisée. Par exemple, si une variable de même nom est définie au niveau du jeu de règles, au niveau d'un bloc de règles et au niveau d'une règle, c'est la définition de la variable au niveau de la règle qui est utilisée par les expressions présentes dans cette règle.
Lorsque des variables sont définies au niveau du jeu de règles ou au niveau d'un bloc de règles, plusieurs règles extraient et définissent ces variables à différents moments. Pour assurer une gestion correcte des valeurs de variable, apportez donc un soin particulier à la façon dont vous codez les interactions entre variables dans le jeu de règles.
Si la variable est définie au niveau du jeu de règles ou au niveau d'un bloc de règles, elle n'est pas réinitialisée après que le modèle de règle a trouvé une correspondance.
Si une règle est définie avec une clé de groupement, des variables de règle définies par l'élément <variable> ne sont pas valables dans des actions de cycle de vie ou dans un élément <filteringPredicate> contenu dans un élément <activateOnEvent>, ou encore dans un élément <deactivateOnEvent> contenu dans un élément <activationInterval>. En effet, dans ce cas, les variables de règle s'appliquent uniquement à une instance de règle et il n'existe pas d'instance de règle au moment où ces expressions sont exécutées.
<variable> a les attributs suivants :
Nom | Description | Type de données | Obligatoire ? |
---|---|---|---|
name | Identifie une variable spécifique. Une variable est référencée par son nom. | xsd:NMTOKEN | Oui |
dataType | Identifie le type d'informations contenues dans une variable. Il doit s'agir d'un type de données complet tel que java.lang.String. | xsd:NMTOKEN | Oui |
L'élément <variable> contient les éléments suivants.
Ces éléments doivent être codés dans l'ordre indiqué. Il n'est pas nécessaire de coder les éléments facultatifs, mais tous les éléments codés doivent être placés dans le bon ordre.
Elément | Obligatoire ou facultatif ? |
---|---|
<comment> | Facultatif. Le nombre d'occurrences autorisé est de 0 ou 1. |
<varInitializer> | Obligatoire. Une occurrence autorisée. |