Details
Description
Have a look at the following snippet:
<a:a1 xmlns:a="http://a"
xmlns:b="http://b"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<a:a2 xsi:type="b:B"/>
</a:a1>
As you can see, the value of the attribute 'xsi:type' contains a namespace prefix, which is declared in the root element.
When I read this document as a StreamSource or SAXSource and transform it with Xalan into a DOMResult, the namespaces are invalid because the namespace declaration 'xmlns:b="http://b"' is lost:
<a:a1 xmlns:a="http://a">
<a:a2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="b:B"/>
</a:a1>
When I try to read the document as a DOMSource and try to transform it into a DOMResult, an exception occurs ('NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.').
I attach the example code and output.