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

C# Discussion :

[C# debutant inside] Creation d'une classe a partir d'un fichier xml


Sujet :

C#

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [Résolu. Merci!@][C# debutant inside] Creation d'une classe a partir d'un fichier xml
    Bonjour tout le monde ,

    Serait il possible de creer une classe a partir d'un fichier Xml , et dynamiquement (en cours d'exec du programme)

    C'est dans le cadre d'un parser dynamique

    en gros
    convertir un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <classtoto>
    <type uint>i</type>
    </class>
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Class toto
    {
       uint i ; 
    }
    Merci!!

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut instanciation dynamique
    Est ce que cela revient a faire de l' "instanciation dynamique" ?

    J'ai trouvé cet article dans le forum ...

    http://www.developpez.net/forums/d25...sse-generique/

    Merci de m'aider.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Il est toujours possible d'écrire du code spécifique pour créer des classes à partir d'un fichier XML mais .NET propose la sérialisation XML qui est un moyen générique de le faire (le fichier doit par contre suivre certaines spécifications). Je te laisse lire les tutoriaux :

    http://tlevesque.developpez.com/dotn...serialization/

    http://tlevesque.developpez.com/dotn...rialization-2/

  4. #4
    Membre averti
    Avatar de SoBaKa
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 242
    Points : 349
    Points
    349
    Par défaut
    Peut-être un début de piste : les types anonymes ?
    Il me semble que si il n'y a que des propriétés dans tes classes cela devrait être l'idéal.

    Par contre, ta question me semble un peu floue, si tu nous en disais plus (comme par exemple ce que tu veux faire)
    ****** Analyse/Développeur .Net

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Projet
    C'est dans le cadre d'un projet etudiant.

    En entrée j'ai un fichier de données binaires représentant des données RADAR décrites au format général ASTERIX visible ici

    Ces données peuvent appartenir a plusieurs catégories , codées au format ASTERIX , et les catégories sont décrites sur

    le site eurocontrol

    Je dois faire une IHM Permettant la visualisation des trames décodées et quelques stats sur les radars qui ont émis les données.

    J'ai 3 choix de conceptions :
    - soit coder les catégories en dur direct dans le code ,

    - soit passer par des fichiers xml de définitions des catégories afin d'éviter de modifier le code si il y a une nouvelle categorie de données.

    - soit passer par des classes codant les catégories , stockées au format xml et chargées au démarrage de l'appli ( un classe étant instanciée si la catégorie de donnée concernée est rencontrée.)

    Je pense que la 3e solutions est la + performante . me trompe -je ?

    Merci

  6. #6
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Si les schémas XML du format sont disponibles, ce qui devrait être le cas, alors la solution proposée par Kaidan, l'XML data binding, est la meilleure.

    Cela donnera :
    - génération de l'implémentation du modèle sous forme de classes de données C# avec xsd.exe,
    - utilisation de la couche XML data binding du framework .Net pour loader le graphe des objets à partir du document XML,
    - manipuler ces objets en faisant complètement abstraction de l'XML,
    - si nécessaire resérializer le graphe quand les traitements sont terminés.

    C'est simple, efficace et ça assure un bon découplage de la couche métier de la couche persistance.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut perf.
    J'ai peut etre pas tt compris .
    Si a chaque nouvelle trame on fait une requete xml pour avoir les valeurs des attributs, ca va pas plomber les perfos?

  8. #8
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Le mapping XML -> Objet est géré par la couche XML data binding du framework qui est à priori optimisée.

    Donc :
    - une entité sérializée en XML arrive,
    - la couche de désérialization la map vers un objet correspondant,
    - l'objet est utilisé par tes traitements.

    La notion de "requête XML" est intégrée à la couche de désérialization, et tu n'auras donc pas à t'en soucier.

    Après si vraiment tu as de grosses contraintes de performances tu peux ne pas faire de mapping et récupérer les données directement à partir du XML en mode SAX par exemple.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    En quoi cela serait bcp + rapide par sax ?

    Je vais essayer a priori la solution proposée par Kaidan

  10. #10
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    SAX est une façon de parser du XML "on the fly" par une approche évènementielle.

    Tu n'as donc pas l'overhead du mapping XML -> OO.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

Discussions similaires

  1. [OpenOffice][Base de données] Creation d'une table a partir d'un fichier writer
    Par Darki03 dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 13/05/2009, 12h04
  2. génerer une classe.cs à partir d'un fichier XML
    Par noutazia20 dans le forum C#
    Réponses: 3
    Dernier message: 18/05/2008, 13h31
  3. [XSLT] Générer une liste déroulante à partir d'un fichier xml ?
    Par chipster45 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/03/2007, 09h59
  4. [DTD] Créer une DTD à partir d'un fichier XML
    Par laadhar dans le forum Valider
    Réponses: 3
    Dernier message: 11/07/2006, 09h56
  5. générer une interface graphique à partir d'un fichier XML
    Par chaval dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 15/03/2006, 10h32

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