Могу ли я настроить элементы JAXB @XmlElementWrapper для java.util.Map - PullRequest
4 голосов
/ 10 августа 2010

Я пытаюсь научиться использовать карту с Jaxb. Я сделал это:

@XmlElementWrapper(name = "phoneNumbers", nillable = true)
private Map<String, PhoneNumber> phoneNumbers;

и результат был:

 <xs:element nillable="true" name="phoneNumbers">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="entry" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="key" minOccurs="0" type="xs:string"/>
              <xs:element name="value" minOccurs="0" type="PhoneNumberType"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

Есть ли способ изменить имена элементов "entry", "key", "value"?

Я пытался использовать @XmlElements, @XmlElement, но только что получил ошибки.

1 Ответ

2 голосов
/ 10 августа 2010

Вам нужно будет использовать XmlAdapter, если вы хотите более точно контролировать XML-представление свойства Map.Для получения дополнительной информации см .:

Я ввел запрос на расширение для обработки этого в реализации MOXy JAXB:

...