我可以为 java.util.Map 自定义 JAXB @XmlElementWrapper 元素吗
我正在尝试学习将 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您希望更好地控制 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: