Thanks for your reply.
Based on the requirements, I cannot make them as attributes. The XML i gave in my original post was just an example. The actual XML is for registration purpose. A snippet of the XML would be
Designing them as Individual elements/tags instead of attributes, makes sure all valiation is done by the XML parser instead of validating these elements in code.
So, the workaround/solution I used for this issue is to create complexTypes for various valid combination (Just the way you mentioned). Luckily, I had just two combination.