I think this is a bug in XInclude support in libxml 2.6.16.
Consider:
test.xml:
<doc xmlns="http://example.com/&quot;
xmlns:xi='http://www.w3.org/2001/XInclude'>
<p>What about this?</p>
<xi:include href="testinc.xml" xpointer="/1/1"/>
</doc>
and testinc.xml:
<doc>
<p>This is p from no namespace</p>
</doc>
and
$ xmllint -xinclude test.xml
<?xml version="1.0"?>
<doc xmlns="http://example.com/&quot; xmlns:xi="http://www.w3.org/2001/XInclude&quot;>
<p>What about this?</p>
<p>This is p from no namespace</p>
</doc>
I think that second 'p' needs an xmlns="". Note that if the second 'p'
is in some other namespace, the proper declaration is added, so it
seems to be the edge case of the "no namespace" that's the problem.