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
eingabe/binding.xjb
pom.xml
Soweit so gut. Aber sobald ich Maven anhaue passiert folgendes:
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:
Hat jemand eine Idee für mich? :-(
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
Code:
<?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
Code:
<?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
Code:
<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:
Code:
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:
Code:
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? :-(