我在Java中有User类。当我想取消封送时,我得到带有<UserIn>
根元素的xml,当我要进行封送时,我应该将<UserOut>
成为XML根元素。如果我提供@XmlRootElement("UserIn")
,则它不是动态的,并且始终是UserIn根。有什么办法可以在类上做动态根元素吗?谢谢。
答案 0 :(得分:1)
您可以创建两个扩展您的User类的类,然后根据您是否在解组中进行编组来使用特定的子类。
例如,对于一个类User:
public class User {
@XmlElement
private String value;
public User() { }
public User(String value) {
this.value = value;
}
}
您可以拥有UserIn:
@XmlRootElement(name = "UserIn")
@XmlAccessorType(XmlAccessType.FIELD)
public class UserIn extends User {
public UserIn() { }
public UserIn(String value) {
super(value);
}
}
和UserOut:
@XmlRootElement(name = "UserOut")
@XmlAccessorType(XmlAccessType.FIELD)
public class UserOut extends User {
public UserOut() { }
public UserOut(String value) {
super(value);
}
}
在需要的地方提供适当的类,您将使其与所需的输入或输出配合使用。