@Test
    public void testAvoidStrippingPrefixFreeCanonicalization() throws Exception
    {
        // Setup fixture
        final String input =
            "<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' to='example.com' version='1.0'>" +
                "  <message>" +
                "    <other xmlns='something:else'>" +
                "      <message xmlns='jabber:client'/>" +
                "    </other>" +
                "  </message>" +
                "</stream:stream>";

        final Document result = packetReader.read( new StringReader( input ) );

        // Verify result.
        assertFalse( result.asXML().substring( 0, result.asXML().indexOf("something:else") ).contains( "jabber:client" ), "'jabber:client' should not occur before 'something:else'" );
        assertTrue( result.asXML().substring( result.asXML().indexOf("something:else") ).contains( "jabber:client" ), "'jabber:client' should occur after 'something:else'" );
    }
Check that the 'jabber:client' default namespace declaration is explicitly _not_ stripped from a child element
of a stanza.

Openfire strips this namespace (among others) to make the resulting XML 're-usable', in context of the
implementation note in RFC 6120, section 4.8.3.

@see <a href="https://igniterealtime.atlassian.net/browse/OF-1335">Issue OF-1335: Forwarded messages rewritten to default namespace over S2S</a>
@see <a href="https://xmpp.org/rfcs/rfc6120.html#streams-ns-xmpp">RFC 6120, 4.8.3. XMPP Content Namespaces</a>
xmppserver/src/test/java/dom/io/XMPPPacketReaderTest.java