【问题标题】:JAXB - Unmarshalling custom xml throws javax.xml.bind.UnmarshalExceptionJAXB - 解组自定义 xml 会引发 javax.xml.bind.UnmarshalException
【发布时间】:2016-06-09 12:38:12
【问题描述】:

我正在尝试将自定义 xml 解组为 java 对象会引发以下异常。

javax.xml.bind.UnmarshalException:意外元素(uri:“http://test.neps.com/jrx”,本地:“uirx”)。预期元素是 http://test.neps.com/jrx}person>

xml,

<?xml version="1.0" encoding="UTF-8"?>
<jrx:uirx xmlns:jrx="http://test.neps.com/jrx">
  <jrx:person>
    <jrx:ulement name="id" type="Integer" value=""/>
    <jrx:ulement name="name" type="String" value=""/>
    </jrx:person>
    </jrx:uirx>

java 对象,

@XmlRootElement(name = "person", namespace = "http://test.neps.com/jrx")
public class Person {

    private int id;
    private String name;

    @XmlElement
    public void setId(int id) {
        this.id = id;
    }
    @XmlElement
    public void setName(String name) {
        this.name = name;
    }
}

请为此提出一些修复建议。

【问题讨论】:

    标签: java xml jaxb


    【解决方案1】:

    您的根元素(顶级元素)是&lt;jrx:uirx&gt; 而不是&lt;jrs:person&gt;。您需要创建一些东西来映射到该顶级元素。

    @XmlRootElement(name = "uirx", namespace = "http://test.neps.com/jrx")
    public class Uirx {
    
        private Person person;
    
        @XmlElement
        public Person getPerson() {
            return person;
        }
    
        public void setPerson(Person person) {
            this.person = person;
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 2014-11-28
      • 2013-11-15
      • 1970-01-01
      相关资源
      最近更新 更多