xjc command for JAXB applications
Use the Java Architecture for XML Binding (JAXB) tools to generate Java classes from an XML schema with the xjc schema compiler tool.
JAXB is an XML-to-Java binding technology that enables transformation between schema and Java objects and between XML instance documents and Java object instances. JAXB technology consists of a runtime API and accompanying tools that simplify access to XML documents. Use JAXB APIs and tools to establish mappings between Java classes and XML schema. An XML schema defines the data elements and structure of an XML document. JAXB technology provides a runtime environment to allow us to convert your XML documents to and from Java objects. Data stored in an XML document is accessible without the need to understand the XML data structure.
We can generate fully annotated Java classes from an XML schema file using the JAXB schema compiler, xjc command-line tool. Use the xjc schema compiler tool to start with an XML schema definition (XSD) to create a set of JavaBeans that map to the elements and types defined in the XSD schema. Once the mapping between XML schema and Java classes exists, XML instance documents can be converted to and from Java objects through the use of the JAXB binding runtime API. The resulting annotated Java classes contains all the necessary information that the JAXB runtime requires to parse the XML for marshaling and unmarshaling. Use the resulting JAXB classes within JAX-WS applications or in your non-JAX-WS Java applications for processing XML data.
The wsimport, wsgen, schemagen and xjc command-line tools are not supported on the z/OS platform. This functionality is provided by the assembly tools provided with WebSphere Application Server running on the z/OS platform. Read about these command-line tools for JAX-WS applications to learn more about these tools.
WAS provides JAX-WS and Java Architecture for XML Binding (JAXB) tooling. The wsimport, wsgen, schemagen and xjc command-line tools are located in the app_server_root\bin\ directory in WAS traditional.The xjc and schemagen commands are located in the app_server_root\jaxb\bin\ directory in Liberty profile. On some occasions, the artifacts generated by both the tooling provided by WAS and the JDK support the same levels of the specifications. In general, the artifacts generated by the JDK tools are portable across other compliant runtime environments. However, it is a best practice to use the tools provided with this product to achieve seamless integration within the WAS environment and to take advantage of the features that may be only supported in WAS. To take advantage of JAX-WS and JAXB V2.2 tooling, use the tools provided with the application server located in...
app_server_root/bin
bprac
In addition to using the xjc tool from the command line, we can invoke this JAXB tool from within the Ant build environments. Use the com.sun.tools.xjc.XJCTask Ant task from within the Ant build environment to invoke the xjc schema compiler tool. To function properly, this Ant task requires that you invoke Ant using the ws_ant script.
If we are using the xjc Ant task, use the destdir parameter to specify the destination directory instead of the target option. Specifying the target option when using the xjc Ant task causes an error..
Syntax
The command-line syntax is:
(Windows)
app_server_root\bin\xjc.bat [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...(UNIX)app_server_root/bin/xjc.sh [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...(iSeries)app_server_root/bin/xjc [options] <schema_file/URL/directory_or_jar> ...[-b<binding_information>] ...If a directory is specified, all schema files in the directory are compiled.
Parameters
The schema file/URL JAR file name or location of the directory is the only parameter required. The following parameters are optional for the xjc command:
- -b <file_name or directory>
- External JAX-WS or JAXB binding files. We can specify multiple JAX-WS and JAXB binding files using the -b option; however, each file must be specified with its own -b option. If a directory is specified, **/*.xjb is searched.
- -catalog <file_name>
- Catalog file to resolve external entity references. It supports the TR9401, XCatalog, and the OASIS XML Catalog formats.
- -classpath <path>
- Location of the class files.
- -d <directory>
- Specifies where to place the generated output files.
- -dtd
- To treat the input as XML Document Type Definition (DTD). This option is unsupported and experimental.
- -extension
- Enable custom extensions for functionality not specified by the JAXB specification. Use of the extensions can result in applications that are not portable or do not interoperate with other implementations.
- -help
- Display the help menu.
- -httpproxy <[user[:password]@]<proxyhost>:<proxyport>>
- Specifies an HTTP or HTTPs proxy.
- -httpproxyfile <file_name>
- This parameter is similar to the -httpproxy parameter, but takes the argument in a file to protect the password.
- -no-header
- To suppress the generation of a file header with a timestamp.
- -npa
- To suppress the generation of the **/package-info.java package level annotation.
- -nv
- To not perform a strict validation of the input schemas.
- -p <package_name>
- Target package.
- -quiet
- To suppress the output from the xjc tool.
- -relaxng
- To treat the input as REgular LAnguage for XML Next Generation (RELAX NG). This option is unsupported and experimental.
- -readOnly
- That the generated files are in read-only mode.
- -relaxng-compact
- To treat the input as REgular LAnguage for XML Next Generation (RELAX NG) compact syntax. This option is unsupported and experimental.
- -target <version>
- To generate output to conform to the specified level of the JAX-WS specification. Specify 2.0 or 2.1 for the tool to generate compliant code for the JAXB 2.0 or JAX-WS 2.1 specification respectively. Specify 2.1 for the tool to generate compliant code for the JAXB 2.1 specification. The default target version is 2.2 and generates compliant code for the JAXB 2.2 specification.
- The target option is required for Liberty profile.
- -verbose
- To output messages about what the compiler is doing.
- -version
- Prints the version information. If we specify this option, only the version information is output and typical command processing does not occur.
- -wsdl
- To treat the input as a Web Services Description Language (WSDL) file and compile schemas inside the WSDL. This option is unsupported and experimental.
- -xmlschema
- To treat the input as a World Wide Web Consortium (W3C) XML schema. This value is the default.
Use JAXB for XML data binding schemagen command for JAXB applications Web services specifications and APIs