Bean-To-XML аннотации: как обрабатывать вложенную структуру
Для преобразования bean->xml в веб-сервисы мы используем Aegis из CXF (как я понимаю, он совместим с jaxb).
Это мой тип:
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
(bean-компонент, восстановленный из xml, должен выглядеть следующим образом:
class C{
private int a;
private int b;
private int t1
}
(код клиента интересует только поле t1
из структуры T
). Благодарю.
1 ответ
Решение
Вы могли бы добавить getT1()
а также setT1(int)
в C
и сделать getT()
@XmlTransient
class C {
// snip
/**
* JAXB only
*/
@SuppressWarnings("unused")
@XmlElement
private void setT1(int t1) {
if(t != null) {
t.setT1(t1);
} else {
// TODO
}
}
/**
* JAXB only
*/
@SuppressWarnings("unused")
private int getT1() {
if(t != null) {
return t.getT1(t1);
} else {
// TODO
}
}
}