2012-11-03 4 views
4

J'essaie de générer des classes Java à partir de l'exemple xsd en utilisant la commande jdk 1.6, xjc. Mais je ne veux pas utiliser d'annotations, c'est-à-dire que je ne veux pas générer de classes Java pour contenir des annotations. Comment puis-je le faire?JAXB génère des classes Java sans annotations

+0

hi sampath pouvait obtenir le code généré sans annotations? Je suis également à la recherche d'une réponse à exactement le même problème. – weima

Répondre

0

En JAXB (JSR-222), la seule représentation standard des métadonnées de liaison XML définies dans la norme est les annotations JAXB. Par conséquent, une option pour générer les classes sans ces annotations est d'utilisation limitée.

Je suis le EclipseLink JAXB (MOXy) mener une nous offrons une représentation XML (et JSON) des métadonnées JAXB comme une extension:

Si vous êtes intéressé par la possibilité de générer ces métadonnées à la place des annotations, veuillez demander une amélioration dans notre base de données de bogues par rapport au composant MOXy:

0

Cette question comporte deux parties:

  • Au moment de la compilation vous devez générer votre code différemment. Vous pouvez écrire un plugin XJC pour le faire.
  • Dans l'exécution, vous devez utiliser l'implémentation JAXB qui fonctionne sans annotations (voir la réponse de Blaise sur cette partie).

Voir cette question sur XJC extensibilité:

XJC - is it extensible?

Vous pouvez écrire un XJC plugin qui remplace complètement la génération de code. Je peux donc imaginer un plugin XJC qui génère des mappages XML pour MOXy au lieu d'annotations dans les classes. Vous pouvez également le faire avec JAXB RI en utilisant un lecteur d'annotation supplémentaire, mais il est beaucoup plus délicat de simplement utiliser MOXy.

Soyez averti, cependant, que l'écriture des plugins XJC avancés peut être assez complexe.

Questions connexes