Validação de XML com SAX!

10 respostas
dcbasso

PEssoal, estou tentando validar alguns XMLs da receita federal (sim sim a famosa Nota Fiscal Eletronica), e estou tentando validar os xmls utilizando os XSD que tem a disposicao no site da receita.

Fiz todos as implementações e quando tento validar o xml, o erro que retorna é este:

[color=red] “org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element ‘enviNFe’.”[/color]

e o xml que tenho possiu o tal do enviNFe:

Olhem:

"<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10"> <idLote>000000123</idLote> <NFe> <infNFe Id="NFe41080673955296000178550000000517230209135105" versao="1.10" /> ... ... ..."

que será o meu erro?

Abraçosss

10 Respostas

F

fala Dante!

seguinte

tais fechando o NODE com a /

sendo que as proximas tags vao dentro desse node …

cfe mostra abaixo:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">
	<idLote>000000000000102</idLote>
	<NFe>
		<infNFe Id="NFe42..." versao="1.10">
			<ide>
				...
			</ide>
			<emit>
				...
			</emit>
			<dest>
				...
			</dest>
			<det nItem="1">
				<prod>
					...
				</prod>
				<imposto>
					<ICMS>
						...
					</ICMS>
					<IPI>
						...
					</IPI>
					<PIS>
						...
					</PIS>
					<COFINS>
						...
					</COFINS>
				</imposto>
				<infAdProd>INFORMACAO PRODUTO</infAdProd>
			</det>			
			<total>
				<ICMSTot>
					...
				</ICMSTot>
			</total>
			<transp>
				...
			</transp>
			<cobr>
				...
			</cobr>
			<infAdic>
				<infAdFisco>INFO AD. FISCO</infAdFisco>
				<infCpl>IMFORMACOES COMPLEMENTARES</infCpl>
			</infAdic>
		</infNFe>

		....

		.............
dcbasso

Eu to usando o Xstream para formar este XML e apenas passo o Object que quero formar o XML, como devo proceder?

Tenho que fazer algum comando para ele tirar a barra final la??

Abracoss

F

creio que não seja um comando para nao fechar a tag
depende de como declarou o bean (se é assim que se chama heheh)

assim, tem q ter um objeto InfNfe, que este tem o atributo id e versao e os outros objetos ide, emit, dest, det e ai vai…

abraço

dcbasso

O infNFe soh tem: id, versao!!

F

sim, mas tem mais coisas dentro dele…
as informações da nfe, emitente, destinatario,

como coloquei no ‘esqueleto’ do post anterior, todas as informações da nfe vão dentro do infNFe

coloca o teu xml ai pra gente ver…

dcbasso
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
- <enviNFe xmlns="http://www.portalfiscal.inf.br/nfe" versao="1.10">
  <idLote>000000123</idLote> 
- <NFe>
  <infNFe Id="NFe41080673955296000178550000000517230209135105" versao="1.10" /> 
- <ide>
  <cUF>41</cUF> 
  <cNF>20913510</cNF> 
  <natOp>VENDAS A VISTA</natOp> 
  <indPag>1</indPag> 
  <mod>55</mod> 
  <serie>0</serie> 
  <nNF>51723</nNF> 
  <dEmi>2008-06-21</dEmi> 
  <dSaiEnt>2008-06-21</dSaiEnt> 
  <tpNF>1</tpNF> 
  <cMunFG>4104808</cMunFG> 
  <tpImp>1</tpImp> 
  <tpEmis>1</tpEmis> 
  <cDV>5</cDV> 
  <tpAmb>2</tpAmb> 
  <finNFe>1</finNFe> 
  <procEmi>0</procEmi> 
  <verProc>4.0</verProc> 
  </ide>
- <emit>
  <CNPJ>73955296000178</CNPJ> 
  <xNome>JMASSONI E CIA LTDA</xNome> 
