如何从XML绑定中排除属性

时间:2013-10-29 20:47:18

标签: java xml jaxb

我正在尝试使用JAXB

封送类似于以下内容的类
@javax.xml.bind.annotation.XmlType(propOrder = {"first", "last"})
public class Person
{
    private String first;
    private String last;
    public String getFirst(){
        return first;
    }
    public void setFirst(String first){
        this.first = first;
    }
    public String getLast(){
        return last;
    }
    public void setLast(String last){
        this.first = last;
    }
    public String getName(){
        return this.first + this.last;
    }
}

当我尝试使用:

获取JaxbContext时
JAXBContext.newInstance(Person.class);

我得到以下异常:

com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 182 counts of IllegalAnnotationExceptions
Property name is present but not specified in @XmlType.propOrder
this problem is related to the following location:
    at public java.lang.String myPackage.Person.getName()
    at myPackage.Person

这与此处发布的问题非常相似:

https://www.java.net//node/702784

解决方案要添加的地方

 @XmlTransient

违规方法。但是,我无法编辑java类来更新注释。

任何想法如何超越这个?


我最终使用了一个名为JAXBIntroductions的库,它允许我在运行时临时引入注释,从而缓解问题而不会产生太多开销。 感谢所有看过的人


1 个答案:

答案 0 :(得分:0)

如果你不能编辑它们,为什么不创建Person的新子类并覆盖添加@XmlTransient注释的方法?