Какой контекст XML-схемы генерируется сигнатурой метода, например "JAXBElemet<Xyz> createXyz (Xyz xyz)" ObjectFactory, с помощью xjc?

Я заметил, что simpleType или complexType определены, и типы используются в объявлениях нескольких элементов в файле схемы, simpleType или complexType генерируют сигнатуру метода как "JAXBElemet createXyz(Xyz xyz)". Но я не уверен, что это коренная причина.

1 ответ

Чтобы упорядочить объект в XML, JAXB необходимо знать имя используемого элемента XML. Он получает это либо из (а) @XmlRootElement аннотации к классу, или (б), оборачивая объект в JAXBElement, который содержит имя элемента.

Если XJC генерирует класс без @XmlRootElementто фабричные методы для этого класса в ObjectFactory вместо этого будет использовать JAXBElement упаковщики, чтобы предоставить необходимую информацию для сортировки.

Затем вы можете спросить, почему XJC решает генерировать @XmlRootElement для некоторых классов, но не для других, но об этом уже спрашивали на SO, так что иди и посмотри вокруг.

Другие вопросы по тегам