- <enderEmit>
  <xLgr>BR 369 KM 524</xLgr> 
  <nro>S/N</nro> 
  <xBairro>VERFICAR</xBairro> 
  <cMun>4104808</cMun> 
  <xMun>CASCAVEL</xMun> 
  <UF>PR</UF> 
  <CEP>85800000</CEP> 
  <cPais>1058</cPais> 
  <xPais>BRASIL</xPais> 
  <fone>[telefone removido]</fone> 
  </enderEmit>
  <IE>[telefone removido]</IE> 
  </emit>
- <dest>
  <CNPJ>05704953000154</CNPJ> 
  <xNome>DIVEL COM. E DISTR. ZANI LTDA</xNome> 
- <enderDest>
  <xLgr>AV. BRASIL, 2808</xLgr> 
  <nro>2808</nro> 
  <xBairro>SAO CRISTOVAO</xBairro> 
  <cMun>4104808</cMun> 
  <xMun>CASCAVEL</xMun> 
  <UF>PR</UF> 
  <CEP>85816290</CEP> 
  <cPais>1058</cPais> 
  <xPais>BRASIl</xPais> 
  <fone>2274955</fone> 
  </enderDest>
  <IE>[telefone removido]</IE> 
  </dest>
- <det>
- <det nItem="1">
- <prod>
  <cProd>279</cProd> 
  <cEAN /> 
  <xProd>CACHACA V.FAZENDEIRO S/C 970</xProd> 
  <CFOP>5102</CFOP> 
  <uCom>CX</uCom> 
  <qCom>1.0000</qCom> 
  <vUnCom>20.5000</vUnCom> 
  <vProd>492.00</vProd> 
  <cEANTrib /> 
  <uTrib>CX</uTrib> 
  <qTrib>24.0000</qTrib> 
  <vUnTrib>20.5000</vUnTrib> 
  </prod>
- <imposto>
- <pis>
- <PISAliq>
  <CST>1</CST> 
  <vBC>492.00</vBC> 
  <pPIS>1.65</pPIS> 
  <vPIS>8.11</vPIS> 
  </PISAliq>
  </pis>
- <cofins>
- <COFINSAliq>
  <CST>1</CST> 
  <vBC>492.00</vBC> 
  <pCOFINS>7.65</pCOFINS> 
  <vCOFINS>37.63</vCOFINS> 
  </COFINSAliq>
  </cofins>
  </imposto>
  </det>
  </det>
  <total /> 
- <transp>
  <modFrete>1</modFrete> 
  </transp>
- <cobr>
- <dup>
  <nDup>51723.01</nDup> 
  <dVenc>2008-06-21</dVenc> 
  <vDup>1000.00</vDup> 
  </dup>
  </cobr>
- <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
- <SignedInfo>
  <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /> 
  <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> 
- <Reference URI="#">
- <Transforms>
  <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /> 
  </Transforms>
  <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> 
  <DigestValue>2jmj7l5rSw0yVb/vlWAYkK/YBwk=</DigestValue> 
  </Reference>
  </SignedInfo>
  <SignatureValue></SignatureValue> 
- <KeyInfo>
- <X509Data>
  <X509Certificate></X509Certificate> 
  </X509Data>
  </KeyInfo>
  </Signature>
  </NFe>
  </enviNFe>

Oia o XML AE, naum apaguei quase nada!!

F

compara com o meu xml la de cima, esse teu ai ta errado

como eu falei o e outros sao FILHOS do

então você não devia fechar a tag

e sim, fazer assim:

.... ....

captou?

Boskyn

Cara para isso tua classe infNFe tem que conter os seguintes campos:

@XStreamAsAttribute
	@XStreamAlias("Id")
	private String id;	
	@XStreamAsAttribute
	@XStreamAlias("versao")
	private final String VERSAO = "1.10";
	
	private Ide ide;
	private Emit emit;
	private Dest dest;
	@XStreamImplicit(itemFieldName = "det")
	private List<Det> det;
	private Total total;
	private Transp transp;
drcosta

Pessoal,

estou tendo o mesmo problema com a validação, ou seja, o meu xml está correto, mas da o seguinte erro ao tentar valida-lo:

org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element NFe.

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.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.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(Unknown Source)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)

