Java JAXB中抽象类的编组arraylist
我有一个Java应用程序,我想用XML而不是数据库来保存数据 我们决定使用JAXB,而不是基于模式生成文件,我们只是在Java文件中添加了注释 我们遇到的问题是,我们有一个名为Node的抽象类的ArrayList。节点具有模块或屏幕图像的子类。当我们整理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保存该类型,以便
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
}