Oracle
 sql >> Base de données >  >> RDS >> Oracle

Pourquoi et quand JAXBElement est-il requis dans JAXB ?

Il existe quelques cas d'utilisation où un élément JAXBElement est requis :

  1. Un élément est à la fois nillable="true" et minOccurs="0" . Dans ce cas, qu'est-ce que null sur le terrain cartographié/la propriété signifie ? Lorsque la propriété est JAXBElement une valeur nulle signifie que l'élément n'est pas présent et un JAXBElement envelopper null signifie un élément XML avec xsi:nil="true" .
  2. Il y a 2 éléments globaux avec le même type complexe nommé. Étant donné que dans JAXB, les classes correspondent à des types complexes, un moyen est nécessaire pour capturer quel élément racine a été rencontré. Pour plus de détails, consultez cet article J'ai écrit.
  3. Il existe une structure de choix où soit foo ou bar éléments peuvent se produire et ils sont du même type. Ici un JAXBElement est nécessaire car la simple rencontre d'une String la valeur n'est pas suffisante pour indiquer quel élément doit être marshalé.
  4. Un élément avec xsi:nil est rencontré dans le document qui contient des attributs. Dans cet exemple, l'objet correspondant à cet élément peut toujours être désorganisé pour contenir les valeurs d'attribut, mais JAXBElement peut toujours indiquer que l'élément était nul.