SBT plugin to compile an XML Schema with XJC

sbt-xjc An SBT Plugin to compile XML Schemata to JAXB Java sources with XJC


Depend on the plugin: ./project/plugins.sbt. Requires SBT 0.12.x or 0.13.x

addSbtPlugin("org.scala-sbt.plugins" % "sbt-xjc" % "0.8")


By default, all XSDs found under unmanagedResourceDirectories will be compiled. This is repeated in the Compile and Test scopes. The table below show the configuration for the Compile scope; replace with Test to configure that scope.

xjcLibsSeq[ModuleId]jaxb-api 2.1, jaxb-impl and jaxb-xjc 2.1.9 The artifacts to download to run XJC
xjcPluginsSeq[ModuleId]The artifacts to download containing XJC plugins
xjcBindingsSeq[String]Files used to customize JAXB bindings
xjcCommandLineSeq[String]Additional command line, e.g. -verbose -Xfluent-api
xjcJvmOptsSeq[String]Additional JVM command line, e.g. -Djavax.xml.accessExternalSchema=file to allow compilation of schemas consisting of multiple files
sources in (Compile, xjc)Seq[File]${unmanagedResourceDirectories} ** "*.xsd"Input XSD Files sources in (Compile, xjc) <<= sourceDirectory map (_ / "main" / "schema" ** "*.xsd" get)
sourceManaged in (Compile, xjc)File${sourceManaged}/compile/xjc Target for generated files. Should not be shared with other generated files

See the Tests for example builds.

As a convenience, the fluent API settings are provided in SbtXjcPlugin.fluentApiSettings


The timestamps of the source XSD files is compared with the generated files, and if newer these are compiled. This occurs automatically before compilation.


You can troubleshoot problems by inspecting debug logs with > last xjc.

Please use the Issue Tracker here if you find a bug. Do not raise bugs for problems with your schema or with usage of XJC itself.