Invalid XML with two top level elements passes validation.
If I create a DOM with two top level elements (I did this with XSLT - not tried any other way) then the DOM passes schema validation. This is despite it being so invalid that if you serialize it to a string and then try and parse it again the parser rejects it.
I attach an example program that demonstrates this. val.c
This example was produced on Centos 7 with the following: libxml2.x86_64 2.9.1-6.el7_2.3 libxslt.x86_64 1.1.28-5.el7
Originally seen on Centos6.