1. You are right, I should check for an empty string, as mentioned before, there will be probs otherwise.
2. The sequence of the tags is defined in the xsd file, i.e. name will always come first or the validator will throw an error. Obviously, the boost interface doesn't check this as there is no validator available in boost.