Bonjour à tous,
J'utilise pour une application Windows Forms un serialiser (System.Xml.Serialization) pour sortir des données en XML. J'utilise donc 3 classes différentes :
- Personne:
- PersonneXML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 public class Personne { private string Nom; private ArrayList Prenoms = new ArrayList(); }
- LesPersonnesXML :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [XmlRootAttribute("Personne", Namespace = "", IsNullable = false)] public class UtilisateurXML { [XmlElement(DataType = "string", IsNullable = false)] private string Nom; [XmlArrayItem(typeof(String), ElementName = "Prenom", IsNullable = false)] private ArrayList Prenoms; }
Une 4ème classe va me servir à créer un objet PersonneXML avec les propriétés d'un autre objet Personne, et ensuite l'ajout dans une collection. La collection est ensuite sérialisée gràce à serializer.Serialize(fichierXML, lesPersonnesXML);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 [XmlRootAttribute("Repertoire", Namespace = "", IsNullable = false)] public class LesPersonnesXML { [XmlArrayAttribute("ListePersonnes")] [XmlArrayItem(typeof(PersonneXML), ElementName = "Personne", IsNullable = false)] public ArrayList TlesPersonnesXML = new ArrayList(); public void ajouter(PersonneXML maPersonne) { TlesPersonnesXML .Add(maPersonne); } }
Mon problème est le suivant, lorsque je sérialise ma collection dans mon fichier, voici le résultat :
Pourquoi ma balise qui est censé être <Prenom> s'apelle <anyType etc...> ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <?xml version="1.0"?> <Repertoire xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <ListePersonnes> <Utilisateur> <Nom>GUY</Nom> <Prenoms> <anyType xsi:type="xsd:string">Francois</anyType> <anyType xsi:type="xsd:string">Renaud</anyType> </Prenoms> </Utilisateur> </ListePersonnes> </Repertoire>
Partager