DTD1:
\n[base_element( tag1, tag2 )]\n [tag1 (tag3, tag4, tag5)]\n [tag3 (tag6)]\n [tag6 EMPTY]\n [tag4 (tag7)]\n [tag7 EMPTY]\n [tag5 (tag8)]\n [tag8 EMPTY]\n [tag2 (tag9, tag10)]\n [tag9 EMPTY]\n [tag10 EMPTY]\n
DTD2:
\n[base_element( tag1, tag2 )]\n [tag1 (tag3, tag4, tag5)]\n [tag2 (tag9, tag10)]\n [tag3 (tag6)]\n [tag6 EMPTY]\n [tag4 (tag7)]\n [tag7 EMPTY]\n [tag5 (tag8)]\n [tag8 EMPTY]\n [tag9 EMPTY]\n [tag10 EMPTY]\n
DTD3:
\n[base_element( tag1, tag2 )]\n [tag1 (tag3, tag4, tag5)]\n [tag2 (tag9, tag10)]\n [tag3 (tag6)]\n [tag6 EMPTY]\n [tag4 (tag7)]\n [tag7 EMPTY]\n [tag5 (tag8)]\n [tag8 EMPTY]\n [tag9 (tag4)]\n [tag4 EMPTY]\n [tag10 EMPTY]\n
The first example is a "properly" nested DTD. All tags fll directly under the one they belong to. The second example has the two first-level children directly under the parent node, then the third-level children follow, each with their children nested under them. The third example has a node that appears at two different levels and under different parents.
Does either of the latter two actually violate any W3C standards, or are they just confusing?