Может ли JAXB распараллелить XML в соответствии со структурой моего объекта?

Моя структура объекта не сильно отличается от структуры XML. Просто хочу изменить его для одного элемента. У меня есть такая структура XML

<Parent>
    <Child1></Child1>
    <Child2></Child2>
    <Child3></Child3>
    <Child3></Child3>
    <Child3></Child3>
</Parent>

и его эквивалентный класс JAXB выглядит так

    @XmlRootElement(name="Parent")
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "Parent_Type")
    public class Parent {
        protected List<Child1Type> child1;
        protected List<Child2Type> child2;
        protected List<Child3Type> child3;
    }

Но в соответствии с требованием модели базы данных я хочу, чтобы список Child3 находился в разделе Child1. Это поможет мне сохранить XML с помощью Hibernate.

public class Child1 {
    protected List<Child3Type> child3;
}

Как я могу настроить его с помощью JAXB? Или я должен использовать afterUnmarshal, чтобы сделать это вручную?


person Himanshu Yadav    schedule 01.08.2012    source источник
comment
Вас может заинтересовать @XmlIDREF: blog.bdoughan .com/2010/10/   -  person bdoughan    schedule 01.08.2012
comment
@BlaiseDoughan Я только что обновил ожидаемую объектную модель. Здесь Child1 нужен список Child3. Извините за ошибку копирования и вставки.   -  person Himanshu Yadav    schedule 01.08.2012


Ответы (1)


Я думаю, что это невозможно для моего требования. Я написал логику преобразования в методе afterUnmarshal(), чтобы преобразовать обычный unmarshal в преобразование в соответствии с моими потребностями.

person Himanshu Yadav    schedule 06.08.2012