分支算法
预置的分支算法如下:
算法
|
说明
|
wt.rule.algorithm.BooleanBranch
|
采用三个对象的列表。包含在 Value 标记中的第一个对象应该是一个返回布尔值的对象,它通知 BooleanBranch 算法返回其他两个对象 (每个都分别包含在 自变量中) 中的哪一个对象。
|
wt.rule.algorithm.CaseBranch
|
类似于 BooleanBranch,不同之处是转移发生在事例为 TRUE 时。每种情况都有一个 自变量,外加一个在未返回 TRUE 的情况下确定默认值的附加自变量。
|
BooleanBranch 算法的通用语法是:
<Value algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="xxx">
:
</Value>
<Arg>yyy</Arg>
<Arg>zzz</Arg>
</Value>
在嵌套的
Value 标记中指定的算法 (由格式中的 xxx 标识) 可以是任何以布尔值为结果的有效算法。是否使用
自变量中的一个对象 (由
Arg 标记以及 yyy 和 zzz 字符串所标识) 取决于 xxx 算法的结果。
存在三种情况的 CaseBranch 算法的通用语法为:
<Value algorithm="wt.rule.algorithm.CaseBranch">
<Value algorithm="xxx1">
:
</Value>
<Arg>yyy1</Arg>
<Value algorithm="xxx2">
:
</Value>
<Arg>yyy2</Arg>
<Value algorithm="xxx3">
:
</Value>
<Arg>yyy3</Arg>
<Arg>yyy4</Arg>
</Value>
CaseBranch 算法可具有任意数量的情况。CaseBranch 算法中的每种情况均由一个计算结果为 TRUE 或 FALSE 的 Value 元素以及紧接在该 Value 元素后的自变量所组成。如果 Value 元素为 TRUE,则使用自变量,并且不对约束中的其余标记进行评估。如果第一种情况下的 Value 元素为 FALSE,则评估下一种情况。对每个事例的评估以事例出现在文件中的顺序继续,直到当前评估得出 TRUE 结果为止。使用与此情形关联的自变量。如果指定的任何情况都不为 TRUE,则使用最后一个提供给 CaseBranch 算法的自变量。
在上述常规语法中,可在 Arg 标记中使用的值为字符串。或者以 Value 标记替换 Arg 标记。使用嵌套的 Value 标记代替 Arg 标记使您可以执行自变量内的其他评估。