Existem alguns casos de uso em que um
JAXBElement
É necessário:- Um elemento é tanto
nillable="true"
eminOccurs="0"
. Neste caso, o quenull
na média do campo/propriedade mapeada? Quando a propriedade éJAXBElement
um valor nulo significa que o elemento não está presente e umJAXBElement
envolver nulo significa um elemento XML comxsi:nil="true"
. - Existem 2 elementos globais com o mesmo tipo complexo nomeado. Como as classes JAXB correspondem a tipos complexos, é necessário capturar qual elemento raiz foi encontrado. Para obter mais detalhes, consulte este artigo Eu escrevi.
- Há uma estrutura de escolha em que
foo
oubar
elementos podem ocorrer e eles são do mesmo tipo. Aqui umJAXBElement
é necessário porque simplesmente encontrar umaString
value não é suficiente para indicar qual elemento deve ser empacotado. - Um elemento com
xsi:nil
é encontrado no documento que contém atributos. Neste exemplo, o objeto correspondente a esse elemento ainda pode ser desempacotado para conter os valores de atributo, mas JAXBElement ainda pode indicar que o elemento era nulo.