子とその子にも名前空間を設定する必要がありますが、同じ名前空間に属性を付けると、サブ子には名前空間がありません。
私はそのようなものが必要です:
<?xml version="1.0" encoding="UTF-8"?>
<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe versao="2.00" Id="NFe35120810609770000190550010000011151000011155">
...
しかし、私のコードはこれだけを生成しています:
<?xml version="1.0" encoding="UTF-8"?>
<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00">
<NFe>
<infNFe versao="2.00" Id="NFe35120810609770000190550010000011151000011155">
...
XML のこの部分を生成するコードは次のとおりです。
Document doc = new Document();
Namespace portal = Namespace.getNamespace( "http://www.portalfiscal.inf.br/nfe" );
Element tagNfeProc = new Element( "nfeProc", portal );
tagNfeProc.setAttribute( "versao", "2.00" );
Element tagNFe = new Element( "NFe", portal );
...
tagNfeProc.getChildren().add( tagNFe );
doc.setRootElement( tagNfeProc );