Incorporating XML schema changes

I've made some assumptions based on the data that may be correct or incorrect, and have attempted to document those assumptions where they appear in the code. In real life, these changes would probably warrant some discussion to properly flesh out the new requirements before updating any code. But in this case I focused on getting something working that seemed like it could be a reasonable interpretation of a database schema that properly maps to the XML data given. There are also some performance implications of the schema change (increased number of DB joins, for example) that would need to be carefully considered.