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 :

[JaxB]Personnaliser la génération des classes


Sujet :

Persistance des données Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut [JaxB]Personnaliser la génération des classes
    Bonjour,
    j'utilise jaxb pour générer des fichiers java (en grands nombres) à partir d'un fichier xsd (que je peux modifier à loisir).
    Seulement, j'ai rencontré deux problèmes:
    1) Les restrictions suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xs:restriction base="xs:int">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="1000" />
    </xs:restriction>
    ne sont pas prises en comptent dans mes getters et setter, ce qui est regrettable.
    2) Plus génant la restriction la restriction suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xs:restriction base="xs:long">
      <xs:minInclusive value="0" />
      <xs:maxInclusive value="300000" />
    </xs:restriction>
    ne tient toujours pas compte de la restriction, mais transforme mon long en int dans la classe java générée.

    Pour le premier problème, c'est à priori un comportement normal, dont on parle ici.
    Néanmoins, j'ai cru comprendre qu'on pouvait personnaliser la génération, mais je n'ai pas su déterminer s'il était possible de modifier les méthodes générés (pour avoir un getter et un setter avec vérification des min-max par exemple). Mais ceci n'est pour l'instant pas un problème bloquant.
    Pour le second problème, qui lui me gène beaucoup plus, il y a t'il moyen pour le coup d'empêcher jaxb de transtyper ma donnée? Vous me direz que c'est mon modèle de base qui est mauvais (mettre un long avec un intervalle qui entre dans un int) et je vous l'accorde mais je ne peux pas vraiment changer le modèle existant (il faut que le long reste un long pour des besoins de mapping avec les classes existantes du modèle). En gros Jaxb ne tient pas compte de mes intervalles comme je le veux, mais la seule action (changement de type) qu'il fait m'embête.
    De quel coté faut-il que je creuse pour éviter celà?

    Merci par avance!

  2. #2
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 10
    Points : 9
    Points
    9
    Par défaut
    Bon, j'ai partiellement résolu mon problème grâce à une annotation jaxb qui permet (à priori, mais je dois encore creuser le fonctionnement de ces balises) de "forcer" jaxb à convertir un élément en un type particulier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <xs:simpleType>
      <xs:annotation>
        <xs:appinfo>
          <jxb:javaType name="long" />
        </xs:appinfo>
      </xs:annotation>
      <xs:restriction base="xs:long">
        <xs:minInclusive value="0" />
        <xs:maxInclusive value="300000" />
      </xs:restriction>
    </xs:simpleType>
    Bon dans ce cas précis, jaxb me met mon type en "Long" et non en "long" mais ce n'est pas vraiment un problème vu que le cast est automatique entre le type et la classe.
    Pour ce qui est des getters et setters qui tiennent comptent des restrictions, je n'ai pas trouvé de solutions.
    Je laisse le thread ouvert encore jusqu'à ce soir au cas où quelqu'un à une idée sur le sujet, et après je classe ça en résolu!
    Bonne journée à vous!

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

Discussions similaires

  1. [JAXB] Génération des classes Java à partir d'un schéma
    Par Edta dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/11/2013, 10h22
  2. Réponses: 8
    Dernier message: 16/09/2009, 16h20
  3. [JAXB] Après génération des classes problème avec AccessType
    Par GabriHell dans le forum Persistance des données
    Réponses: 3
    Dernier message: 17/09/2008, 11h52
  4. [JAXB] problème de génération des classes
    Par mog83 dans le forum Persistance des données
    Réponses: 1
    Dernier message: 08/06/2008, 12h43
  5. [JAXB][XSD] Problème lors de la génération des classes
    Par charlot44 dans le forum Persistance des données
    Réponses: 4
    Dernier message: 22/06/2005, 16h10

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