Должна ли аннотация @XmlRootElement в JAXB добавлять класс Java в любом случае?
Я не хочу добавлять какие-либо аннотации в класс Java.
Скажите, пожалуйста, какие-либо решения, если таковые имеются.
Вам не нужно использовать аннотацию @XmlRootElement. Вместо этого вы можете обернуть свой корневой объект в экземпляр JAXBElement:
QName qName = new QName(null, "customer"); JAXBElement<Customer> jaxbElement = new JAXBElement<Customer>(qName, Customer.class, customer); marshaller.marshal(jaxbElement, System.out);
Более подробный пример см .:
JAXB Реализации, такие как EclipseLink MOXy (я технический руководитель) также предлагают альтернативные представления метаданных, такие как XML. Для примера проверьте: