我有一个Java应用程序,我想用XML而不是数据库保存数据.
我们决定使用JAXB而不是基于模式生成文件,我们只是在Java文件中添加了注释.
我们遇到的问题是我们有一个名为Node的抽象类的ArrayList.Node具有Module或ScreenImage的子类.当我们编组arraylist时,它不会保存类型.如:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Module"
Run Code Online (Sandbox Code Playgroud)
JAXB是否支持抽象元素?
如何让JAXB保存类型,以便我可以解组它?
axtavt的建议很好.我只想添加另一种方法.您可以使用@XmlSeeAlso,您可以在其中声明应该定义并对JAXBContext可见的其他类.您只需确保在JAXBContext已经可见的类中声明注释.
例如:
@XmlRootElement
@XmlSeeAlso({Node.class, Module.class, ScreenImage.class})
class SomeContent {
private List<Node> nodes;
///... accessors
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4301 次 |
| 最近记录: |