Hallo,
ich versuche mich gerade daran JAXB mit STAX zu verbinden nur leider bekomme ich jedes Mal eine
Meine XML Datei sieht wie folgt aus:
Die passenden klassen habe ich mit der xjc.exe durch das passende Schema, welches mit gestellt wurde erstellen lassen.
Nun ist es so, dass das unmarshalling prinzipiell klappt, nur sollten die xml-datei zu groß werden, wollte ich das ganze mit Stax verbinden, damit alles noch "speicherfreundlich" ablaufen kann.
Aber ich bekomme eben immer die oben genannte Fehlermeldung.
Hier hab ich mal meinen code:
Ich hab schon viel gesucht, aber bisher konnte ich keine passende Lösung finden, vielleicht könnt ihr mir helfen.
Danke schonmal!
ich versuche mich gerade daran JAXB mit STAX zu verbinden nur leider bekomme ich jedes Mal eine
Java:
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"ROW"). Expected elements are <{}ROWSET>
Meine XML Datei sieht wie folgt aus:
Java:
<?xml version="1.0" encoding="UTF-8"?>
<ROWSET xsi:noNamespaceSchemaLocation="test.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ROW num="1">
<Name1>2424</Name1>
<Name2>2010-05-19T09:30:22</Name2>
</ROW>
<ROW num="2">
<Name1>2424</Name1>
<Name2>2010-05-19T09:30:22</Name2>
</ROW>
<id>2603805789</id>
</ROWSET>
Die passenden klassen habe ich mit der xjc.exe durch das passende Schema, welches mit gestellt wurde erstellen lassen.
Nun ist es so, dass das unmarshalling prinzipiell klappt, nur sollten die xml-datei zu groß werden, wollte ich das ganze mit Stax verbinden, damit alles noch "speicherfreundlich" ablaufen kann.
Aber ich bekomme eben immer die oben genannte Fehlermeldung.
Hier hab ich mal meinen code:
Java:
public void testParse() throws XMLStreamException,JAXBException, IOException {
XMLInputFactory xFactory = XMLInputFactory.newInstance();
FileReader fr = new FileReader("test.xml");
XMLEventReader xReader = xFactory.createXMLEventReader(fr);
EventFilter filter = new EventFilter() {
public boolean accept(XMLEvent event) {
return event.isStartElement();
}
};
XMLEventReader xmlfer = xFactory.createFilteredReader(xReader, filter);
StartElement e = (StartElement) xmlfer.nextEvent();
JAXBContext jc = JAXBContext.newInstance("test"); //das Package in dem die von xjc erzeugten Klassen liegen ROWTYPE ROWSETTYPE und ObjectFactory
Unmarshaller um = jc.createUnmarshaller();;
while (xmlfer.peek() != null) {
Object o = um.unmarshal(xReader); //hier krachts mit der oben genannten Fehlermeldung
...
...
}
fr.close();
}
Ich hab schon viel gesucht, aber bisher konnte ich keine passende Lösung finden, vielleicht könnt ihr mir helfen.
Danke schonmal!