次の無効なXMLファイルがあります。
<?xml version="1.0" encoding="utf-8" ?>
<Page num="1" crop_box="0, 0, 595, 842" media_box="0, 0, 595, 842" rotate="0">
<Flow id="1">
<Para id="1">
<Line box="90, 754.639, 120.038, 12">
<Word box="90, 754.639, 22.6704, 12">This</Word>
</Line>
</Para>
</Flow>
</Page>
<?xml version="1.0" encoding="utf-8" ?>
<Page num="1" crop_box="0, 0, 595, 842" media_box="0, 0, 595, 842" rotate="0">
<Flow id="1">
<Para id="1">
<Line box="90, 754.639, 120.038, 12">
<Word box="90, 754.639, 22.6704, 12">This</Word>
</Line>
</Para>
</Flow>
</Page>
構造的には無効ですが(2つのルート要素があり、XMLプロローグが2回表示されます)、正しく解析できます(つまり、タグが正しく、コンテンツも正しい)。
それで、問題は、JavaにStAX(または他のストリーミングベースの)XMLパーサーがあり、それを可能にするかどうかです。XMLInputFactoryのすべてのオプションをチェックしましたが、パーサーがこの種の不正な形式のXMLを受け入れることを許可していないようです。