El elemento <variable> define una variable y contiene información en una forma que puede ser referenciada por expresiones. Una variable se puede definir a nivel de conjunto de reglas, de bloque de reglas o de regla.
Las variables pueden tener el mismo nombre si se encuentran a distintos niveles dentro de la jerarquía de reglas. Cuando se accede a una variable, se utiliza la definición más local de esa variable. Por ejemplo, si se define una variable con el mismo nombre a nivel del conjunto de reglas, del bloque de reglas y de la regla, la expresión dentro de la regla utilizará la definición de esa variable a nivel se regla.
Cuando se definen variables a nivel de conjunto de reglas o de bloque de reglas, varias reglas obtienen y establecen esas variables en distintos momentos. Por lo tanto, para garantizar que los valores de las variables se mantienen correctamente, tenga cuidado en cómo codifica las interacciones entre variables en el conjunto de reglas.
Si la variable está definida a nivel de conjunto de reglas o de bloque de reglas, no se reinicializa una vez se ha encontrado una coincidencia con el patrón de la regla.
Si una regla se define con una clave de agrupación, las variables de reglas definidas por el elemento <variable> no son válidas dentro de las acciones de ciclo de vida o dentro de un elemento <filteringPredicate> contenido en un elemento <activateOnEvent>, o dentro de un elemento <deactivateOnEvent> contenido en un elemento <activationInterval>. Esto es así porque en este caso, las variables de regla se aplican sólo a una instancia de regla, y en el momento de la ejecución de estas expresiones no existen instancias de reglas.
<variable> tiene los siguientes atributos:
Nombre | Descripción | Tipo de datos | ¿Obligatorio? |
---|---|---|---|
name | Identifica una variable específica. Se hace referencia una variable por su nombre. | xsd:NMTOKEN | Sí |
dataType | Identifica el tipo de información que contiene una variable. Debe ser un tipo de datos completo, como por ejemplo java.lang.String. | xsd:NMTOKEN | Sí |
<variable> contiene los siguientes elementos.
Los elementos deben ser codificados en el orden que se muestra. Si un elemento es opcional, no es necesario que se codifique, pero todos los elementos que se codifiquen deben seguir el orden correcto.
Elemento | ¿Obligatorio u opcional? |
---|---|
<comment> | Opcional. Se permiten 0 o 1 ocurrencias. |
<varInitializer> | Obligatorio. Se permite 1 ocurrencia. |