Feeds

A practical guide to JAXB 2.0

Take a peek at its new features

  • alert
  • submit to reddit

Internet Security Threat Report 2014

Unmarshalling an XML Document

In this section we shall unmarshal the example XML document, catalog.xml. In the JAXBUnMarshaller.java class create a JAXBContext object, which provides a JAXB context for implementing JAXB binding framework operations. A JAXBContext object is initialised with a colon-separated list of Java package names, which consist of schema-derived classes and user annotated classes.

JAXBContext jaxbContext = JAXBContext.newInstance("generated");

Create an Unmarshaller object, which is used to convert an XML document to a Java object.

Unmarshaller unMarshaller = jaxbContext.createUnmarshaller();

If the application were a JAXB 1.0 application, we would have set the Unmarshaller to be validating using setValidating()method. The setValidating() method has been deprecated in JAXB 2.0. Schema validation in JAXB 2.0 is performed using JAXP 1.3 validation API. Create a SchemaFactory object and create a Schema object from the SchemaFactory object. Set the schema on the Unmarshaller object. Error handling in JAXB 2.0 is implemented using the ValidationEventHandler interface. To add error handling to the example application, create a class CustomValidationEventHandler that implements the ValidatonEventHandler interface. Create a ValidationEventHandler object and set the ValidationEventHandler object on the Unmarshaller object.

Unmarshal using the unmarshal() method, which returns a parameterized JAXBElement object. The parameter type is CatalogType in the example application.

JAXBElement<CatalogType> catalogElement =(JAXBElement<CatalogType>) unMarshaller.unmarshal(xmlDocument); 

Obtain a CatalogType object from the JAXBElement object.

CatalogType catalog=catalogElement.getValue();

Retrieve the journalTitle and publisher values. Obtain a parameterized list of parameter type JournalType. Iterate over the List object and obtain a parameterized list of parameter type ArticleType for each of the JournalType objects. Iterate over the parameterized list of parameter type ArticleType and output values for edition, title and author.

To run the JAXBUnMarshaller.java application in the Eclipse project JAXB2, right-click on the JAXBUnMarshaller.java application and select Run As>Run. Output generated by running the application in Eclipse is shown in Figure 7.

Output from Unmarshalling

Marshalling an XML Document

In this section we shall marshal an XML document, catalog.xml. In the JAXBMarshaller.java class create a JAXBContext object with the procedure similar to the previous section. Create a Marshaller object, which is used to marshal a Java object to an XML document.

Marshaller marshaller = jaxbContext.createMarshaller();

To produce formatted output, set the Marshaller property jaxb.formatted.output to true.

marshaller.setProperty("jaxb.formatted.output",new Boolean(true)); 

Next, create a Java object representation of the XML document to be marshalled. Create an ObjectFactory object, which is used to initialise the Java object

ObjectFactory factory = new ObjectFactory();

Create a CatalogType object, which represents root element catalog.

CatalogType catalog = factory.createCatalogType();

Set the journalTitle and publisher attributes of root element catalog. Create a JournalType object, which represents a journal element. Get a list of parameter type JournalType from the CatalogType object and add the JournalType object to the List object.

JournalType journal = factory.createJournalType();
List<JournalType> journalList = catalog.getJournal();
journalList.add(journal); 

Security for virtualized datacentres

More from The Register

next story
Microsoft WINDOWS 10: Seven ATE Nine. Or Eight did really
Windows NEIN skipped, tech preview due out on Wednesday
Business is back, baby! Hasta la VISTA, Win 8... Oh, yeah, Windows 9
Forget touchscreen millennials, Microsoft goes for mouse crowd
Apple: SO sorry for the iOS 8.0.1 UPDATE BUNGLE HORROR
Apple kills 'upgrade'. Hey, Microsoft. You sure you want to be like these guys?
ARM gives Internet of Things a piece of its mind – the Cortex-M7
32-bit core packs some DSP for VIP IoT CPU LOL
Microsoft on the Threshold of a new name for Windows next week
Rebranded OS reportedly set to be flung open by Redmond
Lotus Notes inventor Ozzie invents app to talk to people on your phone
Imagine that. Startup floats with voice collab app for Win iPhone
'Google is NOT the gatekeeper to the web, as some claim'
Plus: 'Pretty sure iOS 8.0.2 will just turn the iPhone into a fax machine'
prev story

Whitepapers

Forging a new future with identity relationship management
Learn about ForgeRock's next generation IRM platform and how it is designed to empower CEOS's and enterprises to engage with consumers.
Storage capacity and performance optimization at Mizuno USA
Mizuno USA turn to Tegile storage technology to solve both their SAN and backup issues.
The next step in data security
With recent increased privacy concerns and computers becoming more powerful, the chance of hackers being able to crack smaller-sized RSA keys increases.
Security for virtualized datacentres
Legacy security solutions are inefficient due to the architectural differences between physical and virtual environments.
A strategic approach to identity relationship management
ForgeRock commissioned Forrester to evaluate companies’ IAM practices and requirements when it comes to customer-facing scenarios versus employee-facing ones.