我可以为java.util.Map自定义JAXB @XmlElementWrapper元素吗? [英] Can I customize JAXB @XmlElementWrapper elements for a java.util.Map

查看:176
本文介绍了我可以为java.util.Map自定义JAXB @XmlElementWrapper元素吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试学习使用Map与Jaxb。
我这样做了:

I'm trying to learn to use Map with Jaxb. I did this:

@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元素名称?

Is there any way to change the "entry","key","value" element names?

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

I've tried to use @XmlElements, @XmlElement but I just got errors.

推荐答案

如果想要更好地控制Map属性的XML表示,则需要使用XmlAdapter。有关详细信息,请参阅:

You will need to use an XmlAdapter if you want finer control over the XML representation of a Map property. For more details see:

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

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

I have entered an enhancement request to handle this in the MOXy JAXB implementation:

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

这篇关于我可以为java.util.Map自定义JAXB @XmlElementWrapper元素吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