[发明专利]基于XML的规则定义和执行检查方法无效
申请号: | 201210391282.3 | 申请日: | 2012-10-16 |
公开(公告)号: | CN102929973A | 公开(公告)日: | 2013-02-13 |
发明(设计)人: | 周小伟 | 申请(专利权)人: | 南京通达海信息技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 汪旭东 |
地址: | 210019 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 xml 规则 定义 执行 检查 方法 | ||
技术领域
本发明涉及一种基于XML格式规则的定义和通过规则计算来判定数据正确性的方法。
背景技术
在计算机应用领域,不同的行业领域存在不同的业务规则,对数据也就有着相应的要求。业务规则可能会不定期地发生变化,如果将规则固化到程序中,编程工作量很大,并且需要根据规则的变化不断地修改程序。
发明内容
所要解决的技术问题:针对行业领域存在的业务规则问题本发明提供为了一种规则定义和自动计算方法,从而实现数据自动校验的基于XML的规则定义和执行检查方法。
技术方案:为了解决以上问题本发明提供了一种基于XML的规则定义和执行检查方法,其特征在于:包括以下步骤:
第1步:建立规则的数据表:首先进行如下定义,
①元数据的定义;②算术运算符的定义; ③比较运算符的定义;④逻辑运算符的定义 ⑤范围/多值/除外的定义;⑥布尔表达式的定义;⑦规则定义
第2步:XML业务规则:将业务规则按照XML的格式定义到第1步所述的数据表中;
业务规则是用户提供的对业务数据正确性的判定基础;
本步骤将用户提供的所有业务规则翻译后保存在规则表里;
第3步:通过逐条计算规则进行校验;
第4步:效验结果:根据返回结果为假的规则编号,汇总错误信息,返回调用规则的应用程序。
所述的①元数据的定义:元数据是指的业务中某个事物的属性,元数据对应到一张表的一个字段,元数据的定义保存在数据表里;
②算术运算符的定义:算术运算符包括了“+”、“-”、“×”、“÷”;
③比较运算符的定义:比较符包括:“>”、“<”、“=”、“>=”、“<=”,“!=”;
④逻辑运算符的定义:逻辑运算符包括:“and”、“or”、“not”;
⑤范围/多值/除外的定义:{1..10,13;7,9} 范围之间使用 “..”表示,多值使用“,”分隔,除外使用“;”分隔,并且写在最后,{}表示一个集合;
⑥布尔表达式的定义:布尔表达式就是根据上述5类定义组合而成的最终结果是布尔值的表达式;
⑦规则定义:规则表示为如下格式:
<条件>布尔表达式0</条件>
<真>布尔表达式1</真>
<假>布尔表达式2</假>
计算时,先计算布尔表达式0的值,如果为真,则计算布尔表达式1的值返回;否则计算布尔表达式2的值返回;
规则的定义能嵌套多层。
所述的业务规则结构如下: 如果 XXXXX条件,则 实体属性 在/不在 数据范围。
所述第3步包括以下步骤:
第3-1步:解析XML格式规则,得到条件表达式、布尔表达式真和布尔表达式假;
所述第3-1步的XML格式为:
<条件>布尔表达式</条件>
<真>布尔表达式真</真>
<假>布尔表达式假</假>
第3-2步:计算条件表达式的值,得到真或者假;
第3-3步:如果条件表达式为真,则返回计算布尔表达式真,返回计算结果值;否则计算布尔表达式假,返回计算结果值;
所述第3-1步中布尔表达式真和布尔表达式假是嵌套的条件表达式:
<条件>布尔表达式</条件>
<真>
<条件>布尔表达式</条件>
<真>布尔表达式真</真>
<假>布尔表达式假</假>
</真>
<假>布尔表达式假</假>
所述第3步的计算流程为:①解析XML规则,得到条件表达式,布尔表达式真和布尔表达式假;对于条件表达式:②元数据值替换;③算术运算符的处理;④比较运算符的处理;⑤逻辑运算符的处理;⑥得到条件表达式的结果,根据此结果的真假,计算对应布尔表达式真或布尔表达式假,计算过程同②~⑤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京通达海信息技术有限公司,未经南京通达海信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210391282.3/2.html,转载请声明来源钻瓜专利网。