Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Por que e quando o JAXBElement é necessário no JAXB?


Existem alguns casos de uso em que um JAXBElement É necessário:
  1. Um elemento é tanto nillable="true" e minOccurs="0" . Neste caso, o que null na média do campo/propriedade mapeada? Quando a propriedade é JAXBElement um valor nulo significa que o elemento não está presente e um JAXBElement envolver nulo significa um elemento XML com xsi:nil="true" .
  2. 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.
  3. Há uma estrutura de escolha em que foo ou bar elementos podem ocorrer e eles são do mesmo tipo. Aqui um JAXBElement é necessário porque simplesmente encontrar uma String value não é suficiente para indicar qual elemento deve ser empacotado.
  4. 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.