Existuje několik případů použití, kdy JAXBElement
je vyžadováno:
- Prvek je oba
nillable="true"
aminOccurs="0"
. Co v tomto případě znamenánull
na mapovaném poli/vlastnosti znamená? Když je vlastnostJAXBElement
hodnota null znamená, že prvek není přítomen aJAXBElement
wrapping null znamená prvek XML sxsi:nil="true"
. - Jsou zde 2 globální prvky se stejným názvem komplexního typu. Protože třídy JAXB odpovídají komplexním typům, je zapotřebí způsob, jak zachytit, který kořenový prvek byl nalezen. Další podrobnosti naleznete v tomto článku Napsal jsem.
- Existuje struktura výběru, kde buď
foo
nebobar
prvky se mohou vyskytovat a jsou stejného typu. Zde jeJAXBElement
je vyžadován, protože jednoduše narazí naString
hodnota nestačí k označení prvku, který by měl být zařazen. - Prvek s
xsi:nil
se vyskytuje v dokumentu, který obsahuje atributy. V tomto příkladu může být objekt odpovídající tomuto prvku stále zrušen, aby obsahoval hodnoty atributu, ale JAXBElement může stále indikovat, že prvek byl null.