Hi Moritz,
That answers it, thanks. Since PARSE_XML consumes xmlns:xsi and XML_STRING
is the only thing that emits it, the duplicate can't happen.
On the note you're adding, the other direction might be worth a line too.
The FLIP already records a different prefix bound to the XSD-instance
namespace. The opposite case is xsi bound to something else:
<root xmlns:xsi="urn:my-app"><a xsi:nil="true"/></root>
A namespace-aware parser reads that attribute as {urn:my-app}nil, an
ordinary application attribute. PARSE_XML would take it as a null, consume
the declaration, and XML_STRING would emit the XSD-instance one, so the
prefix comes back bound to a different namespace than it went in. Unlike
the unused-declaration case, that one changes meaning rather than bytes.
Best,
Sai Krishna Sepuri