Я пытаюсь демаршалировать XML.
Вот как выглядит мой XML
1
abc
.
.
.
Я пытаюсь получить идентификатор и имя в Obj123. Однако когда я запускаю команду демаршалинга, я получаю следующую ошибку.
An Error: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://tempuri.org/", local:"DeviceInventory2Response"). Expected elements are (none)
Мой код в основном классе выглядит следующим образом:
Obj123 myObj123 = (Obj123) unmarshaller.unmarshal(inputSource);
А мой класс для Obj123 выглядит так:
package com.myProj.pkg;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlRootElement(name="Obj123")
public class Obj123 {
private String Id;
private String Name;
public String getId() {
return Id;
}
public String getName() {
return Name;
}
}
Я думал, установив свой XMLRootElement, я смогу пропустить первые две строки моего XML, но, похоже, этого не происходит. Есть идеи?
Изменить:
Вот как устроен мой JAXB-контекст:
JAXBContext jaxbContext = JAXBContext.newInstance();
Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
Obj123 obj123 = (Obj123) unmarshaller.unmarshal(xmlStreamReader);
Подробнее здесь: https://stackoverflow.com/questions/204 ... s-are-none