首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MOXy进行编组

使用MOXy进行编组
EN

Stack Overflow用户
提问于 2011-03-07 17:22:45
回答 1查看 327关注 0票数 1

我在使用MOXy解组时没有遇到任何问题。这是XML,我已经解组了。

代码语言:javascript
复制
<eng><shape type="square"><square-specific>dasdasdas</square-specific></shape></eng>

但是在编组时,我得到了这个:

代码语言:javascript
复制
<eng><shape><type/><square-specific>dasdasdas</square-specific></shape></eng>

以下是我的模型文件:

代码语言:javascript
复制
@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;
    }
}

这是我的控制器中的方法:

代码语言:javascript
复制
@GET
@Produces(MediaType.APPLICATION_XML)
public Eng get(){
    Eng e = new Eng();
    Square s = new Square();
    s.setSquareSpecificAttribute("dasdasdas");
    e.setShape(s);

    return e;
}

我想我漏掉了什么,知道是什么吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-03-07 18:46:58

@XmlDescriminator节点接受XPath。要指明type是一个属性,您可以执行以下操作:

代码语言:javascript
复制
@XmlDescriminatorNode("@type")

有关示例,请参阅:

  • http://bdoughan.blogspot.com/2010/11/jaxb-and-inheritance-moxy-extension.html
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5217863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档