Skip to main content
Jump to: navigation, search

EclipseLink/Examples/MOXy/JaxbRuntime

< EclipseLink‎ | Examples‎ | MOXy
Revision as of 14:57, 22 October 2007 by Blaise.doughan.oracle.com (Talk | contribs) (New page: == Create the JAXB Context (Metadata) == The first thing that needs to be done in an JAXB application is to create the JAXBContext. '''Code Example''' <br>Class[] classes = new Class[4]; ...)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Create the JAXB Context (Metadata)

The first thing that needs to be done in an JAXB application is to create the JAXBContext.

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);

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 Data Objects

Below is an example of manipulating the Data Objects using the static classes. Note that there are JavaBean type accessors on the static interfaces.

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

Marshal the Data Objects

The following code segment demonstrates how to marshal DataObjects wrapped in a commonj.sdo.helper.XMLDocument back to XML.

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

Back to the top