Hay algunos casos de uso donde un JAXBElement se requiere:
- Un elemento es a la vez
nillable="true"yminOccurs="0". En este caso, ¿qué significanull? en el campo mapeado/media de la propiedad? Cuando la propiedad esJAXBElementun valor nulo significa que el elemento no está presente y unJAXBElementenvolver nulo significa un elemento XML conxsi:nil="true". - Hay 2 elementos globales con el mismo tipo complejo con nombre. Dado que en las clases JAXB corresponden a tipos complejos, se necesita una forma de capturar qué elemento raíz se encontró. Para obtener más detalles, consulte este artículo yo escribí.
- Hay una estructura de elección donde
fooobarpueden ocurrir elementos y son del mismo tipo. Aquí unJAXBElementes requerido porque simplemente se encuentra con unStringel valor no es suficiente para indicar qué elemento debe ordenarse. - Un elemento con
xsi:nilse encuentra en el documento que contiene atributos. En este ejemplo, el objeto correspondiente a ese elemento aún se puede desorganizar para contener los valores de los atributos, pero JAXBElement aún puede indicar que el elemento era nulo.