我正在使用简单的 xml 框架,我有一个情况。
我的 xml 如下所示。
<root>
<title> something </title>
<desc> something more </desc>
<mixture>
<nodeA id="4" type="A">
<nodeB id="5" type="B">
<nodeB id="6" type="C">
<nodeB id="7" type="D">
<nodeB id="8" type="E">
<nodeB id="9" type="F">
</mixture>
</root>
我已经定义了类和注释,如下所示。
@Root(strict=false,name="root")
class Root{
@Element
private String title;
@Element
private String desc;
@ElementList(required=false,inline=true)
@Path("mixture")
ArrayList<GenericNode> genericNodes;
}
@Root(strict = false)
@Convert(Convertor.class)
class GenericNode{
//no annotation are defined
//we ll handle the conversion ourself in "Convertor" class
}
问题是我想将所有这些节点映射mixture
到一个列表中。但是我定义的自定义转换器没有被调用。如果我删除属性然后反序列required
化 ArrayList<GenericNode> genericNodes;
失败并出现异常。
可能是问题是因为我没有为genericNodes
. 框架未能正确映射它。我该如何解决这个问题?
注意:1.我正在使用AnnotationStratergy
Serializer serializer = new Persister(new AnnotationStrategy());
2. 我不想使用 ElementUnion 属性,因为我需要映射的不同类型的节点接近 10 个标签