xmlns="" is not an attribute it's a namespace declaration.
It's hard to say exaclty what's causing it without seeing the files but if you create an element in a default namespace, e.g.
Code:
<html xmlns="http://www.w3.org/1999/xhtml"/>
and then you create another element within that one without a namespace then you must undeclare the namespace with xmlns="". E.g.:
Code:
<html xmlns="http://www.w3.org/1999/xhtml">
<xsl:element name="body"/>
</html>
body has no namespace declared so results must be like this:
Code:
<html xmlns="http://www.w3.org/1999/xhtml">
<body xmlns=""/>
</html>
The fact that you have a dtd means namespace declarations maybe being enforced via that.
--
Joe (
Microsoft MVP - XML)