Проблема с распаковкой атрибута с классом имени с помощью Xstream

У меня есть узел с атрибутом class. Входной XML:

<Job class="com.test.jobImplementation">
  <Priority>1</Priority>
  ......
</Job>

Класс Java, который представляет XML, аннотирован аннотациями Xstream, выглядит следующим образом:

@XStreamAlias("Job")
public static class Job {

    @XStreamAsAttribute
    @XStreamAlias("class")
    private String implementationClass;

    @XStreamAlias("Priority")
    private Integer priority

}

Когда я пытаюсь десериализовать XML, xstream не возвращает ошибку, не связанную с проблемой. (например, когда я заменяю имя атрибута «класс» на «классы», он работает нормально.)

Я знаю, что атрибут «класс» используется всякий раз, когда XStream не может определить из XML и объявления поля, какой именно тип использовать, но в этом случае я не могу изменить ввод XML, и мне нужно обработать атрибут «класс». .

Любое обходное решение для распаковки атрибута XML с именем «класс» с помощью Xstream?


person Victor Martinez    schedule 07.02.2011    source источник


Ответы (1)


Начиная с XStream 1.3.1, вы можете переопределить эти атрибуты, чтобы разрешить использование имен для ваших собственных.

http://x-stream.github.io/faq.html#Serialization_system_attributes

person Victor Martinez    schedule 10.02.2011