Gostaria de pedir uma ajuda a quem já trabalho com isso.
Estou gerando o XML para envio da nota fiscal eletrônica (em lote) mas realmente ainda não estou entendendo muito bem como tudo isso funciona.
Gerei o XML (usando o manual de v400) e fui validar no site da SEFAZ RS (eles tem esse validar de de XML de NF-e), porém está dando erro, sem que é em relação ao Namespace mas não sei como solucionar isso.
Segue parte do código que gera o XML
[code]String versaoEnviNFe = “1.10”;
String nameSpace = “http://www.portalfiscal.inf.br/nfe”;
Namespace par = Namespace.getNamespace(nameSpace);
Document documento = new Document();
Element enviNFe = new Element(“enviNFe”, par);
enviNFe.setAttribute(“versao”, versaoEnviNFe);
Element idLote = new Element(“idLote”, par);
idLote.setText(numeroLote);
enviNFe.addContent(idLote);
documento.setRootElement(enviNFe);
for (NotaFiscal nota : lista) {
Element NFe = new Element("NFe", par); // PARECE QUE O PROBLEMA ESTÁ AQUI
Namespace par1 = par; // apenas atribui o Namespace já declarado
enviNFe.addContent(NFe);
Endereco enderecoEmitente = nota.getEmitente().getEndereco();
String codigoMunicipioIBGE = enderecoEmitente.getCodigoMunicipio();
String chaveAcesso = Lib.getChaveAcessoNota(nota);
Date dataEmissaoNota = nota.getDataEmissao();
String codigoUnico = new SimpleDateFormat("dHHmmS").format(dataEmissaoNota);
String modeloNota = nota.getModeloDocumento(); // geralmente: 55
String serieNota = nota.getSerie();
String numeroNota = new DecimalFormat("000000000").format(nota.getNumero());
String codigoUF = Lib.getListaEstadoIBGE().get(enderecoEmitente.getUF()).getCodigo().toString();
String cnpjEmitente = nota.getEmitente().getIdentificador().replaceAll("[./-]", "");
String dv = Lib.getDigitosChaveAcessoNFe(chaveAcesso);
chaveAcesso = "NFe" + chaveAcesso + dv;
Element InfNfe = new Element("infNfe", par1);
InfNfe.setAttribute("versao", versaoEnviNFe);
InfNfe.setAttribute("id", chaveAcesso);
Element ide = new Element("ide", par1);
Tentando validar: C:/Projetos/Desktop/KNFe/10-env-lot.xml
Erro encontrado na validação
org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'infNfe'. One of '{"http://www.portalfiscal.inf.br/nfe":infNFe}' is expected.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at knfe.lib.ValidarXML.setValidar(ValidarXML.java:46)
at knfe.gerador.Gerador.exemplo(Gerador.java:592)
at knfe.ui.KNFeUI.iniciar(KNFeUI.java:99)
at knfe.ui.KNFeUI.<init>(KNFeUI.java:57)
at knfe.ui.KNFeUI.getMainUI(KNFeUI.java:65)
at knfe.Main$1.run(Main.java:44)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)