ブランチアルゴリズム
初期状態のブランチアルゴリズムは以下のとおりです。
アルゴリズム
|
説明
|
wt.rule.algorithm.BooleanBranch
|
3 つのオブジェクトのリストを取得します。 Value タグに追加する最初のオブジェクトは、ブール値を返すオブジェクトです。このブール値は、BooleanBranch アルゴリズムに対して、それぞれ 引数に含まれるほかの 2 つのオブジェクトのどちらを返すかを指示します。
|
wt.rule.algorithm.CaseBranch
|
BooleanBranch と似ていますが、ケースが TRUE の場合にブランチされます。ケースごとに 1 つの 引数が存在し、さらにどのケースも TRUE でない場合のデフォルトを指定するもう 1 つの引数が存在します。
|
BooleanBranch アルゴリズムの一般的な構文は以下のとおりです。
<Value algorithm="wt.rule.algorithm.BooleanBranch">
<Value algorithm="xxx">
:
</Value>
<Arg>yyy</Arg>
<Arg>zzz</Arg>
</Value>
ネストされた
Value タグでは、ブール値を返す有効なアルゴリズムを指定できます (上記の構文の xxx)。xxx アルゴリズムの結果に応じて、
引数内のいずれかのオブジェクト (
Arg タグで指定されている文字列 yyy または zzz) が使用されます。
3 つのケースがある 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 タグで使用できる値は文字列です。必要であれば、Arg タグを Value タグに置き換えることもできます。Arg タグの代わりに、ネストした Value タグを使用すると、引数内で追加の評価を実行できます。