[rules-users] Cannot find the declaration of element 'rule-set'.
Mark Proctor
mproctor at codehaus.org
Mon Jan 29 12:36:09 EST 2007
You are using Drools 2.x XML with JBoss Rules 3.0 - the two are very
different, please see the wiki for more details.
Mark
shilpa.raghavendra at wipro.com wrote:
>
>
>
> Main Class as follows
>
>
>
> package com.sample;
>
>
>
> import java.io.InputStreamReader;
>
> import java.io.Reader;
>
>
>
> import org.drools.RuleBase;
>
> import org.drools.RuleBaseFactory;
>
> import org.drools.WorkingMemory;
>
> import org.drools.compiler.PackageBuilder;
>
> import org.drools.rule.Package;
>
>
>
> /**
>
> * This is a sample file to launch a rule package from a rule source file.
>
> */
>
> public class DroolsTest1 {
>
>
>
> public static final void main(String[] args) {
>
> try {
>
>
>
> //load up the rulebase
>
> RuleBase ruleBase = readRule();
>
> WorkingMemory workingMemory = ruleBase.newWorkingMemory();
>
>
>
> //go !
>
> Message message = new Message();
>
> message.setOp1(2);
>
> message.setOp2(2);
>
> workingMemory.assertObject( message );
>
> workingMemory.fireAllRules();
>
>
>
>
>
> } catch (Throwable t) {
>
> t.printStackTrace();
>
> }
>
> }
>
>
>
> /**
>
> * Please note that this is the "low level" rule assembly API.
>
> */
>
> private static RuleBase readRule() throws Exception {
>
> //read in the source
>
> Reader source = new InputStreamReader(
> DroolsTest1.class.getResourceAsStream( "/Sample1.drl" ) );
>
>
>
> //optionally read in the DSL (if you are using it).
>
> //Reader dsl = new InputStreamReader(
> DroolsTest.class.getResourceAsStream( "/mylang.dsl" ) );
>
>
>
> //Use package builder to build up a rule package.
>
> //An alternative lower level class called "DrlParser" can
> also be used...
>
>
>
> PackageBuilder builder = new PackageBuilder();
>
>
>
> //this wil parse and compile in one step
>
> //NOTE: There are 2 methods here, the one argument one is
> for normal DRL.
>
> //builder.addPackageFromDrl( source );
>
> builder.addPackageFromXml( source );
>
>
>
> //Use the following instead of above if you are using a DSL:
>
> //builder.addPackageFromDrl( source, dsl );
>
>
>
> //get the compiled package (which is serializable)
>
> Package pkg = builder.getPackage();
>
>
>
> //add the package to a rulebase (deploy the rule package).
>
> RuleBase ruleBase = RuleBaseFactory.newRuleBase();
>
> ruleBase.addPackage( pkg );
>
> return ruleBase;
>
> }
>
>
>
> public static class Message {
>
> int op1 ;
>
> int op2;
>
> /**
>
> * @return the op1
>
> */
>
> public int getOp1() {
>
> return op1;
>
> }
>
> /**
>
> * @param op1 the op1 to set
>
> */
>
> public void setOp1(int op1) {
>
> this.op1 = op1;
>
> }
>
> /**
>
> * @return the op2
>
> */
>
> public int getOp2() {
>
> return op2;
>
> }
>
> /**
>
> * @param op2 the op2 to set
>
> */
>
> public void setOp2(int op2) {
>
> this.op2 = op2;
>
> }
>
>
>
> }
>
>
>
> }
>
>
>
> It's in src/ java /com/ com.sample package
>
>
>
> The sample1.drl file in src/ rules/Sample.drl is as follows
>
>
>
> <?xml version="1.0"?>
>
> <rule-set name="BusinessRulesSample"
>
> 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">
>
>
>
> <!-- Code for Drools Article (c)www.firstpartners.net 2005 -->
>
>
>
> <!-- Import the Java Objects that we refer to in our rules -->
>
> <java:import>java.lang.Object</java:import>
>
> <java:import>java.lang.String</java:import>
>
> <java:import>com.sample.DroolsTest1.*</java:import>
>
>
>
>
>
> <java:functions>
>
> public void printValues(int i, int j)
>
> {
>
> System.out.println("hi"+i+j);
>
> }
>
> </java:functions>
>
>
>
>
>
> <!-- Check for XYZ Corp-->
>
> <rule name="XYZCorp" >
>
>
>
> <!-- Parameters we can pass into the business rule -->
>
> <parameter identifier="message">
>
> <class>com.sample.DroolsTest1.Message</class>
>
> </parameter>
>
>
>
> <!-- Conditions or 'Left Hand Side' (LHS) that must be met for
> business rule to fire -->
>
>
>
>
>
> <java:condition>message.getOp1()==2</java:condition>
>
> !-- What happens when the business rule is activated -->
>
> <java:consequence>
>
> printValues(message.getOp1(),message.getOp2());
>
> </java:consequence>
>
> </rule>
>
>
>
> </rule-set>
>
>
>
>
>
> When I run the program I will get the following error. If I change
> addPackageFromXml to addPackageFromDrl the error is same . So please
> help me in this
>
>
>
>
>
> (null: 7, 74): cvc-elt.1: Cannot find the declaration of element
> 'rule-set'.
>
> _org.drools.compiler.DroolsParserException_
>
> at org.drools.compiler.PackageBuilder.addPackageFromXml(Unknown
> Source)
>
> at com.sample.DroolsTest1.readRule(_DroolsTest1.java:55_)
>
> at com.sample.DroolsTest1.main(_DroolsTest1.java:21_)
>
>
>
>
>
> Thanks & Regards
>
> Shilpa
>
>
> The information contained in this electronic message and any
> attachments to this message are intended for the exclusive use of the
> addressee(s) and may contain proprietary, confidential or privileged
> information. If you are not the intended recipient, you should not
> disseminate, distribute or copy this e-mail. Please notify the sender
> immediately and destroy all copies of this message and any attachments.
>
> WARNING: Computer viruses can be transmitted via email. The recipient
> should check this email and any attachments for the presence of
> viruses. The company accepts no liability for any damage caused by any
> virus transmitted by this email.
>
> www.wipro.com
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070129/a55b3f21/attachment.html
More information about the rules-users
mailing list