1
Для преобразования bean-> xml в webservices мы используем Aegis из CXF (насколько я понимаю, он совместим с jaxb).Аннотации Bean-To-XML: как обрабатывать вложенную структуру
Это мой тип:
class C{
private int a;
private int b;
private T t;
...
}
class T{
private int t1;
private int t2;
}
мне нужно t.t1
поле, чтобы быть на том же уровне в XML как a
и b
в C
(боб восстановленном из XML должен быть таким:
class C{
private int a;
private int b;
private int t1
}
(код клиента интересует только поле t1
от структуры T
).
Ваше решение, вероятно, работает, но я не хочу, чтобы добавить дополнительные публичные методы в мой класс. Это может запутать других разработчиков, если они видят два способа чтения/установки одной переменной: c.getT(). SetT1 (1) и c.setT1(). Конечно, я могу отметить c.setT1() как устаревшее или добавить комментарии, но если это возможно, я бы хотел избежать такого кода. – dbf
@dbf вы также можете сделать эти методы частными. Для этого требуется явно аннотировать их с помощью '@ XmlElement'. – sfussenegger
@ dbf другой возможностью было бы использовать '@ XmlJavaTypeAdapter' и заменить' C' на другой объект (может быть класс, который расширяет или завершает 'C'), который содержит нужные вам свойства. – sfussenegger