Generation de classes à partir d'un fichier XML complexe

Résolu
cs_ip2x
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009
- 19 oct. 2006 à 20:13
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
- 1 nov. 2006 à 21:48
Bonjour, comme indiqué dans le sujet, je cherche a generer des fichiers classe a partir d'un fichier XML assez complexe et, il faut bien l'admettre, je patauge allegrement dans les fonctions de serialisation de C#.

Est-il possible de faire cela ? Si oui...quelqu'un pourrait il m'aiguiller ?

En vous remerciant, a+!

12 réponses

MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
56
19 oct. 2006 à 22:14
Salut,

Tu peux utiliser l'utilitaire xsd.exe
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cptools/html/cpconxmlschemadefinitiontoolxsdexe.asp

xsd.exe fichier.xml  -> te donne un fichier xsd.
xsd.exe fichier.xsd  /c /l:cs -> te donne ta classe en c#

Mx
MVP C# 
3
cs_ip2x
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

20 oct. 2006 à 11:05
Merci m'sieur ! J'ai trouvé cette application, bien sympathique, il est vrai... Mais je dois faire une application de mes mains...ou de mes doigts... c'est là qu'est tout le probleme... Savez-vous quelle methode est utilisée dans ce type d'application ?
0
cs_ip2x
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

24 oct. 2006 à 08:57
Bonjour, il semblerait que je puisse utiliser ce programme, mais savez vous si une licence est requise pour son utilisation ?
Si non, je debouche le champagne !
En vous remerciant, a+
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
56
24 oct. 2006 à 09:16
Une licence ?
Disons qu'il est fourni avec le SDK, donc tu peux tout a fait t'en servir librement.
Si maintenant tu souhaites l'embarquer avec ton appli, la par contre je ne pense pas que tu puisses. A moins d'embarquer tout le sdk

Mx
MVP C# 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ip2x
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

24 oct. 2006 à 09:42
C'est donc là que ça va coincer...je range ma bouteille moi...
Je suis certain que tu aurais une solution a mon probleme, toi, Ô grand Morpion , dont la teneur est de realiser un "parser" xml avec generation de classes c#...portable donc vers n'importe quelle machine...

J'ai bien trouvé une dll ici : http://www.sellsbrothers.com/tools/ son nom est .NET XsdClassesGen
Si mes bribes de connaissances en developpement sont correctes, mon application pourra se servir de cette dll sur une autre machine...non ?

Cependant, je dois etre un peu nul car je n'arrive meme pas a m'en servir dans mon code...

Y aurait-il une âme charitable pour me tenir la main pendant que je code ?

http://www.sellsbrothers.com/tools/#xsdClassesGen
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
56
24 oct. 2006 à 10:04
Si tu regardes le code, cette dll utilise xsd.exe.
Mais comme il s'agit d'un add-in pour Visual Studio, on part du principe qu'xsd.exe est forcément installé sur la machine.

Mx
MVP C# 
0
cs_ip2x
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

24 oct. 2006 à 10:19
Oui petite erreur de ma part : c'est ceci que je me suis procuré : http://www.gotdotnet.com/Workspaces/Workspace.aspx?id=ef3d0a73-0468-46da-8780-ede0f12b6f22
0
cs_ip2x
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

24 oct. 2006 à 11:25
Bon encore une question : admettons que j'arrive a installer cette dll sur ma machine, admettons... une fois l'application compilée, est-ce que cette  meme dll  devra etre presente  sur  les  autres  machines pour le bon fonctionnement du programme ??? Si oui...autant mettre directement les mains a la pate...
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
56
24 oct. 2006 à 11:36
J'ai pas encore eu le temps de regarder ton lien.
Par contre, si c'est une dll, oui, il faudra que la dll se trouve sur les autres ordinateurs. Mais si tu la référence dans ton projet, elle accompagnera ton exe (pas incorporée avec), donc ce n'est pas un souci. Tu livreras la dll avec ton executable.

Mx
MVP C# 
0
cs_ip2x
Messages postés
63
Date d'inscription
mercredi 9 février 2005
Statut
Membre
Dernière intervention
27 janvier 2009

24 oct. 2006 à 11:52
Ok j'avais deja utilisé cette technique pour un ancien projet...mais dans ce cas, l'installation de la dll est vraiment indigeste :

Installing this Build

<li>Add SkybowVsCodeGenerator.dll to the GAC using
GACUTIL.EXE with the /i switch.
</li><li>Add SkybowVsCodeGeneratorShim.dll to the GAC
using GACUTIL.EXE with the /i switch.
</li><li>Register SkybowVsCodeGeneratorShim.dll using
REGASM.EXE (no switches necessary).</li>Sample VS Solution for Running Sample Code
Generators

To try the sample code generators, you need to open the
SampleCodeGeneratorsSample solution in Visual Studio 2002 or
2003. However, before you do that, you need to define an environment variable
called CODEGENPATH that points to the directory where
Skybow.SampleCodeGenerators.dll is located. The best way to do
this is to open a Command Prompt window (use the Visual
Studio .NET Commpand Prompt shortcut in your Start
menu created by Visual Studio), define the CODEGENPATH variable
and then launch Visual Studio 2002 or 2003 by running MSDEV.EXE
from the same Command Prompt.

Il me parait tout a fait inconcevable d'obliger l'utilisateur a executer toutes ces manipulations...

Il me reste donc 2 choix possibles : créer une installation pour la dll, ou livrer l'appli avec le xsd.exe... a ton avis quel est le meilleur ?
0
MorpionMx
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Membre
Dernière intervention
30 octobre 2008
56
27 oct. 2006 à 09:56
Si la dll repond a tes besoins, et que tu as le droit de la distribuer, alors tu peux utiliser la solution de l'installation.

Mx
MVP C# 
0
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
98
1 nov. 2006 à 21:48
Salut,

Juste au cas où, un utilitaire pouvant peut être correspondre figure parmis les téléchargements du centre de développement XML :
XSD Object Code Generatorhttp://msdn.microsoft.com/XML/XMLDownloads/default.aspx

/*
coq
MVP Visual C#
CoqBlog
*/
0