sexta-feira, 19 de março de 2010

Validador do XML da NF-e

Estou disponibilizando um form que valida o XML gerado pelo Ax. O form pode ser utilizado na fase de homologação da NF-e em quando as notas fiscais estão sendo rejeitadas por erro de schema no xml.

Exemplos de erro:
The 'http://www.portalfiscal.inf.br/nfe:cPais' element is invalid - The value '55' is invalid according to its datatype 'String' - The Enumeration constraint failed.

The 'http://www.portalfiscal.inf.br/nfe:cPais' element is invalid - The value '55' is invalid according to its datatype 'http://www.portalfiscal.inf.br/nfe:Tpais' - The Enumeration constraint failed.

Neste caso, existem 2 erros com o campo cPais, foi enviado o codigo 55 porém ele não esta entre os valores aceitos pela enumeração usada para o codigo bacen do país.

O form usa uma DLL que efetivamente valida um XML contra o esquema da NF-e. Essa DLL deve ser colocada na pasta "bin" do client.

Disponibilizei um arquivo zip aqui. Esse zip contém:
1. NfeXmlValidation.dll - dll que valida o xml
2. PrivateProject_NfeXmlValidator.xpo - projeto que contém a referencia para a dll e o form
3. Validator.cs - o codigo fonte da dll.



DISCLAIMER!!! Este conteúdo foi publicado "as is", sem garantias ou direitos.

2 comentários:

lele disse...

fizemos algo parecido, mas com uma visão de prevenção...
Na hora de lançar na ordem de venda fazemos uma checagem do schema, se não passar, o lançamento é cancelado...

Na imagem abaixo eu deixei o descritivo do item só com "enter" para causar um erro.

http://img215.imageshack.us/img215/5137/validaao.jpg

lele disse...

acabou que este ambiente que fiz o teste não estava com o layout de produto com o fix que eu comentei posts abaixo, segue o código na integra:
http://codepaste.net/nj8z92

mesma ordem de venda (valor de um item como zero) da imagem anterior com o código acima (menos um erro de schema):
http://img718.imageshack.us/img718/6976/validaao2.jpg