Может ли Jaxb маршалировать дочерние элементы без корневого элемента?

Я не уверен, возможен ли следующий вопрос с jaxb, но все же спрошу.

В определенном проекте мы используем jaxb с определенной схемой для создания следующей структуры файла xml.

<aaa>
     <bbb>
        more inner children here
     </bbb>
     <bbb>
        more inner children here
     </bbb>
</aaa>

Мы также используем автоматическую генерацию класса jaxb, которая создает классы :aaa и bbb, где aaa был сгенерирован как @XmlRootElement.

Теперь мы хотим использовать ту же схему в новом проекте, который также будет совместим с предыдущим проектом. Что я хотел бы сделать, так это использовать те же классы, сгенерированные jaxb, без внесения каких-либо изменений в схему, чтобы маршалировать только один объект bbb в xml.

JAXBContext jc = JAXBContext.newInstance("generated");
Marshaller marshaller = jc.createMarshaller();
marshaller.marshal(bbb, writer);

Таким образом, мы получили бы следующий результат:

 <bbb>
    <inner child1/>
    <inner child2/>
   ...
 </bbb>

В настоящее время я не могу этого сделать, так как маршаллер кричит, что у меня нет определенного @XmlRootElement.

На самом деле мы пытаемся избежать разделения схемы на 2 схемы,один только из bbb, а другой, где aaa импортирует bbb.

Заранее спасибо!

9
задан Meny Issakov 6 August 2012 в 06:19
поделиться