I don't know why it took me more than the necessary to understand where was the problem when I hit the following error.
ORA-31011: XML parsing failed ORA-19202: Error occurred in XML processing LPX-00209: PI names starting with XML are reserved
At any rate, in my case the reason was not the same as reported in other sites (like having a duplicate XML declaration).
The trouble was caused by a simple blank character located before the initial XML file declaration.
The error occurred on Oracle 10.2 (XE), while on Oracle 22.214.171.124.0 EE the blanks seem to give no concerns whatsoever to the parser.
I ignore the results on the Oracle versions in between.
You can easily simulate the problem with the following query in SQL Developer:
select xmltype(' ' || dbms_xmlgen.getxml('select 1 from dual')) x from dual;
If you have a clob object containing an xmlfile with extra blanks at the beginning of the file and attempting to parse it you get this error, you may easily fix the problem by TRIMming it first.
See message translations for ORA-19202, LPX-00209 and search additional resources.