You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by twathelet <TW...@europarl.eu.int> on 2007/12/10 12:29:16 UTC
JAKARTA COMMONS DIGESTER RULES XML PROBLEM
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