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 :

Comparaison entre JAXP et JDOM


Sujet :

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

  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut Comparaison entre JAXP et JDOM
    Salut
    Pouvez vous me dire SVP quel est la différence entre JAXP et JDOM ? Dans quels cas faut il utiliser l’un et pas l’autre ? Qui est le plus performant pour la manipulation de grands fichiers Xml ?
    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    Comme la réponse m'interesse aussi, voici ce qui a été dit ici et
    Citation Envoyé par denisC
    • SAX : API de bas niveau evenementiel : c'est pas facile à utiliser, mais ça permet de traiter des très gros fichiers XML (c'est son avantage principal).
    • DOM : API du W3C permettant de visualiser un doc XML sous forme d'arbre. Se charge en mémoire, donc problème pour les trops gros documents. La syntaxe est pas facile.
    • JDom : API Java (maintenant portée sur d'autres langages) : concurrente directe du DOM, elle part sur les mêmes principes, en utilisant une syntaxe beaucoup plus simple et intuitive.
    • Commons-Digester : API de haut niveau permettant de mettre un fichier XML sous forme d'objets Java.


    Voila pour celles que je connais. Globalement, SAX est de bas niveau, DOM et JDOM niveau intermédiaire, et les autres (donc commons-digester, JAXP) s'appuye à leur tour sur les normes précédentes pour monter encore le niveau.
    Citation Envoyé par GrandFather
    Bonjour,

    tout dépend du niveau de contrôle que tu veux avoir sur ton XML...

    Si ton document XML n'est utilisé qu'à des fins de sérialisation internes à ton appli, et n'est pas impliqué dans d'autres chaînes de traitement (workflow XML, transformations XSLT, etc.), alors tu n'es pas obligé de mettre les "mains dans le cambouis" et tu peux travailler à un niveau plus élevé et plus abstrait en utilisant une API de mapping XML/Objet (attention, W3C XML Schema obligatoire, DTD s'abstenir).

    Si ton document XML est destiné à des applications tierces, alors il faut que tu aies un contrôle plus fin sur sa structure et sa syntaxe. Dans ce cas, des API "bas niveau" comme DOM (ou JDOM) me paraîssent nécessaires.
    Mais je reste un peu sur ma faim concernant JAXP ! Sur quoi se base-t-il ? DOM ? JDOM ? SAX ? Quel est la différence avec JDOM ? Est-ce qu'il prend en charge les XML Schema ?
    Je cherche une API se basant sur SAX pour manipuler des fichier potentiellement volumineux, si vous avez des idées/conseils hésitez pas ... De même je vous direz quand je serais décider !

    A voir : http://java.developpez.com/faq/xml/?...onctionnalites et aussi les tutoriels et cours de formation pour appendre Java : http://java.developpez.com/cours/

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    En fait JAXP se base sur SAX ou DOM, c'est au choix.
    J'ai vu aussi sur www.jdom.org s'appuie sur JAXP.

    Mon problème est que je souhaite créer un fichier XML à partir d'objets Java. Est-ce qu'il existe un moyen simple de faire ca ?
    Apparement SAX ne permet pas la création, il n'y a que DOM qui le permette (arrêter moi si je me trompe) mais du coup, si mon fichier est volumineux, DOM ne va-t-il pas tout faire péter ?

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    Ma réflexion se porte aujourd'hui sur DOM4J.
    Il s'avère que ce site est très bien documenté (notemment la partie QuickStart où tout est dit).
    Un seul point d'ombre, la maintenance, la dernière release datant de Mai 2005 !!

    Est-ce que quelqu'un connait l'API ?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    Citation Envoyé par CharlSka
    Mon problème est que je souhaite créer un fichier XML à partir d'objets Java. Est-ce qu'il existe un moyen simple de faire ca ?
    Cela s'appelle la serialisation avec un petit tuto sur XStream ici-même
    XStream à l'air d'être une librairie très complète et pratique, je vais m'orienter la dessus je pense ...

    Désolé de tourner en rond, mais je sais pas trop par où prendre le problème et j'ai pas envie de me jeter sur la première API trouvée ! (Et j'ai bien fait, après avoir parcouru SAX, DOM, JAXP, JDOM et DOM4J j'ai peut-être trouvé mon bonheur )

  6. #6
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Personnellement, je n'aime pas beaucoup XStream. Il enregistre TOUT l'objet, dont certaines données dont on n'a souvent pas besoin, et avec une syntaxe XML assez lourde. Si ton besoin est spécifique, lorsque j'ai un objet à enregistrer crée plutôt ta propre méthode d'enregistrement.

    - tu crées une méthode "saveToXML()" sur ta classe qui te renvoie un "Elément" JDom
    - les objets qui en incluent d'autres appellent récursivement la méthode "saveToXML()" des objets qui les composent pour inclure les éléments renvoyés dans leur propre élément JDom

    - inversement, tu crées des méthodes loadFromXML() qui régénèrent ton objet à partir de l'élément XML correspondant

    - enfin, dans un classe de sauvegarde, tu écris une méthode qui effectue la persistance de ton (tes) "Element" JDom dans un fichier physique (et qui recharge tes objets depuis ce même fichier)
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    219
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 219
    Par défaut
    Bonjour,

    Si tu veux une explication assez complète avec des morceaux de codes, tu trouveras ton bonheur ici dans la section apprendre Java et XML : http://java.developpez.com/cours/


    @+

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    (Merci enfin des réponse )
    Citation Envoyé par CyberChouan
    Personnellement, je n'aime pas beaucoup XStream. Il enregistre TOUT l'objet, dont certaines données dont on n'a souvent pas besoin, et avec une syntaxe XML assez lourde. Si ton besoin est spécifique, lorsque j'ai un objet à enregistrer crée plutôt ta propre méthode d'enregistrement.

    - tu crées une méthode "saveToXML()" sur ta classe qui te renvoie un "Elément" JDom
    - les objets qui en incluent d'autres appellent récursivement la méthode "saveToXML()" des objets qui les composent pour inclure les éléments renvoyés dans leur propre élément JDom

    - inversement, tu crées des méthodes loadFromXML() qui régénèrent ton objet à partir de l'élément XML correspondant

    - enfin, dans un classe de sauvegarde, tu écris une méthode qui effectue la persistance de ton (tes) "Element" JDom dans un fichier physique (et qui recharge tes objets depuis ce même fichier)
    EN effet, j'ai regarder d'un peu plus prêt XStream, ca a l'air complet et un peu compliqué, par contre pour te contredire, il est possible avec XStream de définir tes propres Converter et de choisir comment il transforme tes objets en XML.

    Pour comparer XStream avec la solution que tu proposes (avec JDom ?), en fait à tes objets métier tu fais implémenter l'interface Converter et ton saveToXml devient marshall et loadFromXml devient unmarshall .
    Ca revient un peu au même ...


    Mon choix balance vers la proposition de CyberChouan (XStream me semble un peu compliqué), mais je ne suis pas encore décidé entre JDom et Dom4J !?
    J'ai la bizarre impression que les 2 se ressemble ...

    Au secours je me noie !

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    100
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2007
    Messages : 100
    Par défaut
    Restant sur mon impression que JDom et Dom4J font un peu la meme chose, je me suis décider sur Dom4J. Pourquoi ?
    - Parce qu'il est plus documenté (et en francais)
    - Parce qu'il est déjà utilisé par Hibernate (donc un jar de moins à récupérer )

Discussions similaires

  1. difference entre JAXP ,dom4j et jdom
    Par riadhhwajdii dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 03/03/2010, 00h53
  2. Requete de comparaison entre 2 champs
    Par wallaz dans le forum Access
    Réponses: 2
    Dernier message: 23/09/2005, 19h17
  3. Comparaison entre les classes et les fonctions
    Par Ashgenesis dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 08/09/2005, 19h09
  4. comparaison entre 2 tables
    Par halina dans le forum Requêtes
    Réponses: 10
    Dernier message: 13/05/2005, 15h18
  5. Réponses: 6
    Dernier message: 21/01/2004, 13h25

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