The CXF XJC Maven Plugin

The CXF XJC Maven Plugin is a wrapper around the JAXB XJC tool to handle the XSD -> Java tasks.

There are two targets:

xsdtojava

Defaults into generate-sources phase and outputs to ${project.build.directory}/generated/src/main/java

xsdtojava-tests

Defaults into generate-test-sources phase and outputs to ${project.build.directory}/generated/src/test/java

Parameters

extensions

List of maven artifacts to add to the extension classpath. Each item in the list is a string of groupId:artifactId:version.

xsdOptions

List of XsdOption objects. See below.

sourceRoot/testSourceRoot

For the two targets above, override the default output directory.

The XsdOption object is used to pass specific options and configuration for each XSD file that is to be processed.

xsd

The location of the schema to process.

bindingFile

The location of the JAXB binding file to customize the output.

bindingFilesIt's possible to specify multiple bindingFile options using "bindingFiles" since the 3.2.3 release.

packagename

Specifies the package name to use for the outputted code.

extension

(boolean) Turns on the custom JAXB implementation extensions.

catalog

The location of a catalog file for mapping schema locations.

extensionArgs

List of additional arguements passed to XJC. (ex: -Xlocator)

dependencies

List of files that are examined to determine if subsequent runs of the plugin must re-generate code.

deleteDirs

List of directories that are removed after generation. If you have schemas that generate code that has already been generated, (possibly in a different maven module) you can specify this to have them removed. The preferred method to do this, however, is a binding file with the "skip" flag set on those namespaces.

Example:


            <plugin>
                <groupId>org.apache.cxf</groupId>
                <artifactId>cxf-xjc-plugin</artifactId>
                <version>3.2.3</version>
                <configuration>
                    <extensions>
                        <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:3.2.3</extension>
                    </extensions>
                </configuration>
                <executions>
                    <execution>
                        <id>generate-sources</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>xsdtojava</goal>
                        </goals>
                        <configuration>
                            <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot>
                            <xsdOptions>
                                <xsdOption>
                                    <xsd>classpath:/schemas/wsdl/http.xsd</xsd>
                                    <bindingFile>classpath:/schemas/wsdl/http.xjb</bindingFile>
                                    <catalog>${basedir}/src/main/build-resources/catalog.cat</catalog>
                                </xsdOption>
                                <xsdOption>
                                    <xsd>classpath:/schemas/wsdl/ws-addr.xsd</xsd>
                                    <packagename>org.apache.cxf.ws.addressing</packagename>
                                </xsdOption>
                                <xsdOption>
                                    <xsd>classpath:/schemas/wsdl/addressing.xsd</xsd>
                                    <bindingFile>classpath:/schemas/wsdl/addressing.xjb</bindingFile>
                                </xsdOption>
                                <xsdOption>
                                    <xsd>classpath:/schemas/configuration/security.xsd</xsd>
                                    <bindingFiles>
                                         <bindingFile>classpath:/schemas/configuration/security.xjb</bindingFile>
                                         <bindingFile>classpath:/schemas/configuration/security2.xjb</bindingFile>
                                    </bindingFiles>
                                    <catalog>${basedir}/src/main/build-resources/catalog.cat</catalog>
                                    <extensionArgs>
                                        <extensionArg>-Xdv</extensionArg>
                                    </extensionArgs>
                                </xsdOption>
                                <xsdOption>
                                    <xsd>classpath:/schemas/wsdl/ws-addr-wsdl.xsd</xsd>
                                    <bindingFile>classpath:/schemas/wsdl/ws-addr-wsdl.xjb</bindingFile>
                                    <extension>true</extension>
                                </xsdOption>
                                <xsdOption>
                                    <xsd>classpath:/schemas/wsdl/addressing200403.xsd</xsd>
                                    <bindingFile>classpath:/schemas/wsdl/addressing200403.xjb</bindingFile>
                                </xsdOption>
                            </xsdOptions>
                        </configuration>
                    </execution>
                </executions>
            </plugin>