Istnieje kilka przypadków użycia, w których JAXBElement
jest wymagane:
- Element jest zarówno
nillable="true"
iminOccurs="0"
. W tym przypadku co oznaczanull
na mapowanym polu/właściwości oznacza? Gdy właściwość toJAXBElement
wartość null oznacza, że element nie jest obecny, aJAXBElement
wrapping null oznacza element XML zxsi:nil="true"
. - Istnieją 2 elementy globalne o tym samym nazwanym typie złożonym. Ponieważ klasy JAXB odpowiadają typom złożonym, potrzebny jest sposób na uchwycenie napotkanego elementu głównego. Aby uzyskać więcej informacji, zobacz ten artykuł napisałem.
- Istnieje struktura wyboru, w której albo
foo
lubbar
elementy mogą wystąpić i są tego samego typu. OtoJAXBElement
jest wymagane, ponieważ po prostu napotykaString
wartość nie wystarczy, aby wskazać, który element powinien być zorganizowany. - Element z
xsi:nil
w dokumencie zawierającym atrybuty. W tym przykładzie obiekt odpowiadający temu elementowi może nadal być niezorganizowany, aby przechowywać wartości atrybutów, ale JAXBElement może nadal wskazywać, że element był pusty.