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

Dotnet Discussion :

Traitement XML, que choisir?


Sujet :

Dotnet

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Points : 62
    Points
    62
    Par défaut Traitement XML, que choisir?
    Bonjour,

    Existe-t-il des comparatifs des différentes manières de traiter du XML?

    Je m'explique :
    Pour l'instant, pour traiter un fichier XML, je connais (plus ou moins) l'utilisation du composant XmlDataProvider, LINQ to XML, la désérialisation etc etc.

    Mais qu'est ce qui va faire porter le choix vers une techno ou une autre, dans le développement d'un projet? Les performances? La facilité d'utilisation? Certaines possibilités de traitement non présentes dans les 3 technologies?

    Au passage, existe-t-il d'autres manières de traiter le XML?

  2. #2
    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
    Pour résumer , il y a deux façons de traiter du XML :

    Le DOM (Document Object Model) qui nécessite la mise en mémoire complète du fichier XML avant de pouvoir effectuer un quelconque traitement sur celui-ci (c'est la technique mise en place par l'utilisation de XmlDocument et Linq To XML).

    Les Readers (XmlReader) qui permettent la lecture sans mise en mémoire complète et en avant uniquement du XML (c'est la technique mise en place par la sérialisation, désérialisation).

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Citation Envoyé par Kaidan Voir le message
    Pour résumer , il y a deux façons de traiter du XML :

    Le DOM (Document Object Model) qui nécessite la mise en mémoire complète du fichier XML avant de pouvoir effectuer un quelconque traitement sur celui-ci (c'est la technique mise en place par l'utilisation de XmlDocument et Linq To XML).

    Les Readers (XmlReader) qui permettent la lecture sans mise en mémoire complète et en avant uniquement du XML (c'est la technique mise en place par la sérialisation, désérialisation).
    +1 et j'ajouterais que, dans la pratique quotidienne, le DOM couvre normalement presque tous les besoins; l'utilisation des Readers ne se justifie que dans des cas "tordus" et customisés de sérialisation Xml ou encore pour écrire un éditeur Xml (ce qu'on ne fait pas tous les matins en général).

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    l'utilisation des Readers ne se justifie que dans des cas "tordus" et customisés de sérialisation Xml ou encore pour écrire un éditeur Xml (ce qu'on ne fait pas tous les matins en général).
    Ou quand le fichier XML est trop volumineux pour être chargé en mémoire...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Points : 62
    Points
    62
    Par défaut
    Merci de vos réponses.

    Je suis étonné de voir que c'est tout l'inverse de ce que je pensait. Pour moi le DOM permettait de lire le doc au fur et à mesure tandis que la sérialisation traitait tout d'un coup

    Et donc pour les DOM, fondamentalement, il n'y as pas de grande différence? (rapidité, simplicité etc)

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Ldoppea Voir le message
    tandis que la sérialisation traitait tout d'un coup
    Ben ça ne charge jamais le document XML entier en mémoire, mais au final tu as l'objet désérialisé entier en mémoire...

    Citation Envoyé par Ldoppea Voir le message
    Et donc pour les DOM, fondamentalement, il n'y as pas de grande différence? (rapidité, simplicité etc)
    différence avec quoi ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Points : 62
    Points
    62
    Par défaut
    En fait, s'il existe plusieurs façon de traiter un XML avec les Dom (XmlDocument et Linq To XML), c'est bien qu'il y'a des différences non? Une méthode devrait apporter des possibilités que l'autre n'as pas?

    Pour l'instant, dans le peu que j'en ai vu, la seule différence qui saute aux yeux, c'est la syntaxe. Mais cette différence ne justifie pas à elle seule l'utilisation d'une techno ou d'une autre si?

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 753
    Points
    39 753
    Par défaut
    Citation Envoyé par Ldoppea Voir le message
    En fait, s'il existe plusieurs façon de traiter un XML avec les Dom (XmlDocument et Linq To XML), c'est bien qu'il y'a des différences non? Une méthode devrait apporter des possibilités que l'autre n'as pas?

    Pour l'instant, dans le peu que j'en ai vu, la seule différence qui saute aux yeux, c'est la syntaxe. Mais cette différence ne justifie pas à elle seule l'utilisation d'une techno ou d'une autre si?
    Ben Linq To XML permet de profiter des avantages de Linq, à savoir les requêtes intégrées au langage, les méthodes d'extensions, les lambda expressions, etc... à part ça je pense pas que ce soit très différent.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 139
    Points : 62
    Points
    62
    Par défaut
    Ok, merci de ta réponse

    Une autre question me vient à l'esprit : la validation du modèle XML.

    Est-il possible de valider si le XML correspond à un schémas XSD avant son traitement?

    PS : Une idée de quelle méthode est utilisée dans cette démo :http://demos.telerik.com/wpf/ (dans la partie gauche -> Scheduler -> XML Provider)

Discussions similaires

  1. Que choisir pour vérifier le contenu de mon fichier XML?
    Par nadsky dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 16/06/2009, 16h01
  2. Que choisir pour gérer les sauvegardes : fichiers XML ou base de données ?
    Par Invité dans le forum Développement 2D, 3D et Jeux
    Réponses: 11
    Dernier message: 14/06/2007, 11h58
  3. mapping XML-Objet : que choisir ?
    Par hgede dans le forum Persistance des données
    Réponses: 3
    Dernier message: 16/04/2007, 13h43
  4. xml/xmi Que choisir, que faire? demande d'infos
    Par critok dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 01/03/2006, 15h35
  5. [XML][debutant] Organisation d'elements que choisir ???
    Par Shiryu44 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 18/04/2005, 14h23

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