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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to