I also thought along these lines, but it would change the semantics compared to the original approach. `Jsoup#isValid()` also expects a String which represents the contents of the _body_ element, in particular it creates a shell to which the parsed contents is added (have a look at the implementation of `isValid()`).

So I'd say we're consistent with the previous behavior, only that tags which actually may only occur within sub-trees rather than directly beneath the body element are not discarded prior to the validation.