Namespace em jdom

8 respostas
nathanpsouza

galera to com um problema meio anormal aqui, estou gerando um xml e adicionando alguns namespaces, porem ele insere o namespace vazio nas tags filhas e isso naum eh desejavel ja que essas tags quebram a validacao com o schema…

tb gostaria de ter o cabecalho do xml como mostrado na saida desejada.

saida:

<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" versao="1.10">
     <idLote xmlns="">1</idLote>
     <NFe>
          <infNfe xmlns="" versao="1.10" Id="1">

saida desejada:

<?xml version="1.0" encoding="UTF-8"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" versao="1.10">
     <idLote>1</idLote>
     <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
          <infNfe versao="1.10" Id="1">

fonte que gera essa parte do arquivo:

/*----------------------------------------------------------------------
         * NAMESPACES
         *--------------------------------------------------------------------*/
        Namespace paradinhaAew = Namespace.getNamespace("http://www.portalfiscal.inf.br/nfe");
        Namespace outraParadinha = Namespace.getNamespace("ds", "http://www.w3.org/2000/09/xmldsig#");
        Namespace maisUmaParadinha = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
        /*----------------------------FIM DOS NAMESPACES----------------------*/

        Element enviNFe = new Element("enviNFe",paradinhaAew);
        enviNFe.addNamespaceDeclaration(outraParadinha);
        enviNFe.addNamespaceDeclaration(maisUmaParadinha);
        enviNFe.setAttribute("versao", V_LEIAUTE);
        

        Element infNFe = new Element("infNfe");
        Element idLote = new Element("idLote");
        Element NFe = new Element("NFe", paradinhaAew);

8 Respostas

nathanpsouza

ninguem?

alexborges

pois é amigo estou com o mesmo problema q vc engraçado q tb é na NFe :?

qualquer coisa se eu resolver aqui posto para vc

nathanpsouza

eu consegui resolver, mais vou reescrever com xstream, a tarde se tiver tempo eu posto a solução com blocos de código de exemplo

[]'s

alexborges

tb solucionei de uma certa forma simplismente adiciono o namespace do elemento pai em todos os seus filhos,

alexborges

agora estou com o mesmo problema q vc…

se tiver um tempo e pode postar a solução no jdom

nathanpsouza

cara pra remover aqueles namespaces vazios ="" eu usei uma APP - Artíficio provisório permanente:

String gambitaBunita = saida.outputString(xmlNFe).replace("<NFe xmlns=\"\">", "<NFe>");

pedo o xml ja formado, chamo outputString do objeto saida, que eh um XMLOutputter, e dou um replace…
UAHISUHAIUHSIUHAIUSHIUAHS

por isso vou reescrever com xStream, jdom na minha opinião nao rola legal pra nfe :confused:

alexborges

hehehe…gambi…aff por enquanto fica assim mesmo até achar uma outra solução
mas vlw ai :smiley:

V

O meu não funcionou esses namespace… pq?

Criado 4 de setembro de 2009
Ultima resposta 17 de mar. de 2011
Respostas 8
Participantes 3