It is true that SequenceInputStream comes close. However if you use it, your SAX error reporting is by line number within the entire sequence - which I found pretty hard to interpret. By keeping track of line numbers within the separate chunks of text, it is easier to find the source of a parse error.
My main point was that it isn't that XML is broken in some way as it can't deal with "incomplete documents". You've just found a convenient way to parse (and maybe validate) a group of individual streams of XML content within one parsing context without too much overhead.