at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.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.jaxp.validation.StreamValidatorHelper.validate(Unknown Source)

at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorImpl.validate(Unknown Source)

at javax.xml.validation.Validator.validate(Unknown Source)

at teste.Teste2.validaXML2(Teste2.java:120)

at teste.Teste2.main(Teste2.java:37)

Segue meu código que fiz para testar:

InputStream xml;
    
	try {
		
		xml = new FileInputStream("C:\\Program Files\\jboss-5.1.0.GA-jdk6\\jboss-5.1.0.GA\\mundial\\notas_assinadas\\33090733304981000110550010000004320000004320-nfe.xml");
	    InputStream xsd1 = new FileInputStream("D:\\Projetos\\NFe\\Sefaz\\xsd\\leiauteNFe_v1.10.xsd"); 
	    InputStream xsd2 = new FileInputStream("D:\\Projetos\\NFe\\Sefaz\\xsd\\tiposBasico_v1.02.xsd");
	    InputStream xsd3 = new FileInputStream("D:\\Projetos\\NFe\\Sefaz\\xsd\\xmldsig-core-schema_v1.01.xsd");
	    
	    SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
	    
	    StreamSource src1 = new StreamSource(xsd1);
	    StreamSource src2 = new StreamSource(xsd2);
	    StreamSource src3 = new StreamSource(xsd3);
	    Source[] sources = new Source[] {src3, src2, src1};   
	    Schema schema = factory.newSchema(sources);
	   
	    javax.xml.validation.Validator v = schema.newValidator();
	    
	    v.validate(new StreamSource(xml));

	} catch (FileNotFoundException e) {
		e.printStackTrace();
	} catch (SAXException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}

Alguém sabe o quê estou fazendo de errado? Ajuda Please!!!

vcsmetallica

Galera,

Estou com o mesmo problema acima. So que nao estou sabendo onde esta o problema. Pelo o que eu observei todas as minhas tag estao na ordem certa.

Ode estou errando?

Abaixo o meu XML assinado.

