Adding the root object of an XML document
You can add just the root object of an XML document to the rule engine.
About this task
One of the ways you can load an XML document into the rule engine is to add just the root object of an XML document.
For instructions on how to create an XML object from an XML document, see Reading XML documents (classic rule engine) or Reading XML documents (decision engine).
Procedure
The way to add the root object of an XML document depends on the engine that is used:
For the classic rule engine, use the following code:
IlrXmlObject obj = ...
context.insert(obj);
For the decision engine, use the following code:
IlrXmlObject obj = ...
RuleflowEngine engine = definition.createEngine();
RuleflowEngineInput input = engine.createRuleflowEngineInput();
List<Object> wm = new ArrayList<Object>();
wm.add(obj);
input.setWorkingMemory(wm);By default, inserting
the root object does not carry out a recursive add.
If you want to process rules on sub-objects of the graph, you must
navigate the model using the in and from keywords
in your rules.
Example
Here is an extract from a rule named MatchSession1:
rule MatchSession1 {
when {
?c: Conference();
?s: Session(?t: title.toLowerCase()) in ?c.sessionList;
?p: Participant() in ?c.participantList;
collect String(?t.indexOf(toLowerCase()) != -1) in ?p.interestList
where (size() >= 2);
}
...