Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Warum und wann ist JAXBElement in JAXB erforderlich?

Es gibt einige Anwendungsfälle, in denen ein JAXBElement ist erforderlich:

  1. Ein Element ist sowohl nillable="true" und minOccurs="0" . Was bedeutet in diesem Fall null auf dem abgebildeten Feld/Eigenschaft bedeuten? Wenn die Eigenschaft JAXBElement ist ein Nullwert bedeutet, dass das Element nicht vorhanden ist und ein JAXBElement Wrapping null bedeutet ein XML-Element mit xsi:nil="true" .
  2. Es gibt 2 globale Elemente mit demselben benannten komplexen Typ. Da in JAXB Klassen komplexen Typen entsprechen, wird eine Möglichkeit benötigt, um zu erfassen, welches Root-Element angetroffen wurde. Weitere Einzelheiten finden Sie in diesem Artikel Ich habe geschrieben.
  3. Es gibt eine Auswahlstruktur, in der entweder foo oder bar Elemente können vorkommen und sie sind vom gleichen Typ. Hier ein JAXBElement ist erforderlich, da einfach auf einen String gestoßen wird -Wert reicht nicht aus, um anzugeben, welches Element gemarshallt werden soll.
  4. Ein Element mit xsi:nil wird in dem Dokument gefunden, das Attribute enthält. In diesem Beispiel kann das Objekt, das diesem Element entspricht, immer noch entmarshallt werden, um die Attributwerte zu halten, aber JAXBElement kann immer noch angeben, dass das Element null war.