More robust message parsing

This replaces the usage of attributes from the System.Xml.Serialization namespace, as discussed in #3.
This particular unit test exercises the versioned namespace part of the XML. So, as long as the SUT doesn't throw an exception (or returns a failure result), does it make sense to include child elements in the test input?