我必须处理几个xsd
个文件。
我从JAXB
文件生成xsd
个类。我得到以下结果:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "xmeldit.datenlieferung.1100")
public class XmelditDatenlieferung1100 extends TypeNachrichtG2G
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "type.Nachrichtenkopf.G2G")
class TypeNachrichtG2G extends NachrichtG2G {
}
@XmlSeeAlso({NachrichtG2GRueckweisung.class,TypeNachrichtG2G.class})
abstract class NachrichtG2G {
@XmlElement(required = true)
protected NachrichtenkopfG2G nachrichtenkopf;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Nachrichtenkopf.G2G", propOrder = {"identifikationNachricht", "leser", "autor"})
@XmlSeeAlso({ TypeNachrichtenkopfG2G.class, NachrichtenkopfG2GXInneres.class
})
public abstract class NachrichtenkopfG2G {
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "type.Nachrichtenkopf.G2G")
public class TypeNachrichtenkopfG2G extends NachrichtenkopfG2G{
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Nachrichtenkopf.G2G.XInneres")
public class NachrichtenkopfG2GXInneres extends NachrichtenkopfG2G {
}
现在我想要unmarshal
一个XmelditDatenlieferung1100
类对象。但我得到UnmarshalException
。 Jaxb
想要创建NachrichtenkopfG2G
的实例。 NachrichtenkopfG2G
是抽象的。
我怎么能说jaxb
使用TypeNachrichtenkopfG2G
代替NachrichtenkopfG2G
?
我用以下内容解组对象:
JAXBContext jaxbContext = JAXBContext.newInstance("packagename");
XmelditDatenlieferung1100 unmarshal = XmelditDatenlieferung1100) jaxbContext.createUnmarshaller().unmarshal(filePath.toFile());
我不知道。 : - (
答案 0 :(得分:0)
我遇到了完全相同的问题。只需删除abstract
中的xinneres-basisnachricht.xsd
属性即可解决此问题。
所以只需改变一下:
<xs:complexType name="Nachrichtenkopf.G2G" abstract="true">
到:
<xs:complexType name="Nachrichtenkopf.G2G">