commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Simon Kitching <simon.kitch...@chello.at>
Subject Re: JAKARTA COMMONS DIGESTER RULES XML PROBLEM
Date Mon, 10 Dec 2007 11:53:16 GMT
Hi,

It would be appreciated if you could follow these conventions:
(1) Please do not use all-capitals for an email subject. IT IS ANNOYING AND HARD TO READ.
(2) When using the commons list, put the component name at the start of the subject line,
eg 
    [digester] ...  because this email list is shared by many components.
(3) Please try to choose a better subject for emails. About 50% of all emails about digester
could be described by this subject (the others can be described as "rules api problem"). This
subject is therefore no use to anyone searching the archives.

I think you've just got a simple typing error. There is no "paramnumber" attribute on call-method-rule.
But using paramcount=0 should work (as you do earlier in the file).

This also looks like a spelling mistake (well, in English anyway..):

  <set-next-rule methodename="addLang" />

Everything else looks ok to me..

Regards,

Simon

---- twathelet <TWathelet@europarl.eu.int> schrieb:
> 
> High I'm using DIGESTER to parse an xml doc but it seems that I don't
> understang somethig
> My xml file:
> 
> <!-- message JMS -->
> <message>
> 	<!-- enveloppe des informations propre  la FDR -->
> 	<fdr>
> 		<!-- Numro de FDR (ex: 650451) -->
> 		<number>690504</number>
> 		<docType>
> 			<!-- Mnmonique du type de document (ex: AM, RR, ...) -->
> 			<docTypeMnemo>AM</docTypeMnemo>
> 		</docType>
> 	</fdr>
> 	<version>
> 		<!-- Indique l'outil utilis pour produire le doc. -->
> 		<jobProductionTool>SEIAMD</jobProductionTool>
> 		<!-- Donne toutes les langues cibles de la traduction ou de la mise en
> forme -->
> 		<languagesCouples>
> 			<languageCouple>
> 				<targetLanguage>EN</targetLanguage>
> 			</languageCouple>
> 			<languageCouple>
> 				<targetLanguage>FR</targetLanguage>
> 			</languageCouple>
> 			<languageCouple>
> 				<targetLanguage>DE</targetLanguage>
> 			</languageCouple>
> 		</languagesCouples>
> 	</version>
> </message>
> 
> ***************************************************************
> 
> My xml rules:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <digester-rules>
> 	<pattern value="message">
> 		<object-create-rule
> 			classname="europarl.trad.sild.movearch.model.FdrFile" />
> 		<call-method-rule pattern="fdr/number" methodname="setFdrNumber"
> 			paramcount="0" />
> 		<call-method-rule pattern="fdr/docType/docTypeMnemo"
> 			methodname="setDocType" paramcount="0" />
> 		<call-method-rule pattern="version/jobProductionTool"
> 			methodname="setProductionTool" paramcount="0" />
> 		<pattern
> 			value="message/version/languagesCouples/languageCouple">
> 			<object-create-rule
> 				classname="europarl.trad.sild.movearch.model.Lang" />
> 			<call-method-rule pattern="targetLanguage"
> 				methodname="setCode" paramnumber="0" />
> 			<call-method-rule pattern="targetLanguage"
> 				methodname="setLabel" paramnumber="0" />
> 			<set-next-rule methodename="addLang" />
> 		</pattern>
> 	</pattern>
> </digester-rules>
> 
> ********************************************************************
> 
> My classes are:
> 
> /**
>  * 
>  */
> package europarl.trad.sild.movearch.model;
> 
> import java.util.Vector;
> 
> /**
>  * @author twathelet
>  */
> public class FdrFile {
> 
>     private String fdrNumber;
> 
>     private String docType;
> 
>     private String productionTool;
> 
>     private Vector coupleLang;
> 
>     /**
>      * @return the coupleLang
>      */
>     public Vector getCoupleLang() {
>         return coupleLang;
>     }
> 
>     /**
>      * @param coupleLang
>      *            the coupleLang to set
>      */
>     public void setCoupleLang(Vector coupleLang) {
>         this.coupleLang = coupleLang;
>     }
> 
>     /**
>      * @return the fdrNumber
>      */
>     public String getFdrNumber() {
>         return fdrNumber;
>     }
> 
>     /**
>      * @param fdrNumber
>      *            the fdrNumber to set
>      */
>     public void setFdrNumber(String fdrNumber) {
>         this.fdrNumber = fdrNumber;
>     }
> 
>     /**
>      * @return the docType
>      */
>     public String getDocType() {
>         return docType;
>     }
> 
>     /**
>      * @param docType
>      *            the docType to set
>      */
>     public void setDocType(String docType) {
>         this.docType = docType;
>     }
> 
>     /**
>      * @return the productionTool
>      */
>     public String getProductionTool() {
>         return productionTool;
>     }
> 
>     /**
>      * @param productionTool
>      *            the productionTool to set
>      */
>     public void setProductionTool(String productionTool) {
>         this.productionTool = productionTool;
>     }
> 
>     public void addLang(Lang lang) {
>         this.coupleLang.addElement(lang);
>     }
> 
>     /**
>      * 
>      */
>     public FdrFile() {
>         this.coupleLang = new Vector();
>     }
> 
> }
> 
> ****************************************************
> 
> /**
>  * 
>  */
> package europarl.trad.sild.movearch.model;
> 
> /**
>  * @author twathelet
>  */
> public class Lang {
>     private String code;
> 
>     private String label;
> 
>     /**
>      * @return the code
>      */
>     public String getCode() {
>         return code;
>     }
> 
>     /**
>      * @param code
>      *            the code to set
>      */
>     public void setCode(String code) {
>         this.code = code;
>     }
> 
>     /**
>      * @return the label
>      */
>     public String getLabel() {
>         return label;
>     }
> 
>     /**
>      * @param label
>      *            the label to set
>      */
>     public void setLabel(String label) {
>         this.label = label;
>     }
> 
>     /**
>      * 
>      */
>     public Lang() {
>         // TODO Auto-generated constructor stub
>     }
> 
>     /**
>      * @param code
>      * @param label
>      */
>     public Lang(String code, String label) {
>         super();
>         this.code = code;
>         this.label = label;
>     }
> 
>     /**
>      * @param code
>      */
>     public Lang(String code) {
>         super();
>         this.code = code;
>     }
> 
>     
> }
> 
> 
> **********************************************************
> 
> /**
>  * 
>  */
> package europarl.trad.sild.movearch;
> 
> import java.io.IOException;
> import java.io.InputStream;
> 
> import org.apache.commons.digester.Digester;
> import org.apache.commons.digester.xmlrules.DigesterLoader;
> import org.xml.sax.InputSource;
> import org.xml.sax.SAXException;
> 
> import europarl.trad.sild.movearch.model.FdrFile;
> 
> /**
>  * @author twathelet
>  */
> public class Executable {
> 
>     /**
>      * @param args
>      */
>     public static void main(String[] args) {
>         InputStream message =
> ClassLoader.getSystemClassLoader().getResourceAsStream(args[0]);
>         InputSource configFile = new
> InputSource(ClassLoader.getSystemClassLoader().getResourceAsStream(args[1]));
>         Digester d = DigesterLoader.createDigester(configFile);
>         FdrFile fdrFile = new FdrFile();
>         try {
>             fdrFile = (FdrFile) d.parse(message);
>         } catch (IOException e) {
>             e.printStackTrace();
>         } catch (SAXException e) {
>             e.printStackTrace();
>         }
>         System.out.println(fdrFile.getFdrNumber());
>         System.out.println(fdrFile.getDocType());
>         System.out.println(fdrFile.getProductionTool());
>         System.out.println(fdrFile.getCoupleLang().size());
>     }
> 
> }
> 
> ********************************************************
> 
> And when I execute the code I recive that
> 690504
> AM
> SEIAMD
> 0
> 
> my question his why the number of language=0???
> Thanks
> 
> 
> 
> -- 
> View this message in context: http://www.nabble.com/Re%3A-JAKARTA-COMMONS-DIGESTER-RULES-XML-PROBLEM-tp13500277p14251258.html
> Sent from the Commons - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
> For additional commands, e-mail: user-help@commons.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@commons.apache.org
For additional commands, e-mail: user-help@commons.apache.org


Mime
View raw message