As another way of doing it:

Rename your old structure to vXX_StrucName then create a new one. When loading use the previous code to test versions. Load the proper version, convert it up, write out new version. This pretty much lets the system self upgrade (as long as your careful). If you simply keep adding on to this, and making incremental update methods, you will find that any newer version can load any previous version. Course this is the reason I'm looking into streamed compression of XML files for storage of map info and the likes. Easy to read and decompress on the fly, also no upgrade paths unless major new features are added. As long as the compression format doesn't change and I don't completely re-name something older versions of the engine can load newer versions of the maps (might not always work as planned though) with nothing more then a warning displayed to the user.