I like the idea of naming it by the subtype.  I like the idea of enforcing a name of some type, as it'll cut down on bugs where the developer something to happen when reading the XML, and something else happens because of the struct definition.  It also means that if the struct definition changes, the XML will likely need to change, which I'd expect is behavior we want.