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.