如果我有一个用
注释的类 @XmlType(name = "someDTO", propOrder = {
"firstField",
"secondField",
})
但是 XML(比如来自 SOAP 响应)看起来像
<return><firstField>a</firstField><secondField>b</secondField><thirdField>c</thirdField></return>
我的对象仍将填充 firstField 和 secondField,而忽略 thirdField。
这是为什么?会一直这样吗?如果存在额外的字段,是否有办法阻止创建对象?
最佳答案
一些 JAXB (JSR-222)如果有属性映射到未包含在 propOrder
中的 XML 元素,实现将提示。 @XmlType
上的propOder
不用于控制包含/排除哪些元素。
排除属性的选项
- 如果您想排除少于一半的属性,那么我建议您使用
@XmlTransient
标记您希望排除的属性。 - 如果您希望排除一半以上的属性,那么我建议使用
@XmlAccessorType(XmlAccessType.NONE)
并注释您希望包含的属性。
了解更多信息
关于java - JAXB 是否总是忽略@XmlType/propOrder 中未指定的 'extra' 元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11104697/