我在使用MOXy解组时没有遇到任何问题。这是XML,我已经解组了。
<eng><shape type="square"><square-specific>dasdasdas</square-specific></shape></eng>但是在编组时,我得到了这个:
<eng><shape><type/><square-specific>dasdasdas</square-specific></shape></eng>以下是我的模型文件:
@XmlRootElement(name="eng")
public class Eng {
private Shape shape;
public void setShape(Shape shape) {
this.shape = shape;
}
@XmlElement
public Shape getShape() {
return shape;
}
}
@XmlDiscriminatorNode("type")
public abstract class Shape {
}
@XmlDiscriminatorValue("square")
public class Square extends Shape {
private String squareSpecificAttribute;
@XmlElement(name="square-specific")
public String getSquareSpecificAttribute() {
return squareSpecificAttribute;
}
public void setSquareSpecificAttribute(String s) {
this.squareSpecificAttribute = s;
}
}这是我的控制器中的方法:
@GET
@Produces(MediaType.APPLICATION_XML)
public Eng get(){
Eng e = new Eng();
Square s = new Square();
s.setSquareSpecificAttribute("dasdasdas");
e.setShape(s);
return e;
}我想我漏掉了什么,知道是什么吗?
谢谢。
发布于 2011-03-07 18:46:58
@XmlDescriminator节点接受XPath。要指明type是一个属性,您可以执行以下操作:
@XmlDescriminatorNode("@type")有关示例,请参阅:
https://stackoverflow.com/questions/5217863
复制相似问题