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

2022-09-03 01:44:36

如果我有一个带注释的类

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

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

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

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

这是为什么呢?情况会一直如此吗?有没有办法在存在额外字段时防止创建对象?


答案 1

如果某些属性映射到 XML 元素而未包含在 中,则某些 JAXB (JSR-222) 实现将发生故障。 on 不用于控制包含/排除哪些元素。propOrderpropOder@XmlType

用于排除属性的选项

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

详细信息


答案 2

推荐