2016-06-09 5 views
0

Я пытаюсь сделать unmarshal пользовательский xml для java-объекта выдает следующее исключение.JAXB - Unmarshalling custom xml throws javax.xml.bind.UnmarshalException

javax.xml.bind.UnmarshalException: неожиданный элемент (uri: "http://test.neps.com/jrx", local: "uirx"). Ожидаемые элементы < {http://test.neps.com/jrx} человек>

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; 
    } 
} 

Пожалуйста, предложить некоторые исправления для этого.

ответ

0

Ваш корневой элемент (элемент верхнего уровня) равен <jrx:uirx>, а не <jrs:person>. Вам нужно создать что-то для сопоставления с этим элементом верхнего уровня.

@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; 
    } 

} 
Смежные вопросы