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 :

[Castor] une exception de castor:The field critere appears twice in the descriptor


Sujet :

Persistance des données Java

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 35
    Points : 23
    Points
    23
    Par défaut [Castor] une exception de castor:The field critere appears twice in the descriptor
    salut,
    j'utilise le castor comme parseur mais lors de l'execution de mon programme une exception que je n'arrive pas a corriger qui est la suivante :
    org.exolab.castor.mapping.MappingException: Nested error: org.exolab.castor.mapping.MappingException: The field critere appears twice in the descriptor for balises.Bronze

    je veux que dans la balise broze existe deux nom de critere qui sont de meme classe

    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    <mapping>
      <description>Basic mapping example</description>
     
       <class name="balises.Famille" >
      <map-to xml="famille"/>
       <field name="bronze" type="balises.Bronze">
        <bind-xml name="Bronze"/>
        </field >
     
    </class>
    <class name="balises.Bronze">
     
     <field name="critere" type="balises.Critere">
        <bind-xml name="critere"/>
        </field >
    <field name="critere" type="balises.Critere">
        <bind-xml name="critere1"/>
        </field >
     
     
    </class>
     
     
    <class name="balises.Critere">
    <field name="img" location="critere" >
     
    <bind-xml name="img"/>
     </field >
     
    </class>
     
    <class name="balises.img">
    <field name="src" location="img">
     
    <bind-xml name="src"/>
     </field >
    <field name="alt" location="img">
     
    <bind-xml name="alt"/>
     </field >
     
     
     
    </class>
    </mapping>
    mon xml est comme suivant:
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <famille>
    <bronze>
    <critere1>
    <img>
    <alt>aa</alt>
    </img>
    </critere1>
    <critere2>
    <img>
    <src>zz</src>
    </img>
    </critere2>
    </famille>
    mais je n'arrive pas a le faire deux field de meme classe
    svp aidez moi

  2. #2
    Membre actif
    Avatar de foucha
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 121
    Points : 251
    Points
    251
    Par défaut re
    Apparemment c'est vraiment deux et seulement deux criteres que tu veux donc tu ne veux pas utiliser de collection?

    Mettre deux attributs critere1 et critere2 dans ta classe Bronze devrait résoudre ton probleme. Il y a aussi une faute de frappe dans les <bind-xml name="critere"/> vu le xml que tu attends => critere1 et critere2.

    ++
    Foucha.

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 35
    Points : 23
    Points
    23
    Par défaut
    salut merci pour votre reponse,
    tout d'abord je n'ai pas compris collection parceque je suis debutante a cette langage
    mais est ce qu'ilya une methode pour garder un seul critere dans la classe et je change juste le nom dans le xsd et la structuration de ses sous elements car j'ai plusieurs criteres ce n'est pas deux seulement c'est just pour expliquer la situation j'ai met deux,
    c'est pour ça j'ai essayé de changer leur nom(<bind-xml name="critere1"/>
    ce n'est pas une faute de frappe

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 35
    Points : 23
    Points
    23
    Par défaut
    Salut est ce que vous trouvez que la seul solution est de mettre deux attributs critere1 et critere2 dans ma classe Bronze devrait la seule résoudre mon probleme parce que je cherche une autre solution mais je ne trouve pas
    quelq'un trouvez une solution?

  5. #5
    Membre actif
    Avatar de foucha
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    121
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 121
    Points : 251
    Points
    251
    Par défaut collection
    Tu peux avoir une collection de criteres dans ta classe, un vector par exemple. Dans castor, tu spécifies que ce field est un vector.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <field name="Numerotelephone" type="ObjetXML.Telephone" collection="vector">
           <bind-xml name="telephone"/>
        </field>

    cf doc castor ou http://home.tele2.fr/bobremy/code_so...va_castor.html

    ++
    Foucha.

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/12/2012, 17h39
  2. erreur :"une exception s'est produite"
    Par leborg dans le forum ASP
    Réponses: 11
    Dernier message: 02/03/2004, 16h09
  3. [JSP] Affichage numéro de ligne d'une exception
    Par PhoneKilleR dans le forum Servlets/JSP
    Réponses: 12
    Dernier message: 23/09/2003, 15h59
  4. Réponses: 2
    Dernier message: 28/08/2003, 01h00
  5. Réponses: 3
    Dernier message: 01/11/2002, 15h30

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