JAXB 是否始终忽略 @XmlType/propOrder 中未指定的“额外”元素?

2024-01-10

如果我有一个带有注释的类

@XmlType(name = "someDTO", propOrder = { "firstField", "secondField", })

但 XML(例如来自 SOAP 响应)看起来像

<return><firstField>a</firstField><secondField>b</secondField><thirdField>c</thirdField></return>

我的对象仍然会填充firstField和secondField,而thirdField将被忽略。

为什么是这样?情况会一直如此吗?如果存在额外字段,是否有办法阻止对象创建?


Some JAXB (JSR-222) http://jcp.org/en/jsr/detail?id=222如果映射到 XML 元素的属性未包含在实现中,那么实现将会抱怨propOrder. propOder on @XmlType不用于控制包含/排除哪些元素。

排除属性的选项

  1. 如果您想排除少于一半的属性,那么我建议您标记您想要排除的属性@XmlTransient.
  2. 如果您想排除一半以上的属性,那么我建议使用@XmlAccessorType(XmlAccessType.NONE)并注释您想要包含的属性。

了解更多信息

  • http://blog.bdoughan.com/2012/04/jaxb-and-unmapped-properties.html http://blog.bdoughan.com/2012/04/jaxb-and-unmapped-properties.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAXB 是否始终忽略 @XmlType/propOrder 中未指定的“额外”元素? 的相关文章

随机推荐