これはjaxb2で可能かしら。<element>または<element2>のいずれかになり得るxmlがありますが、いつかは表示されません。これらは両方ともString型であり、Javaクラスの同じプロパティにマップする必要があります。jaxb2にそれを構成する方法はありますか?
ありがとうチャーリー
あなたはそのようなことをすることができます:
@XmlElements({
@XmlElement(name="command", type=CommandVO.class, namespace="http://chains.projetox.com.br/"),
@XmlElement(name="script", type=ScriptVO.class, namespace="http://chains.projetox.com.br/")
})
private List<SubjectVO> commands;
どこ:
public interface SubjectVO {}
public class CommandVO implements SubjectVO {}
public class ScriptVO implements SubjectVO {}
XMLにシリアル化して戻そうとするとどうなりますか?どの要素名が使用されますか?
XMLからJavaにデシリアライズするだけでよいと仮定すると、フィールドの代わりにセッターメソッドにアノテーションを付けることでこれを行うことができます。
public class Bean {
private String value;
@XmlElement(name="element")
public void setA(String value) {
this.value = value;
}
@XmlElement(name="element2")
public void setB(String value) {
this.value = value;
}
}
JAXBがセッターを正しく認識するためにgetA()
、メソッドを追加する必要がある場合もあります。getB()