Marshalling an Imixs Data object
The JAXB runtime framework provides marshall and unmarshall operations. Marshalling is the process of converting instances of JAXB-annotated classes to XML representations. Likewise, unmarshalling is the process of converting an XML representation to a tree of objects. The following example shows how to marshal an Imixs XMLItemCollection into a XML Stream.
.....
// create an simple ItemCollection with some data....
ItemCollection itemCol=new ItemCollection();
itemCol.replaceItemValue("txtTitel", "Hello world");
itemCol.replaceItemValue("numAge", 40);
itemCol.replaceItemValue("keyVisible", true);
// convert the ItemCollection into a XMLItemcollection...
XMLItemCollection xmlItemCollection= XMLItemCollectionAdapter.putItemCollection(itemCol);
// marshal the Object into an XML Stream....
StringWriter writer = new StringWriter();
JAXBContext context = JAXBContext.newInstance(XMLItemCollection.class);
Marshaller m=context.createMarshaller();
m.marshal(xmlItemCollection,writer);
System.out.println(writer.toString());
.....
The next example shows how to unmarshal a XML Stream into a Imixs XML Data Object:
public void readStream(InputStream isXML) throws Exception {
ItemCollection itemCollection;
XMLItemCollection entity;
// extract item collections from request stream.....
JAXBContext context = JAXBContext.newInstance(EntityCollection.class);
Unmarshaller u = context.createUnmarshaller();
EntityCollection ecol = (EntityCollection) u.unmarshal(isXML);
......
Note: The JAXBContext must always match the XMLRoot Class to be marshaled or unmarshalled.