专利名称:基于xml的规则定义和执行检查方法
技术领域:
本发明涉及一种基于XML格式规则的定义和通过规则计算来判定数据正确性的方法。
背景技术:
在计算机应用领域,不同的行业领域存在不同的业务规则,对数据也就有着相应的要求。业务规则可能会不定期地发生变化,如果将规则固化到程序中,编程工作量很大,并且需要根据规则的变化不断地修改程序
发明内容
所要解决的技术问题针对行业领域存在的业务规则问题本发明提供为了一种规则定义和自动计算方法,从而实现数据自动校验的基于XML的规则定义和执行检查方法。技术方案为了解决以上问题本发明提供了一种基于XML的规则定义和执行检查方法,其特征在于包括以下步骤
第I步建立规则的数据表首先进行如下定义,
①元数据的定义;②算术运算符的定义;③比较运算符的定义;④逻辑运算符的定义⑤范围/多值/除外的定义;⑥布尔表达式的定义;⑦规则定义
第2步XML业务规则将业务规则按照XML的格式定义到第I步所述的数据表中; 业务规则是用户提供的对业务数据正确性的判定基础;
本步骤将用户提供的所有业务规则翻译后保存在规则表里;
第3步通过逐条计算规则进行校验;
第4步效验结果根据返回结果为假的规则编号,汇总错误信息,返回调用规则的应用程序。所述的①元数据的定义元数据是指的业务中某个事物的属性,元数据对应到一张表的一个字段,元数据的定义保存在数据表里;
②算术运算符的定义算术运算符包括了“ + ”、“一”、“ X ” ;
③比较运算符的定义比较符包括“!=,,;
④逻辑运算符的定义逻辑运算符包括“and”、“or”、“not”;
⑤范围/多值/除外的定义U.· 10,13; 7,9} 范围之间使用.”表示,多值使用“,”分隔,除外使用“;”分隔,并且写在最后,H表示一个集合;
⑥布尔表达式的定义布尔表达式就是根据上述5类定义组合而成的最终结果是布尔值的表达式;
⑦规则定义规则表示为如下格式
<条件 > 布尔表达式0〈/条件>
<真 > 布尔表达式1〈/真>
<假 > 布尔表达式2〈/假>计算时,先计算布尔表达式O的值,如果为真,则计算布尔表达式I的值返回;否则计算布尔表达式2的值返回;
规则的定义能嵌套多层。所述的业务规则结构如下如果XXXXX条件,则实体属性在/不在数据范围。所述第3步包括以下步骤
第3-1步解析XML格式规则,得到条件表达式、布尔表达式真和布尔表达式假; 所述第3-1步的XML格式为
<条件 > 布尔表达式〈/条件> <真 > 布尔表达式真〈/真>
<假 > 布尔表达式假〈/假>
第3-2步计算条件表达式的值,得到真或者假;
第3-3步如果条件表达式为真,则返回计算布尔表达式真,返回计算结果值;否则计算布尔表达式假,返回计算结果值;
所述第3-1步中布尔表达式真和布尔表达式假是嵌套的条件表达式
<条件 > 布尔表达式〈/条件>
〈真〉
<条件 > 布尔表达式〈/条件>
<真 > 布尔表达式真〈/真>
<假 > 布尔表达式假〈/假>
〈/真〉
<假 > 布尔表达式假〈/假>
所述第3步的计算流程为①解析XML规则,得到条件表达式,布尔表达式真和布尔表达式假;对于条件表达式②元数据值替换;③算术运算符的处理;④比较运算符的处理;
⑤逻辑运算符的处理;⑥得到条件表达式的结果,根据此结果的真假,计算对应布尔表达式真或布尔表达式假,计算过程同② ⑤。有益效果本发明可以很好地适应这种变化,通过调整规则库的规则来适应用户变化的规则。业务数据可以先定义元数据,规则中可以利用到这些元数据,而不是直接指定数据库内表的字段,这样可以增强一定的灵活性。
图I为本发明方法的原理框 图2为本发明计算规则的流程图。
具体实施例方式下面结合附图对本发明作进一步的描述。本发明的基本思想是,利用XML格式定义规则,根据对规则内表达式的计算来获取规则的校验结果,汇总所有结果为假的规则的提示信息,供各个业务系统调用。如图I所示,本发明的基于XML的规则定义和执行检查方法,包括以下步骤
第I步建立规则的数据表首先进行如下定义,①元数据的定义。元数据是指的业务中某个事物的属性,例如人的姓名、年龄等等,通常对应到一张表的一个字段。元数据的定义保存在数据表里。②算术运算符的定义。算术运算符包括了 “ + ”、“ - ”、“ X ”、“ + ”。③比较运算符的定义。比较符包括“!=”。④逻辑运算符的定义。逻辑运算符包括“and”、“or”、“not”。⑤范围/多值/除外的定义。{I.. 10,13;7,9}范围之间使用”表示,多值使用“,”分隔,除外使用“;”分隔,并且写在最后。{}表示一个集合。⑥布尔表达式的定义。布尔表达式就是根据上述5类定义组合而成的最终结果是布尔值的表达式。例如[EAJ.SAAY] = {3102, 3103, 3148} and [EAJ. XTAJLX] = 51·[190.LX] = 5 and [184. YYZL] = 3
其中EAJ. SAAY是EAJ表的SAAY字段值;190. LX表示实体编号190的LX属性值。⑦规则定义。规则可以表示为如下格式
<条件 > 布尔表达式0〈/条件>
<真 > 布尔表达式1〈/真>
<假 > 布尔表达式2〈/假>
计算时,先计算布尔表达式O的值,如果为真,则计算布尔表达式I的值返回;否则计算布尔表达式2的值返回。规则的定义可以嵌套多层。第2步XML业务规则将业务规则按照XML的格式定义到第I步所述的数据表中;
业务规则是用户提供的对业务数据正确性的判定基础。业务规则通常是如下结构
如果XXXXX条件,则实体属性在/不在数据范围。例如行政非诉执行(立案案由为31 39)的结案方式不能选I (不予受理)、2 (不予执行)、3 (驳回申请)。翻译成XML 的规则为〈条件〉[EAJ. XTA几X] = 34〈/条件 X 真 > [181. JAFS] Φ
{1··3}〈/真〉
本步骤将用户提供的所有业务规则翻译后保存在规则表里。第3步通过逐条计算规则进行校验;包括以下步骤
第3-1步解析XML格式规则,得到条件表达式、布尔表达式真和布尔表达式假; 所述第3-1步的XML格式为
<条件 > 布尔表达式〈/条件>
<真 > 布尔表达式真〈/真>
<假 > 布尔表达式假〈/假>
其中,布尔表达式真和布尔表达式假可以是嵌套的条件表达式,例如
<条件 > 布尔表达式〈/条件>
〈真〉
<条件 > 布尔表达式〈/条件><真 > 布尔表达式真〈/真>
<假 > 布尔表达式假〈/假>
〈/真〉
<假 > 布尔表达式假〈/假>
第3-2步计算条件表达式的值,得到真或者假;
第3-3步如果条件表达式为真,则返回计算布尔表达式真,返回计算结果值;否则计 算布尔表达式假,返回计算结果值;
所述第3步的计算流程为如图2单条规则计算流程图所示,①解析XML规则,得到条件表达式,布尔表达式真和布尔表达式假;对于条件表达式②元数据值替换;③算术运算符的处理;④比较运算符的处理;⑤逻辑运算符的处理;⑥得到条件表达式的结果,根据此结果的真假,计算对应布尔表达式真或布尔表达式假,计算过程同② ⑤。第4步效验结果根据返回结果为假的规则编号,汇总错误信息,返回调用规则的应用程序。以上所述仅为本发明的优选实施例而已,并不限制于本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的权利要求范围之内。
权利要求
1.基于XML的规则定义和执行检查方法,其特征在于包括以下步骤第I步建立规则的数据表首先进行如下定义,①元数据的定义;②算术运算符的定义; ③比较运算符的定义逻辑运算符的定义⑤范围/多值/除外的定义;⑥布尔表达式的定义;⑦规则定义第2步XML业务规则将业务规则按照XML的格式定义到第I步所述的数据表中; 业务规则是用户提供的对业务数据正确性的判定基础;本步骤将用户提供的所有业务规则翻译后保存在规则表里;第3步通过逐条计算规则进行校验;第4步效验结果根据返回结果为假的规则编号,汇总错误信息,返回调用规则的应用程序。
2.根据权利要求I所述的基于XML的规则定义和执行检查方法,其特征在于所述的①元数据的定义元数据是指的业务中某个事物的属性,元数据对应到一张表的一个字段,元数据的定义保存在数据表里;②算术运算符的定义算术运算符包括了“ + ”、“一”、“ X ” ;③比较运算符的定义比较符包括“!=,,;④逻辑运算符的定义逻辑运算符包括“and”、“or”、“not”;⑤范围/多值/除外的定义U.· 10,13; 7,9} 范围之间使用“··”表示,多值使用 “,”分隔,除外使用“;”分隔,并且写在最后,H表示一个集合;⑥布尔表达式的定义布尔表达式就是根据上述5类定义组合而成的最终结果是布尔值的表达式;⑦规则定义规则表示为如下格式<条件 > 布尔表达式0〈/条件><真 > 布尔表达式1〈/真><假 > 布尔表达式2〈/假>计算时,先计算布尔表达式O的值,如果为真,则计算布尔表达式I的值返回;否则计算布尔表达式2的值返回;规则的定义能嵌套多层。
3.根据权利要求2所述的基于XML的规则定义和执行检查方法,其特征在于所述的业务规则结构如下如果XXXXX条件,则实体属性在/不在数据范围。
4.根据权利要求I所述的基于XML的规则定义和执行检查方法,其特征在于所述第3 步包括以下步骤第3-1步格式规则,得到条件表达式、布尔表达式真和布尔表达式假; 所述第3-1步的XML格式为<条件 > 布尔表达式〈/条件><真 > 布尔表达式真〈/真><假 > 布尔表达式假〈/假>第3-2步计算条件表达式的值,得到真或者假;第3-3步如果条件表达式为真,则返回计算布尔表达式真,返回计算结果值;否则计算布尔表达式假,返回计算结果值。
5.根据权利要求4所述的基于XML的规则定义和执行检查方法,其特征在于所述第 3-1步中布尔表达式真和布尔表达式假是嵌套的条件表达式<条件 > 布尔表达式〈/条件><条件 > 布尔表达式〈/条件><真 > 布尔表达式真〈/真><假 > 布尔表达式假〈/假>〈/真〉<假 > 布尔表达式假〈/假>。
6.根据权利要求I或4所述的基于XML的规则定义和执行检查方法,其特征在于所述第3步的计算流程为①解析XML规则,得到条件表达式,布尔表达式真和布尔表达式假; 对于条件表达式②元数据值替换;③算术运算符的处理;④比较运算符的处理逻辑运算符的处理;⑥得到条件表达式的结果,根据此结果的真假,计算对应布尔表达式真或布尔表达式假,计算过程同② ⑤。
全文摘要
本发明涉及一种基于XML的规则定义和执行检查方法包括第1步建立规则的数据表首先进行如下定义,元数据的定义元数据是指的业务中某个事物的属性,元数据对应到一张表的一个字段,元数据的定义保存在数据表里;算术运算符的定义;比较运算符的定义;逻辑运算符的定义范围/多值/除外的定义;规则定义第2步XML业务规则将业务规则按照XML的格式定义到第1步所述的数据表中;业务规则是用户提供的对业务数据正确性的判定基础;本步骤将用户提供的所有业务规则翻译后保存在规则表里;第3步通过逐条计算规则进行校验;第4步效验结果根据返回结果为假的规则编号,汇总错误信息,返回调用规则的应用程序。
文档编号G06F17/30GK102929973SQ20121039128
公开日2013年2月13日 申请日期2012年10月16日 优先权日2012年10月16日
发明者周小伟 申请人:南京通达海信息技术有限公司