Java JAXB中访问元素的工厂方法?

Java JAXB中访问元素的工厂方法?,java,jaxb,Java,Jaxb,我正在尝试为JAXB使用工厂方法,而不是无参数构造函数 我有多个从基类继承的类,关于哪个类将被实例化的唯一指示是xml元素中的属性type <tag-name type="boolean"/> 将实例化BooleanType,而 <tag-name type="integer"/> 将实例化IntegerType 是否有任何方法可以从factory方法中访问正在解组的元素的元素名称/属性值 (这可能是使用工厂方法优于无参数构造函数的好处吗?还有其他好处吗?)

我正在尝试为JAXB使用工厂方法,而不是无参数构造函数

我有多个从基类继承的类,关于哪个类将被实例化的唯一指示是xml元素中的属性
type

<tag-name type="boolean"/>

将实例化BooleanType,而

<tag-name type="integer"/>

将实例化IntegerType

是否有任何方法可以从factory方法中访问正在解组的元素的元素名称/属性值

(这可能是使用工厂方法优于无参数构造函数的好处吗?还有其他好处吗?)

(我没有使用MOXy)

我有多个从基类继承的类,并且 要实例化的对象的指示是中的属性类型 xml元素

<tag-name type="boolean"/>
使用任何实现,您都可以使用
XmlAdapter
映射继承关系,其中任意XML属性是继承指示符

但是,我不使用任意的XML属性,而是使用
xsi:type
属性,以便XML模式能够正确验证内容

如果您仍然希望使用任意XML属性,并且使用的是JAXB提供程序,那么您可以利用
@XmlDescriminatorNode
/
@XmlDescriminatorValue
扩展:


是否有任何方法可以访问的元素名称/属性值 从factory方法中解组的元素

JAXB实现确实允许您通过
@XmlType
注释指定工厂类和方法,但我不相信这就是您在本用例中所寻找的


要利用XML内容确定要实例化的适当子类,您需要使用
XmlAdapter
方法。

谢谢!我还不太了解适配器,但我肯定会研究它们。顺便说一句,我认为我看到的每一个与JAXB相关的问题都有你的答案。当你回答这个问题时,我一点也不惊讶。