Java SimpleFramework是否可以反序列化跳过任意深度?

Java SimpleFramework是否可以反序列化跳过任意深度?,java,xml-parsing,simple-framework,Java,Xml Parsing,Simple Framework,我正在对一些XML进行反序列化,我希望能够轻松地处理该格式稍微不同的版本。我是这种XML的消费者,我无法控制格式以使我的工作更容易。XML的一个版本包含如下元素: <food> <entry name="thing1"> <member>apple</member> </entry> <entry name="thing2"> <member>orange</member>

我正在对一些XML进行反序列化,我希望能够轻松地处理该格式稍微不同的版本。我是这种XML的消费者,我无法控制格式以使我的工作更容易。XML的一个版本包含如下元素:

<food>
  <entry name="thing1">
    <member>apple</member>
  </entry>
  <entry name="thing2">
    <member>orange</member>
  </entry>
</food>

苹果
橙色
我有这样一个带注释的类来解析它:

@Root(strict=false) public static class Food {
    @Attribute public String name;
    @ElementList(entry="member", inline=true) public List<String> members;
}
@Root(strict=false)公共静态类{
@属性公共字符串名称;
@ElementList(entry=“member”,inline=true)公共列表成员;
}
到目前为止还不错。今天,我发现这个XML的生产者可能也会给我这个来表示相同的信息:

<food>
  <name>fruits</name>
  <entry name="thing1">
    <baz>
      <member>apple</member>
    </baz>
  </entry>
  <entry name="thing2">
    <baz>
      <member>orange</member>
    </baz>
  </entry>
</food>

果实
苹果
橙色
该元素现在位于条目和成员之间。如果可能的话,我想要一个可以处理这两种格式的带注释的食物类。这些感觉就像SimpleFramework可以轻松处理的东西,但搜索文档对我没有帮助。我希望这里有人知道答案


如果我必须这样做,我知道我可以用另一种方式检测这个新的模式,然后切换到一组完全不同的带注释的类,但是差异很小,我正试图避免这种情况。

将可能的元素添加到类设置
required=false

顺便说一句,总有一个后备解决方案:实现一个()。

除非我误解了“required=false”,否则我看不出它有什么帮助。我想在Food POJO中得到一个“members”成员,我想让它解析元素是的直接子元素还是的子元素。我来看看转换器