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

Format d'échange (XML, JSON...) Java Discussion :

JAXB vs DOM/SAX


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

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

    Informations forums :
    Inscription : Mars 2013
    Messages : 9
    Par défaut JAXB vs DOM/SAX
    Bonjour,

    J'ai un projet dont je doit utiliser un fichier XML pour extraire des données à partir du fichier vers mon application JAVA.

    d’après mes recherche plusieurs APIs permet de faire ce travail, mais 3 sont les plus répondues (JAXB, SAX et DOM).

    En ce documentant un peu sur ces 3 APIs j'ai trouver que :

    DOM : Permet de charger tous le fichier xml en mémoire dans un object Document et le parcourir comme une structure d'arbre, ce qui sature la mémoire et alourdit le parcours du fichier car si on veut arriver à un noeud il faut passer par tous ces noeud parent.

    SAX : L'avantage de SAX est qu'il parcours le ficher séquentiellement, alors comme ça on resoud le problème de saturation de mémoire si le fichier est trop grand. SAX utilise des events pour piloter le fichier XML.

    JAXB : Il ne permet pas de parcourir le fichier XML mais au contraire il fait de liaison entre le xml et les objects java correspondant grace à des annotations. comme ça il devient plus simple de manipuler des objets java qu des noeuds xml ou des events.

    D'aprés cette etude comparative je trouve que JAXB est le plus avantageux.

    est ce que quelqu'un peut me confirmer mon choix ? est ce que vous pouvez me donner de plus ? si vous étiez dans ma situation comment vous pouvez juger votre choix ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par abdel4 Voir le message
    DOM : Permet de charger tous le fichier xml en mémoire dans un object Document et le parcourir comme une structure d'arbre, ce qui sature la mémoire
    Oui. Enfin "sature"... Si le fichier est gros, quoi.

    Citation Envoyé par abdel4 Voir le message
    et alourdit le parcours du fichier car si on veut arriver à un noeud il faut passer par tous ces noeud parent.
    Pas plus qu'avec les autres méthodes.

    Citation Envoyé par abdel4 Voir le message
    SAX : L'avantage de SAX est qu'il parcours le ficher séquentiellement, alors comme ça on resoud le problème de saturation de mémoire si le fichier est trop grand. SAX utilise des events pour piloter le fichier XML.
    Oui. Attention, la programmation par évènements, pour lire des fichiers de conf, c'est très galère.

    Citation Envoyé par abdel4 Voir le message
    JAXB : Il ne permet pas de parcourir le fichier XML mais au contraire il fait de liaison entre le xml et les objects java correspondant grace à des annotations. comme ça il devient plus simple de manipuler des objets java qu des noeuds xml ou des events.
    Oui. Ce qui signifie quand même les charger en mémoire, mais au moins, directement sous une forme utile.

    Citation Envoyé par abdel4 Voir le message
    D'aprés cette etude comparative je trouve que JAXB est le plus avantageux.

    est ce que quelqu'un peut me confirmer mon choix ? est ce que vous pouvez me donner de plus ? si vous étiez dans ma situation comment vous pouvez juger votre choix ?
    Alors je rappelle que JAXB charge les données entièrement en mémoire, comme JDOM. Si tu peux pas faire ça, tu as pas le choix : c'est SAX ou StAX.

    JAXB, et les mappings XML, c'est bien... Quand ça marche. Il faut essayer. Il faut voir si ça peut répondre au besoin.
    Mais des fois ça n'y répond pas. XML c'est une chose, Java c'est autre chose, parfois ça a du sens de mapper l'un à l'autre, et parfois ça n'a pas de sens.
    Il faut savoir se rendre compte quand JAXB te force à construire une usine à gaz que tu n'aurais pas eue avec JDOM, et l'abandonner à ce moment-là. Si ça n'arrive pas, c'est que JAXB était au moins pas mal (de là à ce que JDOM n'aurait pas été plus simple, il y a encore un pas.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [DOM, SAX, STAX] Generer une page HTML
    Par Merchinho dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 15/03/2009, 21h25
  2. Migration : passage de DOM à SAX
    Par neuropathie dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 11/12/2007, 12h09
  3. [dom][sax]problème à le lecture d'un fichier
    Par floanne dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 02/04/2007, 15h06
  4. [parsers] DOM/SAX:oui mais moi je fais du XSL
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 24/05/2006, 19h10
  5. [DOM/SAX]Choix...
    Par miss8 dans le forum APIs
    Réponses: 4
    Dernier message: 17/03/2003, 18h37

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