Any improvement that would happen here will have to come as part of a future change to the way models are defined. It's a good idea, but I don't think there's time for it right now.

Also, there will always have to be a mapping between the XML attribute names and the names we store in the database. Putting that mapping in the form of attributes on an object instead of keys in a dictionary won't necessarily improve our odds of avoiding a typo.