The XSLT processor can cope with trees in which the document node owns several elements or none - but the XML parser will never generate such a tree, because the input to the XML parser needs to be well-formed. You might get a well-balanced but not well-formed tree, for example, as the output of another XSLT transformation.
If you want to parse a source file that's well-balanced but not well-formed, you can either wrap a start and end tag around the content before parsing it, or you can reference it from a skeleton document as an external entity:
a.xml
<a/><b/><c/><d/>
doc.xml
<!DOCTYPE [
<!ENTITY a SYSTEM "a.xml">
]>
<doc>&a;</doc>
and then use doc.xml as the input to your transformation
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference