JAXB Probleme beim Unmarshalling

HakBak

Aktives Mitglied
Hallo,
ich versuche mich gerade ein wenig an JAXB. Ich habe ein Schema und eine passende XML Datei dazu. Das Schema habe ich schon in Klassen mit der xjc.exe umgewandelt.
Nun wollte ich mir ein Programm schreiben um die Xml Datei auszulesen.

Java:
public static void main(String[] args) {
		try {
			JAXBContext context = JAXBContext.newInstance( ROWTYPE.class );
			Unmarshaller um = context.createUnmarshaller(); 
			ROWTYPE rt = (ROWTYPE) um.unmarshal( new FileReader( "test.xml" ) );
			System.out.println(rt.getMDPID());
		} catch (JAXBException e) {
			
			e.printStackTrace();
		} catch (FileNotFoundException e) {
			
			e.printStackTrace();
		}
	}
Nun ist es so, dass ich hierbei eine classcast-exception bekomme, er meckert: javax.xml.bind.JAXBElement cannot be cast to dtBank.ROWTYPE

Ich weiss, das sind nicht sonderlich viele Informationen, aber ich kann irgendwie gerade nicht viel mit der Fehlermeldung anfangen und weiss nicht, wo ich das Suchen anfangen soll.

Danke schonmal
 
Zuletzt bearbeitet:
Zeig doch mal deine Klassen (bzw. poste mal die XSD). Die Vorgehensweise zum Laden der XML ist bei dir richtig. Da muss irgendwas anderes schief laufen.
 
Naja, die Fehlermeldung ist doch eindeutig. Du erhältst ein Objekt vom Typ [c]JAXBElement[/c] und Du versuchst es nach [c]ROWTYPE[/c] (besser wäre [c]Rowtype[/c]) zu casten. Ein kurzer Blick in die Doku zeigt, dass ein [c]JAXBElement[/c] eine JAXB-Repräsentation eines Objekts ist, an das man mit der Methode [c]getValue()[/c] kommt.
 

Zurück
Oben