Hi,

I am getting the following exception, when I try to read the rules (
which are defined in the xml file ) from my java program

org.drools.compiler.DroolsParserException
        at org.drools.compiler.PackageBuilder.addPackageFromXml(Unknown
Source)
        at com.sample.DroolsMathExp.readRule(DroolsMathExp.java:75)
        at com.sample.DroolsMathExp.main(DroolsMathExp.java:21)
(null: 6, 56): cvc-elt.1: Cannot find the declaration of element
'rule-set'.


Here are the xml and java files
------------------------------------
'MathRulesXml.xml'

<rule-set name="math rules"
    xmlns="http://drools.org/rules";    
    xmlns:java="http://drools.org/semantics/java";
    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance";
    xs:schemaLocation="http://drools.org/rules rules.xsd
                                   http://drools.org/semantics/java
java.xsd">

        <rule name="math rule1"> 
                <parameter identifier="math">

                        <class>com.sample.MathObj</class>       
                </parameter> 
                <java:condition>
                        math.op1 > 0 and math.op2 > 0
                </java:condition> 
                <java:consequence>
                        math.setResult( math.getOp1() + math.getOp2() );
                        System.out.println( "op1 = "+ math.getOp1());
                        System.out.println( "op1 = "+ math.getOp2());
                        System.out.println( "op1 + op2 = "+
math.getResult());
                </java:consequence> 
        </rule> 
        
</rule-set> 
------------------------------------------------------------------------
--
"DroolsMathExp.java"

        Reader source = new InputStreamReader(
DroolsMathExp.class.getResourceAsStream( "MathRulesXml.xml" ) );        

        PackageBuilder builder = new PackageBuilder();          
        builder.addPackageFromXml(source);

        Package pkg = builder.getPackage();
        RuleBase ruleBase = RuleBaseFactory.newRuleBase();
        ruleBase.addPackage( pkg );

        WorkingMemory workingMemory = ruleBase.newWorkingMemory();
                        
        MathObj obj1 = new MathObj();                   
        obj1.setOp1(20);
        obj1.setOp2(10);
        workingMemory.assertObject(obj1);       
        workingMemory.fireAllRules();

------------------------------------------------------------------------
------------
Please correct me whether the xml file is correct or not, give me some
examples how to define rules in xml file.

Which is the best option to define rules in the following, and why
1) xml file
2) drl file
3) DRL with DSL file
4) XL sheet

Regards.
Chandrasekhar J

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to