<variable> 元素會定義變數,並包含可被表示式參照的格式資訊。您可以在規則集、規則區塊或規則層次定義變數。
在規則階層的不同層次,變數可以有相同的名稱。當存取變數時,會使用變數的最本端定義。例如,如果在規則集層次、規則區塊層次及規則層次定義相同名稱的變數,則規則內的表示式會使用規則層次的變數定義。
當在規則集或規則區塊層次定義變數時,多個規則會在不同時間取得並設定這些變數。因此,為了確保正確維護變數值,請瞭解您在規則集的變數之間,撰寫交談作業程式碼的方式。
如果在規則集或規則區塊層次定義變數,則在符合規則型樣之後,不會重新起始設定它。
如果使用分組鍵定義規則,則 <variable> 元素定義的規則變數在生命週期動作中是無效的, 在內含於 <activationInterval> 元素之 <activateOnEvent> 或 <deactivateOnEvent> 元素內的 <filteringPredicate> 元素中也是無效的。這是因為在此情況下,規則變數僅適用於規則實例,而規則實例在這些表示式執行時不存在。
<variable> 具有下列屬性:
名稱 | 說明 | 資料類型 | 必要的嗎? |
---|---|---|---|
name | 識別特定的變數。變數可由其名稱來參照。 | xsd:NMTOKEN | 是 |
dataType | 識別變數包含的資訊類型。這必須是完整的資料類型,例如 java.lang.String。 | xsd:NMTOKEN | 是 |
<variable> 包含下列元素。
元素必須按照所顯示的次序來編碼。如果元素是選用的,則無需進行編碼,但所有編碼的元素都必須遵循正確的次序。
元素 | 必要的或選用的? |
---|---|
<comment> | 選用的。出現次數 0 或 1 是可接受的。 |
<varInitializer> | 必要的。只允許出現 1 次。 |