1
我想從XML閱讀規則使用drools 6.3。我試圖找到一些例子,但我沒有發現任何有價值的東西,只是一個將xml轉換爲drl的例子,這不起作用,因爲我使用的是更新版本的drools ...閱讀規則從XML在Drools 6.3
我轉換了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("Goodbye cruel world");
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嗎?
感謝您的見解。我想根據自定義GUI中的用戶輸入生成規則,然後將規則發送到將根據這些規則評估數據的服務器。我認爲xml比drl更容易生成。現在我正在嘗試使用「Fluent」API(不確定這個名字),所以在java中創建規則,這將爲我創建drl。到目前爲止,它的工作,但我沒有找到它的用法的很多例子,所以我在未來恐怕有一些障礙。 – Wlad
這是正確的選擇。 「流利」API--儘管不是「穩定」API的一部分 - 應該足夠全面和準確地達到您的預期目的。 – laune