Ява маршаллер. Использовать значение тега в качестве значения атрибута

1

У меня есть класс

class Header {

    @FCBTag(type="type1") --My custom annotation
    int a = "valueA";
    @FCBTag(type="type2")
    String b = 1;
    @FCBTag(type="type3")
    Boolean c = true;

}

И я хочу настроить этот класс на XML, как это

<Header>
    <a type="type1" value="valueA" />
    <b type="type2" value="1" />
    <c type="type2" value="true" />
</Header>

Является ли это возможным? Существует ли какой-либо адаптер? И как я могу это сделать?

Теги:
marshalling

1 ответ

0

Я реализовал поддержку этого в расширении @XmlPath EclipseLink JAXB (MOXy's). Ниже описано, как вы укажете отображение в своем классе.

import javax.xml.bind.annotation.XmlType;
import org.eclipse.persistence.oxm.annotations.XmlPath;

@XmlAccessorType(XmlAccessType.FIELD)
class Header {

    @XmlPath("a[type='type1']/@value")
    int a = "valueA";

    @XmlPath("b[type='type2']/@value")
    String b = 1;

    @XmlPath("c[type='type3']/@value")
    Boolean c = true;

}

Чтобы получить больше информации

В моем блоге есть полный пример этой функции:

  • 0
    Спасибо, Блейз. Но как я могу сделать с динамическим типом?
  • 0
    @SerzhanBerdibekov - На чем основано значение атрибута type ?
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню