Characteristics of the "Element" value. 
 The Element value is ready for marshalling or is the
 result of unmarshalling. 
 The Element value represents the element rendering.  Thus it is either
 a JAXBElement or has the @XmlRootElement annotation.  (i.e. it is never a java.lang.String) 
 The Element value is not a JAX-WS object. (i.e. it is not a holder or exception) 
 Characteristics of the "Type" value 
 It is the type value associated with the element value.  (Thus it is either
 the element value or it is value of the JAXBElement 
 The type value is usually the object needed
 for the method signature (i.e. String)
 
 Here is an example for illustration: 
 
 
 ...
 
 
  ..
 
    
 ..
 
 JAXB will generate the following objects:  E1, T2, E3 E1 will have an @XMLRootElement annotation.
  It is "element" and "type" enabled. e2 does not have a generated object.  So it will be
 represented as a JAXBElement that contains an object T2.  The JAXBElement is "element" enabled.
 T2 represents a complexType.  It is only "type" enabled. E3 represents the e3 complexType (it
 does not represent the e3 element).  Thus E3 is "type enabled".
 
 When JAXB unmarshals an object, it will return an "element" enabled object (either a generatated
 object with @XMLRootElement or a JAXBElement). Conversely, you must always marshal "element"
 enabled objects.