# maven-jaxb-plugin



## matschbirne (13. Aug 2008)

Hallo,

ich habe ein Problem bei dem ich einfach nicht weiter komme:

Ich habe folgende Dateien (relativ vom Projektpfad):

src/resources/schemata/eingabe/eingabe.xsd
src/resources/schemate/ausgabe/ausgabe.xsd

Dazu habe ich zwei Binding-Dateien:

src/resources/schemata/eingabe/binding.xjb (für die eingabe.xsd)
src/resources/schemate/ausgabe/binding.xjb (für die ausgabe.xsd)

Zuerst mal: Alle Dateien sind syntaktisch korrekt und funktionieren auch!

Ausschnittsweise mal die Dateien:

*ausgabe/binding.xjb*

```
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings schemaLocation="ausgabe.xsd" jaxb:version="2.0"
		xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
		xmlns:xs="http://www.w3.org/2001/XMLSchema">

</jaxb:bindings>
```

*eingabe/binding.xjb*

```
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings schemaLocation="eingabe.xsd" jaxb:version="2.0"
		xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
		xmlns:xs="http://www.w3.org/2001/XMLSchema">

</jaxb:bindings>
```

*pom.xml*

```
<plugin>
		<groupId>com.sun.tools.xjc.maven2</groupId>
		<artifactId>maven-jaxb-plugin</artifactId>
		<executions>
			<execution>
				<goals>
					<goal>generate</goal>
				</goals>
			</execution>
		</executions>
		<configuration>
			<schemaDirectory>${basedir}/src/resources/schemata</schemaDirectory>
			<includeSchemas>
				<includeSchema>eingabe/eingabe.xsd</includeSchema>
				<includeSchema>ausgabe/ausgabe.xsd</includeSchema>			
			</includeSchemas>
			<includeBindings>
				<includeBinding>eingabe/binding.xjb</includeBinding>
				<includeBinding>ausgabe/binding.xjb</includeBinding>
			</includeBindings>
			<generateDirectory>${basedir}/src/jaxb/java</generateDirectory>
		</configuration>
	</plugin>
```

Soweit so gut. Aber sobald ich Maven anhaue passiert folgendes:


```
D:\chkout\xyz\trunk>mvn jaxb:generate
[INFO] Scanning for projects...
[INFO] Searching repository for plugin with prefix: 'jaxb'.
[INFO] ------------------------------------------------------------------------
[INFO] Building Unnamed - xyz:xyz:jar:0.0.1
[INFO]    task-segment: [jaxb:generate]
[INFO] ------------------------------------------------------------------------
[INFO] [jaxb:generate]
=====================
=====================

includeSchemas: 2 : eingabe/eingabe.xsd
[INFO] Compiling file:/D:/chkout/xyz/trunk/src/resources/schemata/ausgabe/a
usgabe.xsd
[ERROR] [ERROR] "file:/D:/chkout/xyz/trunk/src/resources/schemata/eingabe/e
ingabe.xsd" is not a part of this compilation. Is this a mistake f
or "file:/D:/chkout/xyz/trunk/src/resources/schemata/eingabe/binding.xjb"?
[ERROR]   line 4 of file:/D:/chkout/xyz/trunk/src/resources/schemata/eingab
e/binding.xjb
[ERROR]
[INFO] failure in the XJC task. Use the Ant -verbose switch for more details
[INFO] ------------------------------------------------------------------------
[ERROR] FATAL ERROR
[INFO] ------------------------------------------------------------------------
[INFO] unable to parse the schema. Error messages should have been provided
[INFO] ------------------------------------------------------------------------
```

Offensichtlich stört er sich daran, dass in der eingabe/binding.xjb im Attribut "schemaLocation" nicht die ausgabe.xsd enthalten ist. Wie gesagt: Wenn ich nur ein Schema und die entsprechende binding-Datei in die pom.xml schreibe, wird das sauber kompiliert (gilt für beide Schemata). Über die Kommandozeile funktioniert das Ganze übrigens wunderbar:

```
xjc -d c:\temp eingabe\eingabe.xsd -b eingabe\binding.xjb ausgabe\ausgabe.xsd -b ausgabe\binding.xjb
```

Hat jemand eine Idee für mich? :-(


----------



## matschbirne (14. Aug 2008)

Hab's gelöst. Falls das nochmal jemand haben sollte: Updatet das maven-jaxb-plugin auf die neueste Version (in meinem Fall 1.1)

Gruß,
Matschbirne


----------

