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.
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>2.3.0</version>
                <configuration>
                    <extensions>
                        <extension>org.apache.cxf.xjcplugins:cxf-xjc-dv:2.3.0</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>
                                    <bindingFile>classpath:/schemas/configuration/security.xjb</bindingFile>
                                    <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>