Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "EclipseLink/Examples/MOXy/JaxbRuntime"

m
m (linked to elug, fixed code sample style)
Line 3: Line 3:
  
 
'''Code Example'''
 
'''Code Example'''
<br>Class[] classes = new Class[4];
+
Class[] classes = new Class[4];
<br>classes[0] = AddressType.class;
+
classes[0] = AddressType.class;
<br>classes[1] = ContactInfo.class;
+
classes[1] = ContactInfo.class;
<br>classes[2] = CustomerType.class;
+
classes[2] = CustomerType.class;
<br>classes[3] = PhoneNumber.class;
+
classes[3] = PhoneNumber.class;
<br>JAXBContext jaxbContext = JAXBContext.newInstance(classes);
+
JAXBContext jaxbContext = JAXBContext.newInstance(classes);
 +
 
 +
 
 +
See [[Introduction_to_XML_Projects_(ELUG)#How_to_Use_JAXB_Context|How to Use JAXB Context]] in the ''[[EclipseLink/UserGuide|EclipseLink User's Guide]]'' for details.
  
 
== Unmarshal the XML Document ==
 
== Unmarshal the XML Document ==

Revision as of 14:04, 31 January 2008

Create the JAXB Context (Metadata)

The first thing that needs to be done in an JAXB application is to create the JAXBContext. To ensure the EclipseLink JAXB runtime is used see Specifying the EclipseLink JAXB Runtime.

Code Example

Class[] classes = new Class[4];
classes[0] = AddressType.class;
classes[1] = ContactInfo.class;
classes[2] = CustomerType.class;
classes[3] = PhoneNumber.class;
JAXBContext jaxbContext = JAXBContext.newInstance(classes);


See How to Use JAXB Context in the EclipseLink User's Guide for details.

Unmarshal the XML Document

JAXB is used to manipulate XML data. The following code demonstrates how to unmarshal an XML document using the statically generated classes see Generating Java Source from an XML Schema.

Code Example
File file = new File("../Resource/bin/Customer-data.xml");
StreamSource source = new StreamSource(file);
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
JAXBElement jaxbElement = unmarshaller.unmarshal(source, CustomerType.class);
CustomerType customer = (CustomerType) jaxbElement.getValue();

Modify the Objects

Below is an example of manipulating the objects.

Code Example
PhoneNumber homePhoneNumber = new PhoneNumber();
homePhoneNumber.setNumberType("home");
homePhoneNumber.setValue("(613) 555-3333");
customer.getContactInfo().getPhoneNumber().add(homePhoneNumber);

Marshal the Objects

The following code segment demonstrates how to marshal the objects back to XML.

Code Example
Marshaller marshaller = jaxbContext.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(jaxbElement, System.out);

Copyright © Eclipse Foundation, Inc. All Rights Reserved.