sql >> Base de Datos >  >> RDS >> Oracle

¿Por qué y cuándo se requiere JAXBElement en JAXB?

Hay algunos casos de uso donde un JAXBElement se requiere:

  1. Un elemento es a la vez nillable="true" y minOccurs="0" . En este caso, ¿qué significa null? en el campo mapeado/media de la propiedad? Cuando la propiedad es JAXBElement un valor nulo significa que el elemento no está presente y un JAXBElement envolver nulo significa un elemento XML con xsi:nil="true" .
  2. 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í.
  3. Hay una estructura de elección donde foo o bar pueden ocurrir elementos y son del mismo tipo. Aquí un JAXBElement es requerido porque simplemente se encuentra con un String el valor no es suficiente para indicar qué elemento debe ordenarse.
  4. Un elemento con xsi:nil se 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.