JAXB - 如何在解组时指示重复的节点

时间:2013-10-10 12:47:22

标签: jaxb unmarshalling duplicates

我有一个问题。有没有办法在xml文件中检测重复节点(具有不同的值)?

如果java类看起来像这样(我只是为了简单起见):

@XmlRootElement(name = "PERSON")
@XmlAccessorType(XmlAccessType.FIELD)
public class Person {

    @XmlElement(name = "NAME")
    private String name;

    @XmlElement(name = "SURNAME")
    private String surname;

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSurname() {
        return surname;
    }
    public void setSurname(String surname) {
        this.surname = surname;
    }
}

和输入.xml文件如下所示:

<person>
   <name>John</name>  
   <surname>Smith</surname>  
   <name>Jack</name>  
</person>

在解组过程之后,值'John'被值'Jack'覆盖 有没有办法检测/避免这种情况?
(所以我可以抛出异常或记录这个副本?)

1 个答案:

答案 0 :(得分:0)

此问题的一般解决方案是将XML架构设置为javax.xml.validation.SchemaUnmarshaller的实例,以确保XML与预期输入匹配。

了解更多信息