Я пытаюсь преобразовать приведенную ниже строку XML в объект Java с помощью JAXB и пакета аннотаций oxm persistence oxm.
<output>
<rtEvent>
<eventData name="tcppayload">
<data>111111-000000-111111</data>
</eventData>
<eventData name="text">
<data>ABCD</data>
</eventData>
</rtEvent>
</output>
Однако десериализация не работает.Может кто-то указать, что я могу делать неправильно.
Ниже приведен класс, который я использую для десериализации строки в объект
@XmlRootElement(name = "output")
@XmlAccessorType(XmlAccessType.FIELD)
public class CameraTriggerOutput {
@XmlPath("/rtEvent/eventData[@name=tcppayload]/data/text()")
private String data;
public void toXml() {
try {
JAXBContext ctx = JAXBContext.newInstance(CameraTriggerOutput.class);
Marshaller marshaller = ctx.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(this, System.out);
}
catch (Exception ex) {
ex.printStackTrace();
}
}
}
После запуска я получаю следующий вывод
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><output/>