2013-03-23 72 views
0

我要验证多个对象,但单独使用ilog jrules(一次一个)。如何单独验证ilog变量?

我现在的想法是包裹的所有项目需要如下

<xs:element name="itemToValidate"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="employer" type="tns:employer" minOccurs="0" /> 
      <xs:element name="department" type="tns:department" minOccurs="0" /> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

然后在封装称为所谓的“初始化”规则“初始化”获得的每一项名为“itemToValidate”一个输入参数进行验证例如,设置成变量“雇主” 然后在“itemToValidate”每个项目(元素)将有一个包,如“雇主”相关的所有规则,“雇主”

问题我与这个面对是否需要在实际验证之前检查所有规则的无效性。

有没有办法避免这种情况?或者我的实现有任何问题吗?

感谢

回答

0

我不知道理解你的问题。 “在实际验证之前检查所有规则的无效性”。

为什么不在工作内存中设置对象并让JRules处理内存并使用局部规则变量而不是全局变量?

集“我的老板”给雇主
如果“我的雇主”的名字是鲍勃
然后打印“你好”

我创建第一个在工作记忆按下“ItemsToValidate”功能然后像我一样写规则。 通过这样做,如果没有雇主来验证,那么规则永远不会被激发,因为内存中没有雇主类型的项目。

-1

只需在我们的项目中,我们做了一个单一的语言表达了这种方法,使用:

the value {VALUE} is defined(返回一个布尔值)

希望这有助于。

0

您可以执行您感兴趣的类的BOM-to-XOM映射的测试器部分,以检查您关心的字段是否存在。

例如,测试者可以写为:

回报this.employer = NULL

这将意味着itemToValidate如雇主为null不会在评估你写的规则。这将消除(为雇主)的空检查。

查看“使用IRL的类映射测试器”下的知识中心主题