Falha de Validação da NFe

Version 3, last updated by dfadel at Sep 28 13:25 2009 UTC

Contribuição de Djalma Fadel Junior.

Existe um bug conhecido na libxml2 versão 2....

Segundo os autores do projeto este bug esta corrigido a partir da verão 2.7.3, mas como a maiorias as distribuições linux ainda usa versões anteriores os próprios autores do projeto (libxml2) me orientaram a alterar o xsd para eliminar o erro.

Portanto, a melhor 'solução' (gambiarra) para usar as libs antigas foi modificar a expressão regular do arquivo tiposBasico_v1.02.xsd

de:

[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}

para:

[!-ÿ]{1}[ -ÿ]*[!-ÿ]{1}|[!-ÿ]{1}

Ou seja simplismente trocar o {0,} por *

Ambas expressões regulares significam a mesma coisa, porém a original deveria funcionar, não fosse o problema com a libxml2.

Quem puder deve atualizar a lib e verificar pelo phpinfo se a mesma foi incorporada ao php.

 

 

Outro problema com a validação foi notado por Álvaro Nunes Melo. Acontece com a palavra 'ISENTO' no campo IE do destinatário.

Mudar a expressão regular no arquivo tiposBasico_v1.02.xsd permite a validação do XML.

de:

<xs:pattern value="[0-9]{0,14}|ISENTO|PR[0-9]{4,8}"/>

para:

<xs:pattern value="ISENTO|[0-9]{0,14}|PR[0-9]{4,8}"/>

No comments yet. >