The check function of std.xml requires each XML document to begin with an XML declaration <?xml ...
According to the specification http://www.w3.org/TR/2008/REC-xml-20081126/#NT-prolog, however, the XML declaration is optional!
The check function should not throw for well-formed XML documents like
<Root/>
The following trivial change fixes the issue:
in function checkProlog replace
checkXMLDecl(s);
with
opt!(checkXMLDecl)(s);
(at line 2249 inD 2.047)
Then, the by-the-book implementation conforms to the XML specification.