2010-09-01 155 views
2

我们目前正在开发一个.NET项目,它涉及根据一组用户定义的规则分析XML文档。这里有一个例子:基本规则引擎体系结构

<Person> 
    <Name>Bob</Name> 
    <Cars> 
     <Car Type="SUV" Color="Black"/> 
     <Car Type="Sports" Color="Red"/> 
    <Cars/> 
</Person> 

EG规则:如果 人的名字=“鲍勃”,有2辆车,然后... 如果人有至少得有一个SUV和至少一个跑车,然后...

我们将构建一个“规则构建器”向导,引导用户完成创建规则的过程。除此之外,其他复杂因素之一是XML文档的模式将取决于客户需求,所以我们需要一种快速适应新模式的方法。任何人都可以提供一些洞察什么底层技术可以最好地完成这个?以下是我们认为有两件事情:

  1. 动态的LINQ to XML
  2. 碎纸XML到SQL表和生成动态SQL语句
  3. 创建某种类型的自定义DSL的(铁的Python,嘘,等)

最大的担忧是能够实时执行规则,速度和编写规则的简单/灵活性。

想法?

+0

为什么不在XSD模式中定义这些规则? – 2010-09-01 23:59:10

回答

2

不要建立这个。使用前向链式规则引擎,如BRE that comes with BizTalk

+0

我代表@Matt发表评论。 - 规则需要使用BRE进行部署,我认为没有办法为规则构建构建自定义UI。我们的最终用户需要一个简单而有限的用于构建规则的UI,然后需要一些更复杂的东西,开发人员可以在复杂情况下编写规则。它看起来像其他开源规则发动,例如drools.net和nxbre或多或少被抛弃。像ilog和nrule这样的商业产品太贵了。 – Timwi 2010-09-02 01:51:00