code: public Object unmarshalRootElement(Reader inStream, BaseXmlTrxMessageIn soapTrxMessage) throws Exception
      {
      	String packageName = null;
      	String bindingName = null;
          try {
              // create a JAXBContext capable of handling classes generated into
              // the primer.po package
              packageName = (String)((TrxMessageHeader)soapTrxMessage.getMessage().getMessageHeader()).get(SOAPMessageTransport.JIBX_PACKAGE_NAME);
              bindingName = (String)((TrxMessageHeader)soapTrxMessage.getMessage().getMessageHeader()).get(SOAPMessageTransport.JIBX_BINDING_NAME);
              if (packageName != null)
              {
                  Object obj = null;
                  IUnmarshallingContext u = JibxContexts.getJIBXContexts().getUnmarshaller(packageName, bindingName);
                  if (u == null)
                      return null;
                  synchronized(u)
                  {   // Since the marshaller is shared (may want to tweek this for multi-cpu implementations)
                      obj = u.unmarshalDocument( inStream, bindingName);
                  }
  
                  return obj;
              }
  //+        } catch (XMLStreamException ex)  {
  //+            ex.printStackTrace();
          } catch (JiBXException ex)  {
              ex.printStackTrace();
              throw new Exception("Error: " + ex.getMessage() + " binding: " + bindingName + " package: " + packageName);
          }
  
          return null;
      }
docs: Create the root element for this message.
  You must override this.
  @return The root element.