IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[C#/XML] Sérialiser XML


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 42
    Points : 26
    Points
    26
    Par défaut [C#/XML] Sérialiser XML
    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:
    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();
    }
    - PersonneXML :
    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;
    }
    - 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);
        }
    }
    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);

    Mon problème est le suivant, lorsque je sérialise ma collection dans mon fichier, voici le résultat :
    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>
    Pourquoi ma balise qui est censé être <Prenom> s'apelle <anyType etc...> ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    peut-etre parce qu'ArrayList est une liste d'objets non "typés"
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    400
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 400
    Points : 444
    Points
    444
    Par défaut
    Cela vient peut-être du fait que tu utilise un ArrayList, peut-être ça marche mieux avec une liste générique List<string> et les même attributs.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 42
    Points : 26
    Points
    26
    Par défaut
    Merci pour vos réponses, mais j'avais déja essayé avec List<string>,sans grand succès, à la différence de <anyType>, j'ai tout simplement droit à <string>.

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/03/2009, 00h19
  2. Sérialisation xml : fichier xml vide
    Par casafa dans le forum C#
    Réponses: 1
    Dernier message: 25/04/2007, 15h13
  3. Problème sérialisation XML [C#]
    Par AlphonseBrown dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/04/2006, 22h58
  4. [Debutant][XML]sérialisation
    Par Bb_TiTi dans le forum Persistance des données
    Réponses: 2
    Dernier message: 27/02/2006, 07h15
  5. [VB.NET] Sérialisation XML de Collections
    Par nico-pyright(c) dans le forum Windows Forms
    Réponses: 8
    Dernier message: 15/12/2004, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo