1

NxBRE ルール エンジンを使用しており、リストに値があるかどうかを確認できる必要があります。ここに私が試すものがあります:

リスト要素の定義:

<String  id="Element1" value="Value1"/>
<String  id="Element2" value="Value2"/>
<String  id="Element3" value="Value3"/>
<String  id="Element4" value="Value4"/>

状態の確認:

<In valueId="ValueId" idList="Element1, Element2, Element3, Element4">
  <ObjectLookup id="ValueId" objectId="MyObject" member="GetValue">
    <Argument valueId="MyArgument"/>
  </ObjectLookup>
</In>

ObjectLookup正常に動作しますが、セット全体の実行結果からわかるように、条件が真と評価されることはありません。

Inつまり、 ... valueId...idListを単なるEquals... leftId...に変更した場合rightId、チェックする ID を 1 つだけ残して (Element4たとえばValue4、 、これObjectLookupはここで正しく機能することを証明しています。

質問は次のとおりです。

  1. 私が間違っていること、つまり、同じテストで値が等しいことを知っているのに、なぜValue4trueInと評価されないのですか?

  2. もっと簡単な方法でできますか。つまり、要素を1つずつ指定してからリストを構築する代わりに、定数リストを指定して使用しますか?

  3. NxBRE に関する適切なドキュメントはありますか? そのような基本的な質問をする必要はありませんか?

4

1 に答える 1

0
  1. XBRE ルールを BRE ルールに変換する XSL-T を見ると、スペースを削除してコンマだけを使用して ID を区切る必要があると思います。/Rulefiles/text.xbre の例は、カンマ区切りの ID で動作します。

  2. 次のような正規表現を使用できます: (Element1|Element2|Element3|Element4)

  3. 提供されているユーザー ガイド (PDF) とオンライン ナレッジ ベース以外には何もありません。/Rulefiles/text.xbre を勉強すると、いくらか啓発されるはずです。

于 2012-04-04T11:42:50.270 に答える