Я получаю XML-файл от API и хочу иметь возможность сопоставить его непосредственно с Pojo, но структура XML-файла следующая:
И я хочу иметь возможность сопоставить его с объектом, который
String Id;
String title;
String fileType;
String priority;
Я пробовал использовать аннотации XmlPath:
@XmlRootElement(name="xml")
@XmlType(propOrder={"id", "title", "fileType", "priority"})
@XmlAccessorType(XmlAccessType.FIELD)
public class XmlMapTest {
@XmlPath("xml[@name='id']")
private String id;
@XmlPath("xml[@name='title']")
private String title;
@XmlPath("xml[@name='fileType']")
private String fileType;
@XmlPath("xml[@name='priority']")
private String priority;
}
Но я всегда получаю одну и ту же ошибку:
"com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "meta-info" (class hibernateTests.XmlMapTest), not marked as ignorable (0 known properties: ])"
Во всех других примерах, которые я видел, информация берется только из атрибута имени, а не из содержимого.
Можно ли сделать это напрямую?< /p>
Изменить:
Я перешёл с использования Javax XmlMapper как:
XmlMapTest xmlResult = mapper.readValue(xml, XmlMapTest.class);
Для использования:
JAXBContext jc = JAXBContext.newInstance(XmlMapTest.class);
XmlMapTest xmlResult= (XmlMapTest) jc.createUnmarshaller().unmarshal(new StringReader(xml));
И хотя ошибка больше не появляется, все результаты оказываются нулевыми:
----------------------------------------------------------------
Id: null
Title: null
FileType: null
Priority: null
----------------------------------------------------------------
Подробнее здесь: https://stackoverflow.com/questions/788 ... g-and-name