Skip Navigation Links | |
Exit Print View | |
JAXB Wizard and Code-Seeder Palette User's Guide Java CAPS Documentation |
The JAXB wizard enables you to generate and compile JAXB classes for a schema, while not requiring a knowledge of the JAXB XML Binding Compiler (xjc) Tool. The wizard also helps in code completion for generated classes. JAXB code generation and compilation is made part of the project's compilation and build task. Once the JAXB Binding is created, the code seeder Palette actions will help you in using the JAXB generated classes in constructing, marshalling, and unmarshalling
The Code-Seeder Palette (JAXB) Wizard contains the following palette actions.
Figure 1 Palette Menu
The Constructs action generates code to instantiate JAXB objects. This code generation is useful in automating the generation of a series of getter and setter methods, especially when the JAXB object contains a series of nested objects. The code that is generated will not only instantiate the JAXB Object, but will also populate all the nested objects with initial values. This instantiation and population of values and objects can be done by passing a sample XML file. The Sample XML file needs to conform to the XSD/Schema used to generate the JAXB class. When sample XML file is not provided, all the nested JAXB members objects are instantiated.
The Generate JAXB Constructs code dialog box is displayed.
Figure 2 JAXB Constructs Object
Figure 3 Find Class Type
Figure 4 Providing Sample XML File
Figure 5 Successful Method Created
If the sample XML file is not provided, the code generated will not populate the default values (as shown below).
Figure 6 Unpopulated Method
The Marshal palette icon action generates template code to marshal a JAXB object. This provides the ability to convert a Java object tree back into XML data. There is no difference between marshalling a content tree that is created manually using the factory methods and marshalling a content tree that is the result of an unmarshal operation. Clients can marshal a Java content tree back to XML data to a java.io.OutputStream or a java.io.Writer. You must know the Class name of the object you are trying to marshal. You can search for the class using the Find button. The template code can be generated to marshal a JAXB object to a String, OutputStream, File, Writer, or byte array.
Note - The Code-Seeder currently generates code using a single package name in the context path. You may want to edit the code if more than one package name is needed in the context path.
The Generate JAXB Marshal codedialog box is displayed.
Figure 7 JAXB Marshal Object
Figure 8 Select Marshal To
The desired method will be generated (as shown below).
Figure 9 Marshal Generated Method
The Unmarshal palette icon action will generate template code to unmarshal a JAXB object. This allows for any global XML element declared in the schema to be unmarshalled as the root of an instance document. The JAXBContext object allows the merging of global elements across a set of schemas (listed in the contextPath). This means that a client application is able to unmarshal XML documents that are instances of any of the schemas listed in the contextPath. You must know the Class name of the object you are trying to unmarshal. Since each schema in the schema set can belong to distinct namespaces, the unification of schemas to an unmarshalling context should be namespace-independent. You can search for the class using the Find button. The template code can be generated to unmarshal a JAXB object from a String, InputStream, File, Reader, or byte array.
Note - The Code-Seeder currently generates code using a single package name in the context path. You may want to edit the code if more than one package name is needed in the context path.
The Generate JAXB Unmarshal code dialog box is displayed.
Figure 10 Unmarshal Option
Figure 11 Select Unmarshal From
The Unmarshal Method will be generated as shown below.
Figure 12 Unmarshal Method