public RuleDefinitionInterface getRuleDefinition(URL defnFile) throws Exception {
		RuleDefinitionInterface ruleDefi=(RuleDefinitionInterface)Factory.getFactory().getDataObject(Factory.ObjectTypes.RuleDefinition);
		Document doc=getDocument(defnFile.openStream());
		NodeList ruleSets=doc.getElementsByTagName("rulesets");
		if(ruleSets!=null && ruleSets.getLength()==1){
			Element ruleSetsElem=(Element)ruleSets.item(0);
			ruleSets=ruleSetsElem.getElementsByTagName("ruleset");
			if(ruleSets!=null){
				for(int i=0;i<ruleSets.getLength();i++){
					RuleSet rules=processRuleSet((Element)ruleSets.item(i));
					ruleDefi.addRuleSet(rules);
				}
			}

		}
		NodeList ruless=doc.getElementsByTagName("rules");
		if(ruless!=null){
			for(int i=0;i<ruless.getLength();i++){
				Rules rules=processRules((Element)ruless.item(i),ruleDefi);
				ruleDefi.addRules(rules);
			}
		}
		return ruleDefi;
	}