JAXB:根据属性值创建类的实例

时间:2017-10-23 07:48:18

标签: java xml jaxb2

如果我有以下xml。

<tag type="div" class="parent">
      <children>
            <tag type="span"/>
            <tag type="div"/>
      </children>
</tag>

除此之外,我还有以下课程

public abstract class Tag {
      @XmlAttribute( "class" )
      private String classes;

      private List<Tag> children;
}

以及一些实施类:

public class Span extends Tag {
}

public class Button extends Tag {
}

可以使用<tag type="div" class="parent">的属性值将元素字符串type转换为其实现类。

有没有办法可以配置JAXB来创建Tag类的实例,具体取决于元素字符串的类型属性值?

1 个答案:

答案 0 :(得分:0)

我相信答案就在这里:JAXB: how to unmarshal a List of objects of different types but with common parent?

您需要在JAXB:org.eclipse.persistence.moxy之上使用EclipseLink moxy。您将获得示例引用的@XmlPaths。