Witajcie,
Napotkałem dziś na pewien problem i szukam rozwiązania. Zapewne są na to sposoby ale ewidentnie brakuje mi wiedzy którą zapewne wielu z Was posiada dlatego też liczę na Waszą pomoc. Z problemem na pewno spotkał się każdy kto pisał jakąś aplikację w javie ale zapewne w innych językach też, która musi zapisywać dane do bazy i je z niej pobierać. O ile w naszej aplikacji mamy jeden określony zestaw danych/zmiennych który jest stały, problemu nie ma. Niestety u mnie te dane będą ulegały zmianom. Mam pewien zestaw zmiennych który zapisuję sobie do bazy w formacie XML. Później zestaw ten pobieram, odpowiednio parsuję aby wyświetlić użytkownikowi i wszystko jest fajnie. Teraz pierwszy, najmniejszy problem rozpoczyna się gdy dojdzie mi nowa zmienna do mojego schematu który zapisuję do bazy. Tu problemu nie ma ponieważ wszystkie dane zapisane wcześniej będą kompatybilne z nowym schematem. Większy problem rozpoczyna się gdy z mojego zestawu danych ubędzie jakaś zmienna, schemat zmniejszy się o tą pozycję i chcąc pobrać dane zapisane wcześniej gdzie ta zmienna była i przerzucić go na swój model danych aby wyświetlić go użytkownikowi, program mi się wywali bo będzie próbował pobrać i zrzutować parametr który z mojego modelu już wyleciał. Ale na to jakieś obejście znalazłem, nie wiem czy prawidłowe czy nie ale pomyślałem że jeśli jakaś zmienna mi odejdzie to nie będę jej usuwał ze swojego modelu tylko wyrzucę ją użytkownikowi aby jej nie widział i nie uzupełniał tego pola a w modelu danych ona będzie tylko będzie zapisywana jako pusta. Pewnie nie jest to zgodne ze sztuką programowania ale tylko to mi przyszło do głowy. Największy problem zaczyna się robić gdy zmieni mi się nazwa typu. Posłużę się przykładem znalezionym z internecie. Mam takiego XML-a:

<rozklad okres="letni">
   <miejscowosc>Poznań</miejscowosc> 
	   <linia typ="tramwaj">
		   <numer>5</numer>
		   <poczatek>Górczyn</poczatek>
		   <koniec>Miłostowo</koniec>
	   </linia>
	   <linia typ="autobus">
		   <numer>105</numer>
		   <poczatek>Rondo Rataje</poczatek>
		   <koniec>Piątkowo</koniec>
	   </linia>
</rozklad>

Wszystko jest ok póki ten model wygląda tak jak wygląda. I teraz nagle typ autobus, zamieniam na typ autobus_elektryczny i mój schemat wygląda tak:

<rozklad okres="letni">
   <miejscowosc>Poznań</miejscowosc> 
	   <linia typ="tramwaj">
		   <numer>5</numer>
		   <poczatek>Górczyn</poczatek>
		   <koniec>Miłostowo</koniec>
	   </linia>
	   <linia typ="autobus_elektryczny">
		   <numer>105</numer>
		   <poczatek>Rondo Rataje</poczatek>
		   <koniec>Piątkowo</koniec>
	   </linia>
</rozklad>

I tego już kompletnie nie wiem jak obejść tak aby wszystkie dane zapisane wcześniej były spójne i dało się je pobierać i wyświetlać użytkownikom. Na pewno jest to jakoś w programowaniu rozwiązane tylko tak jak wspomniałem, ja tego nie wiem. Mogę prosić o podpowiedź jak ten problem można rozwiązać?