Vous devez utiliser l' xsd.exe
outil qui est installé avec le kit de développement logiciel Windows dans un répertoire quelque chose de similaire à:
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin
Et sur les ordinateurs 64 bits:
C:\Program Files (x86)\Microsoft SDKs\Windows\v6.0A\bin
Lors de la première exécution, vous utilisez xsd.exe
et vous convertissez votre exemple de code XML dans un fichier XSD (XML schema fichier):
xsd yourfile.xml
Cela vous donne yourfile.xsd
, ce qui, dans une seconde étape, vous pouvez le convertir en utilisant à nouveau xsd.exe
dans une classe C#:
xsd yourfile.xsd /c
Cela devrait vous donner une fichier yourfile.cs
qui contiendra une classe C# que vous pouvez utiliser pour désérialiser le fichier XML que vous obtenez quelque chose comme:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
msg resultingMessage = (msg)serializer.Deserialize('yourfile.xml');
Devrait fonctionner assez bien pour la plupart des cas.
Mise à jour: le sérialiseur XML prendra les flux en entrée - un fichier ou un flux de mémoire va être bien:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
MemoryStream memStream = new MemoryStream(Encoding.UTF8.GetBytes(inputString));
msg resultingMessage = (msg)serializer.Deserialize(memStream);
ou utiliser un StringReader:
XmlSerializer serializer = new XmlSerializer(typeof(msg));
StringReader rdr = new StringReader(inputString);
msg resultingMessage = (msg)serializer.Deserialize(rdr);