Java, XML e Namespaces - Problemas na serialização com namespaces

Estou com o seguinte problema:

Na documentação da nota fiscal eletrônica são feitas duas exigências quanto a declaração de namespaces:

1 - Os namespaces/elementos não devem ter prefixos
2 - Cada elemento deve ser sua declaração de namespace individual

Essas exigências me obrigam a gerar um arquivo xml da seguinte forma:


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe"></NFe>
</enviNFe>

No entanto, devido aos elementos enviNFe e NFe estarem no mesmo namespace ao serializar o documento xml obtenho o seguinte resultado:


<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe">
<NFe></NFe>
</enviNFe>

A ausência da declaração do namespace na tag faz com que o xml gerado seja considerado inválido.

Após debugar o código observei que no momento da serialização (classe: com.sun.org.apache.xml.internal.serializer.ToXMLStream) do atributo xmlns verifica-se a existência da declaração do namespace e portanto a declaração não é repetida.

Segue o código de exemplo:


		DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
		dbFactory.setNamespaceAware(true);
		DocumentBuilder builder = dbFactory.newDocumentBuilder();
		Document doc =  builder.newDocument();
		doc.setXmlVersion("1.0");
		Element parent = doc.createElement("enviNFe");
		parent.setAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe");
		doc.appendChild(parent);
		Element child = doc.createElement("NFe");
		child.setAttribute("xmlns", "http://www.portalfiscal.inf.br/nfe");
		parent.appendChild(child);
		DOMSource domSrc = new DOMSource(doc);
		StreamResult streamResult = new StreamResult(System.out);
		TransformerFactory transformerFac = TransformerFactory.newInstance();
		Transformer transformer = transformerFac.newTransformer();
		transformer.transform(domSrc, streamResult);

Olá, conseguiu resolver esse problema?