默认XML元素

时间:2014-10-30 17:54:00

标签: java xml jaxb annotations

我有以下课程:

    private String larquivoid;
    private String oper;
    private String type;


    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = Settings.NUMERIC_FIELD_VALUE;
    }

    @XmlValue
    public String getLarquivoid() {
        return larquivoid;
    }

    public void setLarquivoid(String larquivoid) {
        this.larquivoid = larquivoid;
    }


    @XmlAttribute
    public String getOper() {
        return oper;
    }

    public void setOper(String oper) {
        this.oper = oper;
    }

type是我不想在我的xml请求中使用的属性。这给出了通常的问题:如果一个类具有@XmlElement属性,则它不能具有@XmlValue属性。

如何让我的类型只是这个类的一个属性?

1 个答案:

答案 0 :(得分:2)

出了什么问题?

默认情况下,未映射的属性被视为使用@XmlElement进行注释。这就是您看到错误的原因。

如何解决?

排除少于一半的属性

如果您需要排除少于一半的类属性,那么您可以使用@XmlTransient单独注释它们。

排除超过一半的属性

如果您需要排除超过一半的属性,那么我建议使用@XmlAccessorType(XmlAccessType.NONE)为您的班级添加注释。这将导致仅将带注释的属性视为已映射。