次のように、jaxb を使用して、Ant スクリプト内の xml スキーマから Java オブジェクト クラスを生成しています。
<!-- 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>
現在、これは 1 つのスキーマ (この例では ff.xsd) に対して見事に機能します。複数のスキーマ (つまり、複数の xsd ファイル) を処理するにはどうすればよいですか?
スキーマごとに個別の Ant タスクを用意しようとしましたが、どういうわけか、Ant が最初のタスクを処理し、次のスキーマの「ファイルは最新です」と言うので、これは機能しません!