Динамически добавлять значение к аннотации XMLRootElement или XMLElement, используя JAXB

1

В настоящее время я создаю следующий вывод XML:

<pizzas>
    <pizza>
        <id>ffab8c72-bace-4748-b010-a06d1b13ad84</id>
        <name>Erna</name>
        <description>Robust med kant</description>
        <price>69.0</price>
        <toppings></toppings>
    </pizza>
</pizzas>

Я хотел бы иметь идентификационные данные в элементе XML-вывода. Подобно:

<pizzas>
    <pizza id="ffab8c72-bace-4748-b010-a06d1b13ad84">
        <name>Erna</name>
        <description>Robust med kant</description>
        <price>69.0</price>
        <toppings></toppings>
    </pizza>
</pizzas>

Текущий вывод создается путем сортировки по ArrayList, который содержит элементы пиццы. Класс, содержащий этот список, аннотируется следующим образом:

@XmlRootElement(name = "pizzas")
@XmlAccessorType(XmlAccessType.FIELD) 

и сам ArrayList аннотируется с помощью: @XmlElement (name = "pizza")

- Таким образом, аннотация ArrayList - это тот, который мне нужно изменить. Но как в мире я это делаю :-) - я взглянул на @XMLElementRef, подумал о том, как динамически обновлять @XMLElement, но насколько я могу видеть его имя Строка должна быть статичной/постоянной. @XMLWrapper также поймал мой взгляд.... но но...

Кроме того, для информации. Каждый элемент пиццы аннотируется как:

@XmlRootElement(name = "pizza")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = { "id", "name", "description", "price", "toppings" })

Я надеюсь, что кто-то здесь, на Stackoverflow, сможет помочь мне с хорошим советом: -D

Ждем вас от вас.

С уважением/Ларс Бинчонг

Теги:
arraylist
jaxb
annotations

1 ответ

4
Лучший ответ

Вы можете просто аннотировать ваше свойство id с помощью @XmlAttribute.

  • 2
    фантастика .... это помогло. Оооо, чудеса XML и JAXB. Большое спасибо! :-D

Ещё вопросы

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