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

发布于 2024-09-13 20:36:13 字数 889 浏览 1 评论 0原文

我正在尝试学习将 Map 与 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 但出现错误。

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

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

and the result was:

 <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>

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

末蓝 2024-09-20 20:36:13

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

我已输入增强请求以在 MOXy JAXB 实现中处理此问题:

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文