Mam pliki xml o rozmiarze 1-2MB i chciałbym je wczytac do listy obiektów. Chciałem to zrobic przez JAXB bo mam odpowiednie XSD tylko problem pojawia się w momencie wczytywania tych plików ponieważ wyrzuca mi błędy mówiące o tym, że w jakimś miejscu jest niedomkniety tag lub cos w tym stylu, gdy wprawdzam w pliku to nie ma tam zadnych błędów. Gdy wczytywałem pliki o rozmiarze np 40KB nie bylo tego problemu, wszystko wczytywało sie prawidłowo. Czyli rozumiem ze jest jakiś problem w jaxb podczas unmarshalowania większych plików. Jest jakiś sposób, żeby to objeść? Inny sposób unmarshallingu raczej nie wchodzi w gre bo kazdy plik xml ma lekko inna strukture i obiekty, które mam potworzone z XSD.
Struktura plików xml:
<Request>
<Header>
<Name> </Name>
<Id> </Id>
</Header>
<RequestItems>
<Request>
<Header>
<Name></Name>
<Id></Id>
</Header>
<ObjectName>
<City></City>
<Street></Street>
</ObjectName>
</Request>
</RequestItems>
</Request>
Wewnątrz tagów RequestItems jest lista obiektów Request i w obiektach Request ObjectName jest różny wzależności od pliku.
Robie unmrashal w najprostszy sposób i dla mniejszych plików działa prawidłowo, a na tych większych występują dziwne błędy niby składniowe ale rozumiem ze ucina po prostu linie bo jest za długa i dlatego są składniowe błędy.
JAXBContext jaxbContext = JAXBContext.newInstance(Request.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Request request = (Request) jaxbUnmarshaller.unmarshal(xmlFile);