Bonjour,

Voilà mon problème,

J'ai plusieurs fichiers xsd (8 en tout). Ils ont des balises qui portent le même nom mais n'ont pas le même contenu : ex: <D_ROOT>
Un fichiers est commun aux autres common_type.xsd. Lui ne me pose aucun soucis.

L'arborescence ressemble à ceci

resources/test/
- bckp.xsd
- common.xsd
- dir1/a.xsd
- dir1/b.xsd
- dir1/c.xsd
- dir1/d.xsd
- dir1/e.xsd
- dir2/f.xsd

J'utilise jaxb avec maven.
J'ai spécifié mon outputDirectory et mon schemaDirectory.
Tant que je n'ai que les fichiers bckp et common. La génération se passe sans soucis.

Si je rajoute les .xsd dans les sous dossier, ca plante, en me disant que les balises comme D_ROOT sont déjà définies.

Ma première idée étaient de générer chaque dossier dans des package différents.
Mais comme a, b, c, d, et e ont tous un D_ROOT. Ça posera problème.
Et puis de toute manière je n'ai pas réussis avec un .xjb à les faire générer dans des packages différents.

Pour essayer de comprendre j'ai simplifié en ne laissant qu'un seul fichier dans dir1 et le fichier commun et le bckp.
voici le .jxb utilisé :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:jxb="http://java.sun.com/xml/ns/jaxb" version="2.1">
 
	<jxb:bindings schemaLocation="./Bckp.xsd">
		<jxb:schemaBindings>
			<jxb:package name="packagename.generated.bckp"></jxb:package>
		</jxb:schemaBindings>
	</jxb:bindings>
 
	<jxb:bindings schemaLocation="./dir1/a.xsd">
		<jxb:schemaBindings>
			<jxb:package name="packagename.generated.dir1.a"></jxb:package>
		</jxb:schemaBindings>
	</jxb:bindings>
</jxb:bindings>
Si je ne met que le premier binding (et que je supprime le fichier dans dir1) ça fonctionne. mes classes issues de Bckp sont bien générées où je veux.
Par contre avec le deuxième... à nouveau l'erreur... D_ROOT déjà définie.... ><

Voici la partie de mon pom.xml :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
...
        <groupId>org.codehaus.mojo</groupId>
	<artifactId>jaxb2-maven-plugin</artifactId>
	<version>1.6</version>
	<executions>
		<execution>
			<id>myId</id>
			<goals>
				<goal>xjc</goal>
			</goals>
			<configuration>
				<!-- The schema directory or xsd files. -->
				<schemaDirectory>${basedir}/resources/test</schemaDirectory>
				<bindingDirectory>${basedir}/resources/test</bindingDirectory>
 
				<outputDirectory>${basedir}/src</outputDirectory>
				<clearOutputDir>false</clearOutputDir>
 
			</configuration>
		</execution>
	</executions>
....
Donc voilà... je ne sais pas trop comment m'en sortir...
Le mieux serait peut être de générer des classes différentes en fonction des différents xsd, mais pour le moment ça reste encore assez obscure ^^'

Si quelqu'un à une idée, elle serait la bienvenue, merci pour votre aide