Bonjour,
J'esseye de lire un fichier xml avec JAXB, en ci-joint la structure du fichier xml :
voici le mapping java correspondant pour les classes Documents, Document et Mindex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <?xml version="1.0" encoding="UTF-8"?> <Documents> <Document> <Mindex> <CodeProfil>CP1</CodeProfil> <CodeIdentification>CI1</CodeIdentification> <Temps>5h</Temps> <CodeRefDGE>CodeRef1</CodeRefDGE> </Mindex> </Document> <Document> <Mindex> <CodeProfil>CP2</CodeProfil> <CodeIdentification>CI2</CodeIdentification> <Temps>21h</Temps> <CodeRefDGE>CodeRef2</CodeRefDGE> </Mindex> </Document> </Documents>
1- Documents :
2- Document :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 @XmlRootElement(name = "Documents") public class Documents implements Serializable { /** * */ private static final long serialVersionUID = 2247113839400198975L; private List<Document> documents; @XmlElement(name="document") public List<Document> getDocuments() { return documents; } public void setDocuments(List<Document> documents) { this.documents = documents; } }
3- Mindex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 @XmlRootElement(name = "Document") public class Document implements Serializable { private static final long serialVersionUID = 4175219512845106595L; private Mindex mindex; //private Diffusion diffusion; //private String donnee; @XmlElement(name="Mindex") public Mindex getMindex() { return mindex; } public void setMindex(Mindex mindex) { this.mindex = mindex; } }
Quand j'esseye de lire le fichier xml de cette maniere , j'ai une valeur null de l'objet docs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 @XmlRootElement(name = "Mindex") public class Mindex implements Serializable { private static final long serialVersionUID = -8635197680896972699L; private String codeProfil; private String codeIdentification; private String temps; private String codeRefDGE; //private Sngi sngi; @XmlElement(name="CodeProfil") public String getCodeProfil() { return codeProfil; } public void setCodeProfil(String codeProfil) { this.codeProfil = codeProfil; } @XmlElement(name="CodeIdentification") public String getCodeIdentification() { return codeIdentification; } public void setCodeIdentification(String codeIdentification) { this.codeIdentification = codeIdentification; } @XmlElement(name="Temps") public String getTemps() { return temps; } public void setTemps(String temps) { this.temps = temps; } @XmlElement(name="CodeRefDGE") public String getCodeRefDGE() { return codeRefDGE; } public void setCodeRefDGE(String codeRefDGE) { this.codeRefDGE = codeRefDGE; } }
Je doute que c'est a cause du mapping de la liste de document, parce que quand j'ai esseyé un simple xml sans liste répétitif, j'ai pas eu de souci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 File xmlDocuments = new File("src/main/resources/xml/docs3.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(Documents.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); Documents docs = (Documents) jaxbUnmarshaller.unmarshal(xmlDocuments);
d'ou peux venir l'erreur ?
Merci
Partager