Я пытаюсь преобразовать словарь FIX XML в объектную модель с помощью Xstream. Механизм @XStreamAlias работает, однако есть ли способ использовать
другой класс Java для элементов XML с тем же именем, но в другой позиции в дереве (другой xpath).
Например, элементы «поле» существуют в /fix/header/field и имеют только два атрибута («имя» и «обязательный»):
Но элементы «поля» также существуют в /fix/fields/field и имеют разные атрибуты («число», «имя» и «тип»):
Использование класса XStreamAlias с комбинацией всех атрибутов работает, но это не очень красиво — смешивание типов определений полей в одно
Код: Выделить всё
@XStreamAlias("field")
public static class FixFieldInfo
{
@XStreamAsAttribute
public String name;
@XStreamAsAttribute
public String required;
@XStreamAsAttribute
public String number;
@XStreamAsAttribute
public String type;
В идеале я мог бы создать один класс для полей первого типа и другой класс для полей второго типа. Есть ли что-то вроде указания полного xpath внутри аннотации псевдонима?
Например: @XStreamAlias("/fix/header/field") и @XStreamAlias("/fix/fields/field) ") решило бы мою проблему.
Подробнее здесь:
https://stackoverflow.com/questions/791 ... ough-xpath