It's no problem. Because XML is well-formed, and doesn't allow any tags
to be omitted, the context of every element is crystal clear. If an XML
processor has encountered <A> followed by <B>, then it knows it is
inside <B>. If an <X> then comes along, the <X> is 'inside' <B>, which
in turn, of course, is 'inside' <A>.
The XML processor must subsequently get an </X>, a </B> and an </A> in
that order to 'back out' of the hierarchy it has created.
This is only an issue in HTML because (a) HTML adopted some fairly
sophisticated tag omission rules from SGML; and (b) every HTML parser
proceeded to ignore this and treat tags as point markers rather than
nodes in a well-defined tree structure.
Richard Light.
Richard Light
SGML/XML and Museum Information Consultancy
richard@light.demon.co.uk