gpt4 book ai didi

java - 从 Drools 6.3 中的 xml 读取规则

转载 作者:太空宇宙 更新时间:2023-11-04 13:04:47 24 4
gpt4 key购买 nike

我正在尝试使用 drools 6.3 从 XML 读取规则。我试图找到一些例子,但我没有发现任何有值(value)的东西,只有一个将 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>

现在 drl 的加载如下:

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 对应项最新已被证明是一项相当大但没有返回的努力。

此外,由于显而易见的原因,向独立于供应商的 Rule-ML(作为 DRL 的子集)的转换并不是供应商热切追求的。

从您的问题中并不能明显看出您为什么对 XML 中的规则创作感兴趣。如果您添加一些问题的背景信息,可能会获得更多帮助。

关于java - 从 Drools 6.3 中的 xml 读取规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34593918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com