In the second fragment, neither the <b> nor the <c> tag are closed. Unlike SGML, XML does not allow tags to be automatically closed when the enclosing tag is closed. This is the reason why the <p> tag in HTML/XHTML gives people grief---in HTML you only need to put in the opened tags while in XHTML you need to put in both the opening and the closing tag.
If you want non-nesting overlapping ranges you cannot use something like
<a> ... ... </a> ...
but should use something like
<a id="1"/> ... <b id="2"/> ... <a id="1"/> ... <b id="2"/>
This is bulkier (especially when there are a very large number of overlapping structures) but much easier to process with XSLT. The choice between these is the subject of a minor ReligiousWar. StuartYeates is in favour of the former, AristotlePagaltzis in favour of the latter. The whole problem was solved in SGML using the CONCUR feature, which appears never to have been implemented and was dropped from XML.
WellFormed XML differs from Valid XML in that Valid XML has been (or could be) checked against a Schema or DTD.
3 pages link to WellFormed: