Bonjour,
Je ne sais pas si je suis dans la bonne partie du forum pour mon problème mais voilà:
Sur base d'un xml je crée un xsd via les tools de visual studio.
Je transforme ensuite le xsd en .cs que je lie à mon projet.
Mon programme lit des xml que je sérialise:
Mon problème est que parfois je reçois un xml dont la structure est un peu différente de mon xsd ==> .cs
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 private static object GetXML(string Path) { try { XmlSerializer deserialize = new XmlSerializer(typeof(Message)); using (Stream stream = new FileStream(Path, FileMode.Open, FileAccess.Read, FileShare.None)) { return deserialize.Deserialize(stream); } } catch (Exception ex) { Util.GoLog("Problème dans la désérialization du fichier" + Path + "\n" + ex.ToString()); return null; } }
Et j'obtiens l'erreur:
[System.Xml.XmlException] = {"Types de noeud inattendu Element. La méthode ReadElementString ne peut être appelée que pour des éléments au contenu simple ou vide. Ligne 43, position 7."}
Pcq à la place d'avoir
<Telephones>
</Telephones>
J'ai
<Telephone>
<Tel>065651541</Tel>
<Type>Maison</Type>
</Telephone>
Et donc ma serialization ne fonctionne pas.
Ma question est comment forcer pour que ma serialization fonctionne sans régénérer un xsd ==> .cs à chaque nouvelle balise dans le xml
D'avance merci
Partager