Из списка значений ключа для атрибута ключ = значение - PullRequest
3 голосов
/ 13 ноября 2011

У меня вопрос по поводу JAXB.В основном у меня есть эти два класса:

Element {
  String name
  List<Attribute> attributes;
}

Attribute {
  String key
  String value
}

Конечно, с геттерами и сеттерами и с JAXB XmlRootElement.

XML, сгенерированный из этого:1008 * Но то, что я ищу, выглядит примерно так:

<element id="1">
    <name>My Element</name>
</element>

То есть для каждого экземпляра атрибута я хочу, чтобы ключ = значение (как атрибут)

это возможно в JAXB?

С уважением, Мортен

1 Ответ

1 голос
/ 13 ноября 2011

Я не думаю, что это будет работать со списком. Но есть альтернатива, использующая

  • Карта и
  • @ XmlAnyAttribute

Ваш пример:

  @XmlRootElement
  public static class Element
  {
    @XmlElement
    String             name;

    @XmlAnyAttribute
    Map<QName, Object> map;
  }

  {
    //
    Element element = new Element();
    element.name = "a wonderful name";
    element.map = new HashMap<QName, Object>();
    element.map.put( new QName( "id" ), "1" );
    element.map.put( new QName( "other" ), "2" );
  }

Результат этого:

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<element id="1" other="2">
    <name>a wonderful name</name>
</element>

С наилучшими пожеланиями!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...