Има няколко случая на употреба, при които JAXBElement
се изисква:
- Елементът е едновременно
nillable="true"
иminOccurs="0"
. В този случай какво означаваnull
на картографираното поле/свойство означава? Когато свойството еJAXBElement
нулева стойност означава, че елементът не присъства иJAXBElement
wrapping null означава XML елемент сxsi:nil="true"
. - Има 2 глобални елемента с едно и също име комплексен тип. Тъй като в JAXB класовете съответстват на сложни типове, е необходим начин за улавяне на кой основен елемент е срещнат. За повече подробности вижте тази статия Написах.
- Има структура за избор, където или
foo
илиbar
елементи могат да се появят и те са от един и същи тип. Ето единJAXBElement
се изисква, защото просто се натъква наString
стойността не е достатъчна, за да посочи кой елемент трябва да бъде маршалиран. - Елемент с
xsi:nil
се среща в документа, който съдържа атрибути. В този пример обектът, съответстващ на този елемент, все още може да бъде демаршалиран, за да задържи стойностите на атрибута, но JAXBElement все още може да показва, че елементът е нулев.