Для версий HTML от HTML 2.0 до HTML 4.01 и XHTML 1.x см. Их DTD (которые связаны с применимой спецификацией на сайте W3C). (Предыдущие версии HTML не были так формализованы, чтобы иметь DTD. Более поздние версии XHTML двигались к схеме. HTML 5 определяется таким образом, чтобы не иметь официальной машиночитаемой спецификации, но я думаю, что сторонние схемы там).
Найдите определение элемента body:
<!ELEMENT BODY O O (%block;|SCRIPT)+ +(INS|DEL) -- document body -->
Разверните ссылки (%body;
в этом примере).
Это даст вам список элементов, которые могут быть потомками элемента body.
Затем просто вычтите этот список из списка всех элементов в этой версии HTML, и вы получите элементы, которые либо должны быть потомками элемента, отличного от тела, либо являются корневым элементом (<html>
).