<?xml version="1.0" encoding="UTF-8"?>
<enviNFe versao="1.10" xmlns="http://www.portalfiscal.inf.br/nfe">
  <idLote>000000000001239</idLote>
  <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
    <infNFe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="NFe31081204625905000108550011000002240000012395" versao="1.10">
      <ide>
        <cUF>31</cUF>
        <cNF>000001239</cNF>
        <natOp>saida</natOp>
        <indPag>0</indPag>
        <mod>55</mod>
        <serie>1</serie>
        <nNF>100000224</nNF>
        <dEmi>2008-12-03</dEmi>
        <dSaiEnt>2008-12-03</dSaiEnt>
        <tpNF>1</tpNF>
        <cMunFG>3106200</cMunFG>
        <tpImp>1</tpImp>
        <tpEmis>1</tpEmis>
        <cDV>5</cDV>
        <tpAmb>2</tpAmb>
        <finNFe>1</finNFe>
        <procEmi>0</procEmi>
        <verProc>1.10</verProc>
      </ide>
      <emit>
        <CNPJ>04625905000108</CNPJ>
        <xNome>TESTE DE SINTEGRA</xNome>
        <enderEmit>
          <xLgr>RUA GUAJAJARAS</xLgr>
          <nro>977</nro>
          <xCpl>CPL 6</xCpl>
          <xBairro>LOURDES</xBairro>
          <cMun>3106200</cMun>
          <xMun>BELO HORIZONTE</xMun>
          <UF>MG</UF>
          <CEP>30180100</CEP>
          <cPais>1058</cPais>
          <xPais>Brasil</xPais>
          <fone>[telefone removido]</fone>
        </enderEmit>
        <IE>0623156340013</IE>
      </emit>
      <dest>
        <CNPJ>42767525000105</CNPJ>
        <xNome>Chart Consultores</xNome>
        <enderDest>
          <xLgr>RUA GUAJAJARAS</xLgr>
          <nro>SEM NUMERO</nro>
          <xCpl>SEM COMPLEMENTO</xCpl>
          <xBairro>Lourdes</xBairro>
          <cMun>3106200</cMun>
          <xMun>BELO HORIZONTE</xMun>
          <UF>MG</UF>
          <CEP>30180100</CEP>
          <cPais>1058</cPais>
          <xPais>Brasil</xPais>
        </enderDest>
        <IE>ISento</IE>
      </dest>
      <det nItem="1">
        <prod>
          <cProd>10</cProd>
          <cEAN>0000000000010</cEAN>
          <xProd>PROD. TRIBUTACAO 10</xProd>
          <CFOP>5102</CFOP>
          <uCom>UN</uCom>
          <qCom>1.0000</qCom>
          <vUnCom>100.0000</vUnCom>
          <vProd>100.00</vProd>
          <cEANTrib>0000000000010</cEANTrib>
          <uTrib>UN</uTrib>
          <qTrib>1.0000</qTrib>
          <vUnTrib>100.0000</vUnTrib>
        </prod>
        <imposto>
          <ICMS>
            <ICMS10>
              <orig>0</orig>
              <CST>10</CST>
              <modBC>0</modBC>
              <vBC>100.00</vBC>
              <pICMS>18.00</pICMS>
              <vICMS>1800.00</vICMS>
              <modBCST>0</modBCST>
              <pMVAST>40.00</pMVAST>
              <pRedBCST>18.00</pRedBCST>
              <vBCST>140.00</vBCST>
              <pICMSST>720.00</pICMSST>
              <vICMSST>7.20</vICMSST>
            </ICMS10>
          </ICMS>
          <PIS>
            <PISAliq>
              <CST>01</CST>
              <vBC>0.00</vBC>
              <pPIS>0.00</pPIS>
              <vPIS>0.00</vPIS>
            </PISAliq>
          </PIS>
          <COFINS>
            <COFINSAliq>
              <CST>01</CST>
              <vBC>0.00</vBC>
              <pCOFINS>0.00</pCOFINS>
              <vCOFINS>0.00</vCOFINS>
            </COFINSAliq>
          </COFINS>
        </imposto>
      </det>
      <total>
        <ICMSTot>
          <vBC>100.00</vBC>
          <vICMS>1800.00</vICMS>
          <vBCST>140.00</vBCST>
          <vST>7.20</vST>
          <vProd>100.00</vProd>
          <vFrete>0.00</vFrete>
          <vSeg>0.00</vSeg>
          <vDesc>0.00</vDesc>
          <vII>0.00</vII>
          <vIPI>0.00</vIPI>
          <vPIS>0.00</vPIS>
          <vCOFINS>0.00</vCOFINS>
          <vOutro>0.00</vOutro>
          <vNF>100.00</vNF>
        </ICMSTot>
      </total>
      <transp>
        <modFrete>0</modFrete>
      </transp>
    </infNFe>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
      <SignedInfo>
        <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
        <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
        <Reference URI="#NFe31081204625905000108550011000002240000012395">
          <Transforms>
            <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
            <Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
          </Transforms>
          <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
          <DigestValue>hfZkfZT9b+EYdaJGAJExTuai7k0=</DigestValue>
        </Reference>
      </SignedInfo>
      <SignatureValue>2Ozk2rn/rFtod4Vd5h6hZqzcG19AvrFkhsAqMjWQhnKkmnd7wm3ybTE2W32WxfTaLOOLKtijEDT3JQfC0SysSb5tZ1EZDDtw22sh3Flp4tWQrX3v5s0Wo8AWz7BZbzybDiaZXOmL6Peorj42+Y9GvjUSzmWd/egmd/H6eOrMSDU=</SignatureValue>
      <KeyInfo>
        <X509Data>
          <X509Certificate>MIIFrjCCBJagAwIBAgIQHQ7quvCAWFDzT4BHkbIAHjANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQGEwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEsMCoGA1UECxMjU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwgLSBTUkYxGDAWBgNVBAMTD0FDIFBST0RFTUdFIFNSRjAeFw0wODA2MTIwMDAwMDBaFw0xMTA2MTIyMzU5NTlaMIHPMQswCQYDVQQGEwJCUjELMAkGA1UECBMCTUcxFzAVBgNVBAcUDkJFTE8gSE9SSVpPTlRFMRMwEQYDVQQKFApJQ1AtQnJhc2lsMSowKAYDVQQLFCFTZWNyZXRhcmlhIGRhIFJlY2VpdGEgRmVkZXJhbC1TUkYxEzARBgNVBAsUClNSRiBlLUNOUEoxRDBCBgNVBAMTO0NIQVJUSSBDT01FUkNJTyBFIFBSRVNUQUNBTyBERSBTRVJWSUNPUyBMVERBOjA0NjI1OTA1MDAwMTA4MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDoPaneoKe5wMlndQ9YNge43sNe9OfaG95WzrDEZXsKAJOu7XIpLZ5gFswghoEF+Tku1haXC28fFqJ/D7jhcHvEnGShmqAEKcQNuhfR5i6EEmtO6HLIcd5W1nKHDAEFYZs7mf7GeuLbx2Ou9MDypKCfuVbs8TfXSi4yX27clWjvIwIDAQABo4ICbDCCAmgwgcAGA1UdEQSBuDCBtaA9BgVgTAEDBKA0BDIxMDA1MTk2MTEwODUwMDc0MjE1MDAwMDAwMDAwMDAwMDAwMDAwTS43NTg5ODVTU1BNR6AsBgVgTAEDAqAjBCFBTlRPTklPIEJSRVRBUyBCUkFOREFPIERFIEFORFJBREWgGQYFYEwBAwOgEAQOMDQ2MjU5MDUwMDAxMDigFwYFYEwBAwegDgQMMDAwMDAwMDAwMDAwgRJjaGFydEBjaGFydC5jb20uYnIwCQYDVR0TBAIwADAfBgNVHSMEGDAWgBTdO9vtjZcRRUMBQ020Ev0O7niacDAOBgNVHQ8BAf8EBAMCBeAwgbYGA1UdHwSBrjCBqzBUoFKgUIZOaHR0cDovL2ljcC1icmFzaWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9sY3IvQUNQUk9ERU1HRVNSRi9MYXRlc3RDUkwuY3JsMFOgUaBPhk1odHRwOi8vaWNwLWJyYXNpbC5vdXRyYWxjci5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDUFJPREVNR0VTUkYvTGF0ZXN0Q1JMLmNybDBVBgNVHSAETjBMMEoGBmBMAQIDFDBAMD4GCCsGAQUFBwIBFjJodHRwOi8vaWNwLWJyYXNpbC5jZXJ0aXNpZ24uY29tLmJyL3JlcG9zaXRvcmlvL2RwYzAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwOAYIKwYBBQUHAQEELDAqMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5jZXJ0aXNpZ24uY29tLmJyMA0GCSqGSIb3DQEBBQUAA4IBAQAAMzM0+O9F4XvDup2TbdTfFHX2k3GwYWLMDvdV4E6eESXLQbP19imyO3hNrcDk4NyLja1e+rNb8sd3g6MY4jJPZHcCHEsJqqewwJ7WxBryGRnjBd5OGtdKn1RtvF9Ir916si2qyy80ZmgKeeCAwNdRgtCRs+gFS+16tPkM5lpBWxKjYeD5+i/Y7mo7ay6hxBwtVzcTy4b+yRx39sjwDxPhSaD6TtOWkKZztuvnh4upYa4K87vMmShfUHO/BYAc4bo0Zd7bQOl73LZykQfJ7ri86R3PqxiPjreA4bqD8kZwzTjGw6/3om2zDKYPbiwc69v+MPjZRTFs7r0+GLH79ThG</X509Certificate>
        </X509Data>
      </KeyInfo>
    </Signature>
  </NFe>
</enviNFe>
Criado 3 de fevereiro de 2009
Ultima resposta 30 de ago. de 2009
Respostas 10
Participantes 5