JAXB:是否可以处理未知元素

时间:2012-06-08 16:07:26

标签: java tags jaxb

我得到像这样的xml内容:

<data>
   <randomtagname>
      <name>....</name>
      <description>.....</description>
      <description>.....</description>
   </randomtagname>
   <anotherrandomtagname>
      <name>....</name>
      <description>.....</description>
   </anotherrandomtagname>
   <thirdridiculousrandomtagname>
      <name>....</name>
      <description>.....</description>
      <description>.....</description>
   </thirdridiculousrandomtagname>
       .
       .
       .
</data>

是否可以创建带注释的java类并使用jaxb来取消/编组此文件而不使用@XmlAnyElement?

1 个答案:

答案 0 :(得分:1)

它看起来像是一个对象列表给我。创建一个具有

 List<Object> data
变量的java类。你不应该需要注释。

基本上,您希望xml接口足够通用,以接受可能具有不同字段的不同对象的列表。一旦这个接口接受了一个java对象列表,它就会直到你的java代码来确定它们是什么,并将它们转换为正确的类类型。对该部分使用instanceOf。其中一些在java泛型中描述,您可以在其中传入任何Object,但您必须确定将其转换为什么。我认为只要它以真实的类形式发送,instanceof就可以了。你不会发送一个对象列表,你会发送一些列表,如字符串,整数或自定义类,如Myclass1,Myclass2。然后,一旦你读取该列表,使用instanceof来确定列表中每个对象的对象类型,是String,Myclass1,Myclass2等的实例......并进行适当的转换。

仔细阅读你的问题我可能会错过你真正需要知道的东西。也许这个链接有一些有用的东西。 jaxb help