Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAXB中抽象类的编组arraylist_Java_Jaxb - Fatal编程技术网

Java JAXB中抽象类的编组arraylist

Java JAXB中抽象类的编组arraylist,java,jaxb,Java,Jaxb,我有一个Java应用程序,我想用XML而不是数据库来保存数据 我们决定使用JAXB,而不是基于模式生成文件,我们只是在Java文件中添加了注释 我们遇到的问题是,我们有一个名为Node的抽象类的ArrayList。节点具有模块或屏幕图像的子类。当我们整理arraylist时,它不会保存类型。例如: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Module" JAXB支持抽象元素吗 如何让JAXB保存该类型,以便

我有一个Java应用程序,我想用XML而不是数据库来保存数据

我们决定使用JAXB,而不是基于模式生成文件,我们只是在Java文件中添加了注释

我们遇到的问题是,我们有一个名为Node的抽象类的ArrayList。节点具有模块或屏幕图像的子类。当我们整理arraylist时,它不会保存类型。例如:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Module"
JAXB支持抽象元素吗

如何让JAXB保存该类型,以便能够解组它?

它应该可以正常工作。 请注意,如果您的模块和屏幕图像无法从绑定类(即在JAXBContext.newInstance…)中指定的类)进行静态访问,则应将它们显式绑定并添加到JAXBContext.newInstance。。。参数。

它应该可以正常工作。
请注意,如果您的模块和屏幕图像无法从绑定类(即在JAXBContext.newInstance…)中指定的类)进行静态访问,则应将它们显式绑定并添加到JAXBContext.newInstance。。。参数。

axtavt的建议很好。我只想添加另一种方法。您还可以使用@xmlsee,在这里您可以声明其他应该定义并对JAXBContext可见的类。您只需确保在JAXBContext已经可见的类中声明注释

e、 g:


阿克斯特瓦特的建议很好。我只想添加另一种方法。您还可以使用@xmlsee,在这里您可以声明其他应该定义并对JAXBContext可见的类。您只需确保在JAXBContext已经可见的类中声明注释

e、 g:


就这样。我认为newInstance只适用于根元素。谢谢就这样。我认为newInstance只适用于根元素。谢谢
@XmlRootElement
@XmlSeeAlso({Node.class, Module.class, ScreenImage.class})
class SomeContent {
  private List<Node> nodes;
  ///... accessors
}