JAXB: Comment changer XJC-classes générées noms lors de l'attribut type est spécifié dans XSD?
Je suis un débutant de JAXB et je vais avoir ennuyeux problèmes lors de la génération des classes Java avec xjc. Je suis fourni avec un XSD comme ceci:
<xs:element name="item" type="itemType"/>
...
<xs:complexType name="itemType">
<xs:attribute name="id" type="xs:string" use="required">
...
</xs:complexType>
et xjc est de générer une classe appelée ItemType.java
, mais je veux le nom Item.java
. C'est, je veux les classes générées comme si le XSD était comme ça:
<xs:element name="item">
<xs:complexType>
<xs:attribute name="id" type="xs:string" use="required">
...
</xs:complexType>
</xs:element>
Il n'y aura pas de réutilisation de itemType sur tout autre élément, c'est juste les gens qui construit l'XSD aime de cette façon.
Je pense qu'il y a peut-être une façon de le faire avec des liaisons personnalisées, mais je n'ai toujours pas trouvé comment.
Toute aide?
Grâce,
Miguel
- Pouvez-vous partager votre dernière ligne de commande que vous avez utilisé?
Vous devez vous connecter pour publier un commentaire.
JAXB fournit deux manières d'y parvenir:
1. Schéma En Ligne Anntotations
Vous pouvez utiliser JAXB schéma des annotations pour le contrôle de la classe des noms.
2. Externe De Liaison De Fichier
Cette personnalisation peut également être fait via et externe de liaison de fichier:
La xjc la ligne de commande serait:
Bien, j'ai enfin trouvé comment le faire. Mon externe de liaison de fichier est:
et
xjc
de commande doit être exécutée avec-extension
option.J'ai trouvé la solution dans cette page:
http://weblogs.java.net/blog/kohsuke/archive/2006/03/why_does_jaxb_p.html (MODIFIER: lien obsolète)
https://community.oracle.com/blogs/kohsuke/2006/03/03/why-does-jaxb-put-xmlrootelement-sometimes-not-always (nouveau lien)
Ce qui concerne,
Miguel
C'est l'externe de liaison de fichier que j'ai utiliser pour renommer un complextype. Compile avec cxf est wsdl2java.