Если у меня есть класс (A), который содержит несколько свойств одного типа (интерфейс B).
Я использовал предложение в http://jaxb.java.net/guide/Mapping_interfaces.html, чтобы использовать комбинацию @XmlRootElement и @XmlAnyElement для решения проблемы интерфейса:
public interface B {...}
public class A {
...
@XmlAnyElement
public B getFirstB(){...}
@XmlAnyElement
public B getSecondB(){...}
}
// some concrete implementations of B
@XmlRootElement
public class BImpl implements B {...}
@XmlRootElement
public class AnotherBImpl implements B {...}
Я получаю следующее:
<a>
<bImpl/>
<anotherBImpl/>
</a>
Но я хочу различать свойства. Как мне получить:
<a>
<firstB>
<bImpl/>
</firstB>
<secondB>
<anotherBImpl/>
</secondB>
</a>
Поскольку свойства не являются коллекциями, я не могу использовать @ XmlElementWrapper.
Я не хочу менять код, если его можно избежать.
Любые мысли приветствуются. Маршаллинг в JAXB кажется очень сложным.