Wie kann ich mehrere xsd-schemas mit jaxb und die Ameise xjc-task?
Bin ich mit jaxb generieren von java-Objekt-Klasse von xml-schemas in ein Ant-Skript etwa so:
<!-- JAXB compiler task definition -->
<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask"
classpathref="master-classpath"/>
<!-- Generates the source code from the ff.xsd schema using jaxb -->
<target name="option-generate" description="Generates the source code">
<mkdir dir="${generated-src.dir}/${option.dir}"/>
<xjc schema="${config.dir}/ff.xsd" destdir="${generated-src.dir}"
package="${option.package.name}">
<arg value="-Xcommons-lang" />
<arg value="-Xcommons-lang:ToStringStyle=SHORT_PREFIX_STYLE" />
<produces dir="${generated-src.dir}" includes="**/*.java" />
</xjc>
</target>
Nun, das funktioniert hervorragend für ein schema (ff.xsd in diesem Beispiel). Wie kann ich mehrere schemas (d.h. mehrere xsd-Dateien)?
Ich versucht, mit einem separaten ant-task pro schema, aber irgendwie funktioniert das nicht wie Ameise-Prozess die erste Aufgabe und sagt dann, dass die "Dateien sind up-to-date" für die folgenden schemas!
Du musst angemeldet sein, um einen Kommentar abzugeben.
arbeitet mit der JAXB ist Teil des JDK 6 scheint, dass die ANT-task nur Schiffe, die mit der herunterladbaren JAXB aber da JAXB ist Teil des JDK wahrscheinlich nicht eine gute Idee, um die neueste Version der JAXB und fügen Sie den Klassenpfad des JDK, da das bedeutet, dass Sie wahrscheinlich benötigen, zu Durcheinander herum mit classloader-Einstellungen, um die Abholung der Download-version lieber als die version, die innerhalb des JDK.
Können Sie auch einfach die anderen xsd-Dateien in Ihrem Haupt-xsd-Datei mit einem Befehl wie dem folgenden:
xsd
aber, dass die wichtigstenxsd
Datei kann geschachtelte include-Direktiven zu anderenxsd
- Dateien. Dies würde dazu führen, JAXB die verschachteltenxsd
- Dateien, obwohl die oberste Ebene in Ihrem code Punkte nur eine top-level -xsd
. Aber ich habe nicht gemacht, so hätten Sie, um die details zu überprüfen.