J'essaie de générer des classes Java à partir d'un schéma XSD en utilisant la commande xjc
fournie avec JAXB.JAXB: utilise local schemaLocation pour générer des classes Java
Mon schéma ressemble:
<xs:schema xmlns="..."
xmlns:ext="http://schemas.myco.com/ext" ... >
<xs:import namespace="http://schemas.myco.com/ext"
schemaLocation="http://myco.com/schemas/ext.xsd"/>
...
Le problème est que l'URI schemaLocation
n'existe pas et je ne peux pas modifier le fichier XSD. C'est pourquoi le processus de génération échoue avec des erreurs telles que "src-resolve: Impossible de résoudre le nom 'ext: Resource_Type' en un 'composant' définition de type ''.
Existe-t-il un moyen de forcer JAXB à utiliser une copie locale du fichier ext.xsd pendant le processus sans modifier le fichier XSD d'origine?
Je vous remercie. Je vais essayer les deux. Je ne connaissais pas le premier (j'espère qu'il est compatible avec jaxb2-maven-plugin), et j'ai essayé d'utiliser un catalogue avec une entrée comme "PUBLIC namespace_url local_path" sans aucun succès (tout bon lien dans ce sens?). Merci. –
Selon http://confluence.highsource.org/display/MJIIP/User+Guide votre première alternative proposée semble fonctionner avec maven-jaxb2-plugin. Je posterai mes résultats dès que possible. –
Cela ne fonctionne pas. Je l'ai posé comme une nouvelle question liée à la compilation épisodique ici http://stackoverflow.com/questions/4510818/jaxb-episodic-compilation-with-maven –