Java 在Drools 6.3中从xml读取规则

Java 在Drools 6.3中从xml读取规则,java,xml,drools,Java,Xml,Drools,我正在尝试使用drools 6.3从XML中读取规则。我试图找到一些例子,但我没有发现任何有价值的东西,只有一个将xml转换为drl的例子,它不起作用,因为我使用的是较新版本的drools 我将eclipse生成的drl示例转换为xml,并将其替换为xml。看起来是这样的: <?xml version="1.0" encoding="UTF-8"?> <package name="com.sample" xmlns="http://drools.org/drools-5.2"

我正在尝试使用drools 6.3从XML中读取规则。我试图找到一些例子,但我没有发现任何有价值的东西,只有一个将xml转换为drl的例子,它不起作用,因为我使用的是较新版本的drools

我将eclipse生成的drl示例转换为xml,并将其替换为xml。看起来是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<package name="com.sample" xmlns="http://drools.org/drools-5.2" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="http://drools.org/drools-5.2 drools.org/drools-5.2.xsd">
    <import name="com.sample.DroolsTest.Message"/>
    <rule name="Hello World">
        <lhs>
            <pattern identifier="m" object-type="Message">
                <expr>
                    status == Message.HELLO
                </expr>
                <expr>
                    myMessage : message
                </expr>
            </pattern>
        </lhs>
        <rhs>
            System.out.println( myMessage );
            m.setMessage( &quot;Goodbye cruel world&quot; );
            m.setStatus( Message.GOODBYE );
            update( m );
        </rhs>
    </rule>
    <rule name="GoodBye">
        <lhs>
            <pattern object-type="Message">
                <expr>
                    status == Message.GOODBYE
                </expr>
                <expr>
                    myMessage : message
                </expr>
            </pattern>
        </lhs>
        <rhs>
            System.out.println( myMessage );
        </rhs>
    </rule>
</package>
KieServices ks = KieServices.Factory.get();
KieContainer kContainer = ks.getKieClasspathContainer();
KieSession kSession = kContainer.newKieSession("ksession-rules");
但这不会加载xml文件


有没有关于如何加载xml的示例?我必须将其转换为drl吗?

用于drl的XML版本的开发已经在几个版本之前正式终止,大约在IIRC的5.2版本。DRL已经发展成为一种非常复杂的语言,保持其XML对应项的最新已成为一项相当大但没有回报的工作

此外,由于明显的原因,供应商并不热衷于转换为独立于供应商的规则ML(对于DRL的子集)


您的问题并不清楚您为什么对XML中的规则编写感兴趣。如果您添加一些问题的背景信息,可能会得到更多帮助。

用于DRL的XML版本的开发已经在几个版本之前正式终止,大约在IIRC的5.2版本。DRL已经发展成为一种非常复杂的语言,保持其XML对应项的最新已成为一项相当大但没有回报的工作

此外,由于明显的原因,供应商并不热衷于转换为独立于供应商的规则ML(对于DRL的子集)


您的问题并不清楚您为什么对XML中的规则编写感兴趣。如果您添加问题的背景信息,可能会得到更多帮助。

感谢您的见解。我希望根据自定义GUI中的用户输入生成规则,然后将规则发送到服务器,在服务器上根据这些规则评估数据。我认为xml比drl更容易生成。现在我正试图使用“Fluent”API(不确定这个名称)来实现这一点,所以我要在java中创建规则,这将为我创建drl。到目前为止,它仍然有效,但是我还没有找到很多使用它的例子,所以我担心将来会遇到一些障碍。这是正确的选择。“流畅”API虽然不是“稳定”API的一部分,但对于您的预期目的来说应该足够全面和准确。感谢您的洞察力。我希望根据自定义GUI中的用户输入生成规则,然后将规则发送到服务器,在服务器上根据这些规则评估数据。我认为xml比drl更容易生成。现在我正试图使用“Fluent”API(不确定这个名称)来实现这一点,所以我要在java中创建规则,这将为我创建drl。到目前为止,它仍然有效,但是我还没有找到很多使用它的例子,所以我担心将来会遇到一些障碍。这是正确的选择。“流畅”API虽然不是“稳定”API的一部分,但对于您的预期目的来说,它应该足够全面和准确。