2013-12-16 5 views
3

У меня есть структура, какJAXB множественного наследования propOrder

public class Grandpa... 

public class Father extends Grandpa... 

public class Son extends Father... 

Я хочу Маршалл его в файл с propOrder аннотацией.

Так что я могу использовать @XmlTransient на дедушке и установить propOrder в классе отца, но Как я могу применить propOrder для всех 3 классов?

Как я понимаю, подход «@ XmlTransient» подходит только для одного суперкласса и одного дочернего класса?

ответ

1

Если вы укажете @XmlTransient в классе JAXB, вы удалите его из иерархии наследования и его свойства считаются частью его дочерних элементов. Это означает, что если вы отметите Father как переходный период, вы можете включить его свойства в propOrder для Son. Если вы отметите Grandpa и Father в качестве переходного периода, то вы можете включить свойства обоих классов в propOrder для Son.

Без @XmlTransient вы все равно можете использовать propOrder, но в этом propOrder вы можете указать только те свойства, которые соответствуют этому классу. Это соответствует упорядочению элементов, которые встречаются с расширенными сложными типами, сначала появляются унаследованные свойства.

Для получения более подробной информации

+0

Спасибо! Я прочитал много ваших статей, прежде чем спрашивать :) «Если вы отметите Дедушку и Отца как преходящие, тогда вы можете включить свойства обоих классов в propOrder for Son». , но в этом случае и не может использовать proporder на объекте Отца, а на объект дедушки? Итак, в этом случае я могу просто упорядочить поля экземпляров класса Сон? –

+0

@EugeneKisly - Это правильно. Это поведение, которое вы ищете? –

+0

Нет, я ищу объекты для заказа в объектах Отца, объекты дедушки и объекты Сон. –

Смежные вопросы