给出以下注释
@XmlElements({
@XmlElement(name = "first", type = First.class),
@XmlElement(name = "second", type = Second.class),
@XmlElement(name = "third", type = Third.class),
@XmlElement(name = "fourth", type = Fourth.class),
@XmlElement(name = "fifth", type = Fifth.class),
@XmlElement(name = "sixth", type = Sixth.class),
@XmlElement(name = "seventh", type = Seventh.class)})
private List<Dimension> dimensions = new ArrayList<>();
由于一些有趣的遗留逻辑,我需要为Third.class提供适配器。
@XmlJavaTypeAdapter(ThirdAdapter.class)
public class Third implements Dimension
但是,似乎从未调用过ThirdAdapter。 @XmlJavaTypeAdapter与@XmlElements兼容吗?或者有更好的解决方案吗?
答案 0 :(得分:2)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB (JSR-222)专家组的成员。
这似乎是JAXB reference implementation中的错误。它也是bug中的EclipseLink JAXB (MOXy),但我们在EclipseLink 2.4.0流中修复了它。您可以从以下位置下载候选版本:
<强> jaxb.properties 强>
要将MOXy用作JAXB提供程序,您需要在与域模型相同的程序包中添加名为jaxb.properties
的文件,并使用以下条目:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory