Если есть способ, как это сделать, я хотел бы знать самый элегантный. Вот вопрос: - Предположим, у вас есть абстрактный класс Z - У вас есть два класса, унаследованных от Z: с именами A и B.
Вы маршалируете любой экземпляр (A или B) следующим образом:
JAXBContext context = JAXBContext.newInstance(Z.class);
Marshaller m = context.createMarshaller();
m.marshal(jaxbObject, ...an outputstream...);
В полученном XML вы видите, какой это был экземпляр (A или B).
Теперь, как вы демаршалируете
JAXBContext jc = JAXBContext.newInstance(Z.class);
Unmarshaller u = jc.createUnmarshaller();
u.unmarshal(...an inputstream...)
Я получаю UnmarshalException с сообщением
«Описание исключения: дескриптор с корневым элементом по умолчанию {
} <корневой тег, например, A или B> не найден в проекте] и ни разу не удалили? PS. Я знаю, что там есть дублированный код .... скоро он будет убран :)