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:
ne sont pas prises en comptent dans mes getters et setter, ce qui est regrettable.
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>
2) Plus génant la restriction la restriction suivante:
ne tient toujours pas compte de la restriction, mais transforme mon long en int dans la classe java générée.
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>
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!
Partager