Compilation de plusieurs schémas en différents packages à l'aide de JAXB 2.1
J'ai un CommonTypes.xsd qui je suis, y compris dans mes tous les autres XSDs à l'aide xs:include. Je reçois
Multiple <schemaBindings> are defined for the target namespace ""
lorsque j'essaie de compiler dans différents packages à l'aide de la liaison de fichiers. Veuillez me dire si il existe un moyen de les compiler dans différents paquets. Je suis l'aide de jaxb 2.1
source d'informationauteur Priya
Vous devez vous connecter pour publier un commentaire.
Oui, il y a un moyen.
En supposant que:
Dans le répertoire commun lieu
common.xjb
:Dans le répertoire foo place
foo.xjb
:Dans le
build.xml
fichier, de créer un xjc tâche pour chacune d'elles:Vous devez vous assurer que
common.xsd
a untargetNameSpace
qui est différent defoo.xsd
'stargetNameSpace
.Comme déjà dit par Ben il n'y a aucun moyen de le faire que si elles ont le même espace de noms.
Mais comment le faire si vous avez des espaces de noms différents?
mais assurez-vous de ne pas utiliser le paramètre de ligne de commande -p, car qui va l'emporter sur votre config.
J'ai rencontrer le même problème et je n'ai pas le résoudre, mais je crains qu'il ne peut pas être possible de générer XSD dans différents packages :
de Compilateur Restrictions à la fin de cette page
mais si quelqu'un à trouver du travail là, il suffit de nous en informer veuillez
Je sais que c'est un vieux post, mais, comme il n'y a pas de réponse pour la question exacte, voici ma proposition:
Comme mmoossen expliqué, l'astuce est de préciser les différents espaces de noms pour les XSDs.
Mais, l'ajout d'un
namespace
attribut dans lajxb:bindings
balise ne fonctionne pas:Au lieu de cela, vous avez besoin d'ajouter un
targetNamespace
attribut à laxs:schema
tags de vos XSDs:Une fois cela fait, vous serez en mesure d'avoir 1 externe fichier de personnalisation de l' (.xjb) le fait de déclarer différents
schemaBindings
chacun d'entre eux, éventuellement, à l'aide d'un package différent: