Eclipse MOXy:@XMLRootElement基于属性 - 可能吗?

时间:2014-12-09 16:31:00

标签: spring jaxb moxy

我有一组XML文件,它们包含不同的信息,但都具有相同的根标记。标签看起来像这样:

第一档:

<node type="A"> ... </node>

第二档:

<node type="B"> ... </node>

等等。现在的问题是:我可以使用这样的注释表达式让JAXB将它们序列化为不同的类型:

A.java

@XmlRootElement(name = "node[@type='A']/text()")
public class A { ... }

B.java

@XmlRootElement(name = "node[@type='B']/text()")
public class A { ... }

这可能吗?

1 个答案:

答案 0 :(得分:1)

你正在尝试的方式是不可能的。您可以使用StAX XMLStreamReader解析XML,然后查看根元素事件的属性,选择要解组的类,然后调用带有unarshal和{Class的{​​{1}}方法{1}}作为参数。