2.5.1 csmxjc command (Binding from the XML Schema to Java)
- Organization of this subsection
(1) Format
csmxjc [option [option argument] ] ... Input schema document
You can omit the option. Always specify the option before the schema document.
(2) Function
Schema compiler for binding from the XML Schema to Java.
(3) Options
- -b external-binding-file
-
Specifies one external binding file. For details on how to specify names of the external binding files, see the subsection Characters that can be specified in the file name or directory name of the command, path delimiting characters, and how to specify a path.
If this option is omitted, a java class will be generated without using external binding files.
- -d output-destination-directory
-
Specifies the output destination directory of the Java source. For details on how to specify the directory name, see Characters that can be specified in the file name or directory name of the command, path delimiting characters, and how to specify a path.
If omitted, the current directory will become the output destination directory.
- -mark-generated
-
Adds the @javax.annotation.Generated annotation in the generated Java source.
If omitted, the @javax.annotation.Generated annotation is not added in the Java source.
The format of the @javax.annotation.Generated annotation added in the Java source is as follows. Different values are entered in the part indicated in italics, when the Java source is generated.
@Generated(value = "com.cosminexus.jaxb.tools.xjc.Driver", date = "yyyy-MM-ddTHH:mm:ssRFC822 timezone")
The following table describes the elements of the @javax.annotation.Generated annotation and the values set up in XML Processor:
Table 2‒5: Elements of the @javax.annotation.Generated annotation and values set up in XML Processor Element name
Explanation
Value
value
Completely modified class name of the schema compiler
com.cosminexus.jaxb.tools.xjc.Driver
date
Date and time when the Java source was generated from the schema
yyyy-MM-ddTHH:mm:ssRFC822 timezone#
(4) Input schema document
You can specify one file name for the input schema document. For details on the characters that can be specified in the file name, path delimiting characters, and how to specify a path, see Characters that can be specified in the file name or directory name of the command, path delimiting characters, and how to specify a path.
(5) Output Java source
- Format of the output Java source
-
The following figure gives an overview of the format of Java source output by the schema compiler.
Figure 2‒10: Overview of the format of Java source output by the schema compiler The details of format of the output Java source are as follows:
-
Header
Header indicating that the file was generated by Cosminexus XML Processor. The following header is inserted:
// // This file was generated by Cosminexus XML Processor 09-50 // Any modifications to this file will be lost upon recompilation of the source schema. //
-
package statement and import statement code
The package statement and import statement required in the source is generated. The contents of the generated package statement or import statement depend on the schema document entered in the schema compiler.
-
javadoc
The contents of javadoc are generated automatically for the class generated from the input schema document. The contents of javadoc are dependent on the schema document entered in the schema compiler.
-
Java class
The class generated from the input schema document is generated. The contents of the Java class depend on the schema document entered in the schema compiler.
-
- Package and output destination of the output Java source
-
The package name and output destination of the output Java source is as follows:
The package name of the output Java source is determined as per the following priority order. The output destination of the Java source is determined by assuming the current directory or the directory specified in the -d option as the standard directory, and applying the following rules in an order:
-
When the package name is specified by custom binding
The package name specified in custom binding (jaxb:package element) becomes the package name of the output Java source. Convert the package name to the directory name, and create the directory name under the standard directory. Output the Java source in the created directory.
-
When the targetNamespace attribute is specified in the input schema document
From the target namespace described in the input schema document, generate the package name of the output Java source based on the JAXB specifications. Convert the generated package name to the directory name, and create the directory name under the standard directory. Output the Java source in the created directory.
-
When the package name is not specified by custom binding in the input schema document, and when the targetNamespace attribute is also not specified
The package name of Java source will be generated. Create a directory called generated under the standard directory, and output the Java source in the created directory.
If a Java source with the same name exists in the output destination directory, then that Java source will be overwritten.
-
(6) Return value
- 0:
-
Normal termination.
- Value other than 0:
-
Abnormal termination.
(7) Notes
In Cosminexus 09-80 or later, before you execute the csmxjc command, set the CSMJAXB_VM_OPTS environment variable as follows:
set "CSMJAXB_VM_OPTS=--add-opens java.base/java.lang=ALL-UNNAMED --add-modules=java.activation"