jaxb - как создать XML из полиморфных классов

я только начал использовать JAXB для вывода XML из объектов java. В моих классах Java существует полиморфизм, который, похоже, не работает в JAXB.

Ниже показано, как я пытался с этим справиться, но в выводе я не ожидал field: fieldA или fieldB.

@XmlRootElement(name = "root")
public class Root {
    @XmlElement(name = "fieldInRoot")
    private String fieldInRoot;
    @XmlElement(name = "child")
    private BodyResponse child;
    // + getters and setters
}

public abstract class BodyResponse {
}

@XmlRootElement(name = "ResponseA")
public class ResponseA extends BodyResponse {
    @XmlElement(name = "fieldA")
    String fieldB;
    // + getters and setters
}

@XmlRootElement(name = "ResponseB")
public class ResponseB extends BodyResponse {
    @XmlElement(name = "fieldB")
    String fieldB;  
    // + getters and setters  
}

Прежде чем я начну придумывать сложные наследования, есть ли хороший подход для этого?

6
задан lukastymo 21 September 2011 в 12:29
поделиться