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 :

Peut-on gérer plusieurs model XMl avec un seul Handler


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut Peut-on gérer plusieurs model XMl avec un seul Handler
    Bonsoir,

    Mon application utilise Saxparser pour lire plusieurs flux XML et pour le moment mon implémentation basique de sax marche plutôt bien.

    En effet j'ai plusieurs source XML avec chacune une structure bien propre!

    Le but étant de pourvoir garder l'état des données dans une classe JAVA, je dois effectivement créer un modèle pour chaque source XML et également lui associer un Handler héritant de DefaultHandler.

    Si j'ai X type de flux XML à gérer je dois également créer X type de Handler avec son modèle de donnée.
    Je voudrais savoir simplement si il y a une approche plus propre que mon implémentation à savoir comment gérer tous ces cas avec un seul Handler?

    Cette question à été posé par un membre sur le forum stackowerflow :
    http://stackoverflow.com/questions/3...n-xml-elements

    On lui indique d'implémenter ContentHandler mais j'ai pas très bien saisi, la façon de réaliser.

    Pouvez vous m'indiquez une piste ou bien me dire si mon approche est bonne ou bien a éviter pour de bon?


    Merci

  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
    Ce genre de choses est en fait assez chiante à réaliser en SAX, à cause du modèle évènementiel. StAX simplifie beaucoup les choses.

    L'idée c'est de décorer des ContentHandler, un pour chaque type d'élément à traiter, et qu'un ContentHandler sache s'il doit traiter les évènements lui-même ou déléguer à celui qu'il décore.

    J'ai mis au point une méthode, mais je l'ai pas trouvée ailleurs, je vais donc partager ici quand j'aurai le temps.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Très bien j'attend avec impatience votre implémentation de Stax.

    Merci pour cette piste je vais également voir Stax de mon côté et voir ce qu'il m'offre de plus que sax, mais d'un point de vu technique il me semble qu'il permet d’écrire du XML contrairement a Sax, sauf erreur de ma part?

    Merci

  4. #4
    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 Rohan21 Voir le message
    Très bien j'attend avec impatience votre implémentation de Stax.
    Ah bah non, si tu le fais avec Stax t'as pas besoin de mon aide, c'est tout simple.

    Je trouve qu'il vaut mieux faire ce genre de chose avec Stax, mais j'ai eu des clients où c'était impossible, il fallait fournir un ContentHandler SAX et puis c'est tout. Alors j'ai créé une solution aussi peu pourrie que possible, mais je l'ai pas sous la main, là.

    Citation Envoyé par Rohan21 Voir le message
    Merci pour cette piste je vais également voir Stax de mon côté et voir ce qu'il m'offre de plus que sax, mais d'un point de vu technique il me semble qu'il permet d’écrire du XML contrairement a Sax, sauf erreur de ma part?
    En fait on peut écrire du XML avec SAX. Personne le fait mais on peut.

    La différence entre SAX et Stax, c'est que SAX est évènementiel : on reçoit un évènement (ouverture d'élément, fermeture d'élément, texte...) et on y réagit. C'est très antagoniste des modèles de programmation habituels.
    Stax est itératif. On demande quelle est la prochaine chose qu'il y a dans le XML (réponse : ouverture d'élément, fermeture d'élément, texte...) et on la traite. C'est le modèle de programmation habituel, et c'est facile de factoriser la lecture de balises communes.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    La différence entre SAX et Stax, c'est que SAX est évènementiel : on reçoit un évènement (ouverture d'élément, fermeture d'élément, texte...) et on y réagit. C'est très antagoniste des modèles de programmation habituels.
    Stax est itératif. On demande quelle est la prochaine chose qu'il y a dans le XML (réponse : ouverture d'élément, fermeture d'élément, texte...) et on la traite. C'est le modèle de programmation habituel, et c'est facile de factoriser la lecture de balises communes.
    Excellent, je vais voir ca!

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Par défaut
    Ah oui j'avais oublié de dire que l'appli fonctionne sur Android, est ce que au niveau des performances c'est pareil que Sax?

    Edit: http://hikage.developpez.com/java/articles/xml/stax/

    Je vais lire ce tuto

Discussions similaires

  1. reunir plusieurs fichiers XML avec XSL
    Par abdronny dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 12/05/2014, 18h52
  2. concaténer plusieurs fichiers xml avec awk
    Par flora806 dans le forum Linux
    Réponses: 0
    Dernier message: 19/06/2009, 17h18
  3. Diviser un fichier XML en plusieurs fichiers XML avec XSLT
    Par bobkorn dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 18/04/2008, 12h13
  4. Gérer un fichier XML avec Python
    Par ffets dans le forum Général Python
    Réponses: 25
    Dernier message: 31/10/2007, 14h47
  5. Réponses: 3
    Dernier message: 24/04/2007, 11h39

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