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

Persistance des données Java Discussion :

[XML]Question de conception


Sujet :

Persistance des données Java

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut [XML]Question de conception
    Salut,

    j'aimerai savoir ce qui serait le mieux a faire de point de vu conception.
    Voilà je parcours un fichier (xml) dont l'un des éléments a plusieurs fois le même nom de sous élément et dont chacun des sous élements possèdent 3 attributs : voici un exemple pour etre plus clair :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <MessageProperties>
            <property name="toto" type="String" value="IU_" />
            <property name="titi" type="int" value="001" />
            <property name="fifi" type="boolean" value="true" />
    </MessageProperties>
    J'aimerai savoir d'après vous comment je peux récupérer ces propriétés avec une bonne maniere du point de vu conception?
    Est-ce que d'apres vous je dois créer un nouvel objet (donc un classe) nommé par exemple MessageProperties qui aurait comme champs de classe name, type et value? et ensuite stocker dans une liste (arraylist...) la liste des objets MessageProperties?
    CA vous semble comment? Y'a t'-il d'autre moyen??
    Merci

  2. #2
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Est-ce que d'apres vous je dois créer un nouvel objet (donc un classe) nommé par exemple MessageProperties qui aurait comme champs de classe name, type et value?
    Exactement... C'est ce qu'il faut faire...

  3. #3
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    Il ya moyen de générer automatiquement les classes java à partir d'un schéma XML.

    J'ai déjà utilisé jaxb (http://java.sun.com/webservices/jaxb/), mais il ya plein d'autres concurrents...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Est-ce que d'apres vous je dois créer un nouvel objet (donc un classe) nommé par exemple MessageProperties qui aurait comme champs de classe name, type et value?
    Et bien c'est pas vraiment la structure que ton fichier xml suggere , en fait il suggere qu'un MessageProperties possede une liste de proprietés qui elles se definissent par trois attributs (name, type et value).

    Tu peux te retrouver avec un probleme avec ta conception si des attributs sont specifier dans la balise MessageProperties tu va devoir le dupliquer autant de fois que tu as de properties !!!

    Ceci dit j'ai peut etre pas tout compris de ton probleme

    Sinon effectivement JAXB est une API pour dur XML Binding (mais je connais pas plus que ca) moi je te propose common digester:
    http://beuss.developpez.com/tutoriel...mons/digester/

    l'avantage c'est qu'il y a un tutorial en francais sur developpez.com!!

  5. #5
    Membre actif Avatar de vincent63
    Inscrit en
    Octobre 2005
    Messages
    198
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 198
    Points : 205
    Points
    205
    Par défaut
    Et bien c'est pas vraiment la structure que ton fichier xml suggere, en fait il suggere qu'un MessageProperties possede une liste de proprietés qui elles se definissent par trois attributs (name, type et value).
    Autant pour moi, j'adhère à la réponse de FreshVic (j'ai répondu trop vite tout à l'heure dsl)

    Effectivement, il te faut un object qui comprend les 3 champs
    name, type, value et un autre object qui contient une collection des premiers.

  6. #6
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    Désolée mais j'avoue que la je ne comprends pas bien ce que vous voulez dire...
    il me faut un objet qui comprends les 3 champs : name type et value --> donc une nouvelle classe non?
    et un objet qui contient une collection des premiers? c'est a dire? une ArrayList par exemple non?
    ...
    MessageProperties possede une liste de proprietés qui elles se definissent par trois attributs (name, type et value).
    ? je comprends pas ce que je dois donc faire la?

    merci de l'aide

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    il me faut un objet qui comprends les 3 champs : name type et value --> donc une nouvelle classe non?
    et un objet qui contient une collection des premiers? c'est a dire? une ArrayList par exemple non?
    ET bien oui et oui !!
    MessageProperties (contient la collection de Property: ArrayList ou autres )
    Property (name,type et value)

  8. #8
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    J'suis désolée mais je ne comprends toujours pas ce que je dois faire, ce que je dois mettre ou et comment...?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Citation Envoyé par FreshVic
    il me faut un objet qui comprends les 3 champs : name type et value --> donc une nouvelle classe non?
    et un objet qui contient une collection des premiers? c'est a dire? une ArrayList par exemple non?
    ET bien oui et oui !!
    MessageProperties (contient la collection de Property: ArrayList ou autres )
    Property (name,type et value)
    mmm a part t'ecrire le code je vois ce que je peux dire de plus !!!

    QU'est ce que tu ne comprend pas exactement ?

  10. #10
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    Arf j'suis désolée...
    Bon alors concrètement je ne comprends pas ce que je dois faire :
    - une classe Properties avec 3 champs de classe : name, type et value.
    et ensuite je dois refaire une autre classe? C'est ca que je ne comprends pas?
    donc pour la classe properties je peux avoir quelque chose de ce style ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class UxJmsMessageProperties {
        String m_name;
        String m_type;
        Object m_value;
        public UxJmsMessageProperties(String name, String type, String value) {
            super();
            m_name = name;
            m_type = type;
        }
    et ensuite?

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Pas grave je susi passé par la aussi !
    et ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public class MessageProperties {
     
    Collection properties; //a toi de choisir la collection qu'il te faut 
     
    // il te faudras d'autre methode du style addPropertiy , getProperties getProperty(int index) removeProperty(Property) ...
     
    }
    Cette classe correspond a la balise MessageProperties !! si MessageProperties est la racine de ton XML tu n'auras qu'une instance de cet objet qui representera ton fichier XML en objet

  12. #12
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    MessageProperties ne correspond pas a la racine de mon XML : je crée justement un fichier permettent de lister le XML en entier.
    Pourquoi au sein de ma classe qui load le XML je ne peux pas simplement faire une Collection de type ArrayList par exemple ou j'y insère des objets de types Properties?
    A quoi ca sert de refaire une classe en plus?

    merci de ton aide

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Parce que si tu fais ca tu perd la structure de ton fichier xml , en effet dans ton fichier xml chaque properties est DANS une balise MessageProperties si tu te contente d'UNE arrayList pour les properties tu perd la structure de ton fichier XML et tu aurais un structure correspondant a ce type de ficheir xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            <property name="toto" type="String" value="IU_" />
            <property name="titi" type="int" value="001" />
            <property name="fifi" type="boolean" value="true" /> 
            <property name="toto2" type="String" value="IU_" />
            <property name="titi2" type="int" value="001" />
            <property name="fifi2" type="boolean" value="true" />
    alors qu'au depart tu aurais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <MessageProperties>
            <property name="toto" type="String" value="IU_" />
            <property name="titi" type="int" value="001" />
            <property name="fifi" type="boolean" value="true" /> 
    </MessageProperties>
    <MessageProperties>
            <property name="toto2" type="String" value="IU_" />
            <property name="titi2" type="int" value="001" />
    </MessageProperties>
    <MessageProperties>
            <property name="fifi2" type="boolean" value="true" /> 
    </MessageProperties>

  14. #14
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    Mais je sais que mon fichier ne peut contenir qu'une balise JMSMessageProperties donc a pripori ce n'est pas génant...si?

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Dans ce cas , peut etre que ta balise MessageProperties peut avoir des attibuts du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <MessageProperties machin="bidule">
            <property name="toto" type="String" value="IU_" />
            <property name="titi" type="int" value="001" />
            <property name="fifi" type="boolean" value="true" />
    </MessageProperties>
    dans ces condition si tu garde ta collection tu va devoir dupliquer la valeur bidule dans chaque property !!

    Si ce n'est pas le cas je vois pas l'interet de la balise MessageProperties tu pourrais la virer et ta conception deviendrais bonne !!!

  16. #16
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    En fait je suis sure de la structure du fichier que j'ai en parametre de ma classe : structure du fichier XML.
    Certe la balise JMSMessageProperties en fait ne sert a rien, c'est juste une manière de "ranger" le fichier XML je pense. Afin de savoir que les sous élément de cette balise appartiennent au propriete du message JMS...
    et donc JMSMessage Propertie bidule ="" n'est pas possible.
    c'est pourquoi je pensais a ce type de conception. C'est justifié d'apres toi?

  17. #17
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Et bien oui dans ces conditions ca marcherais mais malgré tout en ce qui me concerne je ferais une classe MessageProperties , je trouve ca plus porpre (c'est mon avis ca n'engage que moi) et ca rendrais le code plus facilement evolutif en cas de changement du fichier xml .

    Je trouve la solution de MessageProperties plus propre parce que ca permettrais d'encapsuler les donner de ton xml dans un classe ( ce qui te permettrais de limiter ce qu'on peut faire dessus) et surtout ca permettrais d'eviter d'avoir à se "ballader" avec une ArrayList ,sans trop savoir ce qu'il y a dedans et ce qu'on peut faire avec !!!!

  18. #18
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    124
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 124
    Points : 48
    Points
    48
    Par défaut
    Oki merci, je vais suivre tes conseils.
    Merci pour l'aide!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.net] Question sur conception
    Par arno2000 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/04/2006, 08h35
  2. [XML]Question pour transport de données
    Par JCD_31 dans le forum XQUERY/SGBD
    Réponses: 6
    Dernier message: 21/03/2006, 22h04
  3. [XML] Questions de syntaxe
    Par ghohm dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 03/11/2005, 12h08
  4. [Strategie][GUI]Petite question de conception
    Par bischof dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 26/10/2004, 22h31
  5. [Struts][struts-config.xml] question sur l element action
    Par SEMPERE Benjamin dans le forum Struts 1
    Réponses: 3
    Dernier message: 08/10/2004, 16h25

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