2016-04-05 29 views
0

örneği oluşturulamıyor, çeşitli xsd dosyaları ile çalışmam gerekiyor. xsd dosyalarından JAXB sınıfları oluşturuyorum.UnmarshalException:

@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 { 
} 

Şimdi ben unmarshal Sınıf XmelditDatenlieferung1100 Nesne istiyorum: Ben şu sonucu olsun. Ama ben bir UnmarshalException aldım. Jaxb, NachrichtenkopfG2G örneğini oluşturmak istiyor. NachrichtenkopfG2G özetidir. jaxb'un NachrichtenkopfG2G yerine TypeNachrichtenkopfG2G'u nasıl kullandığını söyleyebilirim? Hiçbir fikrim yok

JAXBContext jaxbContext = JAXBContext.newInstance("packagename"); 
XmelditDatenlieferung1100 unmarshal = XmelditDatenlieferung1100) jaxbContext.createUnmarshaller().unmarshal(filePath.toFile()); 

:

Ben Nesneleri unmarshal. . :-(

+1

Ayıklanmaya başlamak için kullandığınız kod nedir? – f1sh

+0

i kodu unmarshalling'i nasıl eklediğimi ekleyin .. –

cevap

0

ben de aynı sorun koştu Bu sadece xinneres-basisnachricht.xsd yılında abstract niteliğini kaldırarak düzeltilebilir

Dolayısıyla, sadece bu değiştirin:.

<xs:complexType name="Nachrichtenkopf.G2G" abstract="true"> 

için:

<xs:complexType name="Nachrichtenkopf.G2G"> 
+0

Evet, çözüm t kullanıyorum şapka ama bu sorunu çözmek için yaygın yolu nedir? Ben öyle düşünmüyorum. –