Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

EclipseLink/Examples/MOXy/Dynamic/XmlToDynamicEntity

< EclipseLink‎ | Examples‎ | MOXy‎ | Dynamic
Revision as of 12:21, 24 June 2010 by Unnamed Poltroon (Talk) (Unmarshal DynamicEntities from XML)

Overview

In this example you will learn how to unmarshal dynamic entities from XML.

Unmarshal DynamicEntities from XML

The Unmarshaller obtained from the DynamicJAXBContext is a standard unmarshaller, and can be used normally to unmarshal instances of DynamicEntity.

FileInputStream xmlInputStream = new FileInputStream("src/example/dynamic/customer.xml");
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
DynamicEntity customer = (DynamicEntity) unmarshaller.unmarshal(xmlInputStream);

Get Data from the DynamicEntity

DynamicEntity offers property based data access, get("name") instead of getName().

System.out.println(customer.<String>get("name"));

Get Data using DynamicType

Instances of DynamicEntity have a corresponding DynamicType. DynamicType can be used to introspec the DynamicEntity.

DynamicType addressType = jaxbContext.getDynamicType("org.example.Address");
for(String propertyName: addressType.getPropertiesNames()) {
    System.out.println(address.get(propertyName));
}

XML Document

Below is a sample XML document for this example.

<?xml version="1.0" encoding="UTF-8"?>
<customer xmlns="www.example.org">
   <name>Jane Doe</name>
   <address>
      <street>1 Any Street</street>
      <city>Any Town</city>
   </address>
</customer>

Back to the top