Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
732 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [c#] There was an error generating the XML

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[c#] There was an error generating the XML

n°567701
prettysmil​e
Sourire est un devoir social
Posté le 15-11-2003 à 17:37:18  profilanswer
 

J'obtiens cette erreur lorsque je tente d'"XMLSerializer" mes données. Cette exception est une InvalidCastException, je cherche à determiner sur quel élément de la classe se produit le problème de cast.  
 
structure des données :
[

Code :
  1. System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
  2. public class Classe{
  3. [System.Xml.Serialization.XmlElementAttribute("Eleve", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  4.    public ArrayList _eleves;
  5. [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  6.    public String _niveau;
  7. ...blabla...}


 

Code :
  1. public class Eleve{
  2. [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  3.     public String _nom;
  4. [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  5.     public String _prenom;
  6. [System.Xml.Serialization.XmlElementAttribute("Notes", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  7.     public ArrayList _notes;
  8. ...blabla...}


 
serialisation :

Code :
  1. classeFile = new StreamWriter( url );
  2. XmlSerializer classeSerializer=new XmlSerializer(typeof(Classe));
  3. classeSerializer.Serialize(classeFile, this );


 
une idée?


Message édité par prettysmile le 17-11-2003 à 19:55:03
mood
Publicité
Posté le 15-11-2003 à 17:37:18  profilanswer
 

n°567919
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 16-11-2003 à 00:28:10  profilanswer
 

c'est quoi cette signature :heink:


---------------
J'ai un string dans l'array (Paris Hilton)
n°567976
veryfree
Posté le 16-11-2003 à 02:03:36  profilanswer
 

:lol:

n°568001
prettysmil​e
Sourire est un devoir social
Posté le 16-11-2003 à 10:44:07  profilanswer
 

Harkonnen a écrit :

c'est quoi cette signature :heink:


demande à Drashe!

n°568929
HappyHarry
Posté le 17-11-2003 à 13:48:23  profilanswer
 

je jetterai ptet un coup d'oeil ce soir si personne n'a encore répondu

n°569296
prettysmil​e
Sourire est un devoir social
Posté le 17-11-2003 à 18:43:31  profilanswer
 

HappyHarry a écrit :

je jetterai ptet un coup d'oeil ce soir si personne n'a encore répondu

trop aimable :jap:

n°569312
HappyHarry
Posté le 17-11-2003 à 19:25:48  profilanswer
 

tu as précisé qu'il fallait inclure le type Eleve en mettant  
 
[XmlInclude(typeof(Eleve))]
 
dans la déclaration de la classe Classe ?
 
autre truc a savoir : XmlSerializer ne traite que les types public ...


Message édité par HappyHarry le 17-11-2003 à 19:30:05
n°569324
prettysmil​e
Sourire est un devoir social
Posté le 17-11-2003 à 19:54:42  profilanswer
 

HappyHarry a écrit :

tu as précisé qu'il fallait inclure le type Eleve en mettant  
 
[XmlInclude(typeof(Eleve))]
 
dans la déclaration de la classe Classe ?
 
autre truc a savoir : XmlSerializer ne traite que les types public ...


à vrai dire non, je me suis contentée des balises suggérées par xsd.  
 
un rapide test ne me donne rien avec xmlInclude.
passer les attributs en public, je l'ai déjà fait apres de qques docs (dsl oublié de mettre post à jour)

n°569325
HappyHarry
Posté le 17-11-2003 à 19:57:53  profilanswer
 

chez moi le code suivant fonctionne, donc a part le writer que j'ai utilisé qui semble être différent ...
 

Code :
  1. using System;
  2. using System.Collections;
  3. using System.IO;
  4. using System.Xml;
  5. using System.Xml.Serialization;
  6. namespace ConsoleApplication1
  7. {
  8. class Class1
  9. {
  10.  [STAThread]
  11.  static void Main(string[] args)
  12.  {
  13.   try
  14.   {
  15.    XmlTextWriter writer = new XmlTextWriter("C:\\\\toto.xml",System.Text.Encoding.Default);
  16.    XmlSerializer classeSerializer=new XmlSerializer(typeof(Classe));
  17.    classeSerializer.Serialize(writer, Classe.GetClasseSample() );
  18.   }
  19.   catch(Exception e)
  20.   {
  21.    Console.WriteLine(e.Message);
  22.    if(e.InnerException != null)
  23.     Console.WriteLine(e.InnerException.Message);
  24.   }
  25.   finally
  26.   {
  27.    Console.WriteLine("Fin." );
  28.    Console.ReadLine();
  29.   }
  30.  }
  31. }
  32. [System.Xml.Serialization.XmlRootAttribute(Namespace="", IsNullable=false)]
  33. [XmlInclude(typeof(Eleve))]
  34. public class Classe
  35. {
  36.  [System.Xml.Serialization.XmlElementAttribute("Eleve", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  37.  public ArrayList _eleves;
  38.  [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  39.  public String _niveau;
  40.  public Classe()
  41.  {
  42.   this._eleves = new ArrayList();
  43.   this._niveau = "";
  44.  }
  45.  public Classe(string niveau, Eleve toto)
  46.  {
  47.   this._niveau = niveau;
  48.   this._eleves = new ArrayList();
  49.   this._eleves.Add(toto);
  50.  }
  51.  public static Classe GetClasseSample()
  52.  {
  53.   return new Classe("CP",Eleve.GetEleveSample());
  54.  }
  55. }
  56. public class Eleve
  57. {
  58.  [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  59.  public String _nom;
  60.  [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  61.  public String _prenom;
  62.  [System.Xml.Serialization.XmlElementAttribute("Notes", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
  63.  public ArrayList _notes;
  64.  public Eleve()
  65.  {
  66.   this._nom = "";
  67.   this._prenom = "";
  68.   this._notes = new ArrayList();
  69.  }
  70.  public Eleve(string nom, string prenom, ArrayList notes)
  71.  {
  72.   this._nom = nom;
  73.   this._prenom = prenom;
  74.   this._notes = notes;
  75.  }
  76.  public static Eleve GetEleveSample()
  77.  {
  78.   return new Eleve("DUGLAND","Toto",null);
  79.  }
  80. }
  81. }


Message édité par HappyHarry le 17-11-2003 à 19:59:06
n°569327
prettysmil​e
Sourire est un devoir social
Posté le 17-11-2003 à 20:05:29  profilanswer
 

avec le XmlWriter ça marche.
Srteamwriter c'était la solution proposée dans la formation microsoft, je vais essayer d'approfondir pour comprendre pourquoi cela ne fonctionne sur mon code (à peine plus etoffé que leur exemple : un Zoo avec une arrayList d'Animaux)
 :jap:  :jap:  :jap:  [:prettysmile]


Message édité par prettysmile le 17-11-2003 à 20:05:49
mood
Publicité
Posté le 17-11-2003 à 20:05:29  profilanswer
 

n°569330
HappyHarry
Posté le 17-11-2003 à 20:07:04  profilanswer
 

[:spamafote]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [c#] There was an error generating the XML

 

Sujets relatifs
[c] problème de fgets --> bus error core dumped[XML/XSL] [WIP] Gestionnaire de liens (1er problème résolu !)
[XML] Générer un graphe à partir de données XML ?Extensible Markup Language (XML) 1.0 (Third Edition) mis a jour hier
XML: quels sont les caractères que l'on ne peut pas utiliser?[delphi6] runtime error
Inclure un fichier XML dans un autre fichier XML Probleme !HTML --> PHP ==> Parse error !
Récupérer le code HTML d'un fichier XML affiché avec IE...XML -> Image ?? Aidez moi ??!!
Plus de sujets relatifs à : [c#] There was an error generating the XML


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR