mapping – 我可以为java.util.Map自定义JAXB @XmlElementWrapper元素

我正在尝试学习使用Map with 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>

有没有办法改变“入口”,“关键”,“价值”元素名称?

我试过使用@XmlElements,@ XMLElement,但我刚收到错误.

最佳答案 如果希望更好地控制Map属性的XML表示,则需要使用XmlAdapter.有关更多详情,请参阅

> http://bdoughan.blogspot.com/2010/07/xmladapter-jaxbs-secret-weapon.html

我已经在MOXy JAXB实现中输入了一个增强请求来处理它:

> https://bugs.eclipse.org/322423

点赞