-
Notifications
You must be signed in to change notification settings - Fork 684
Falhas de Validação
Existe um bug conhecido na libxml2 versão 2.... Segundo os autores do projeto este bug está parcialmente corrigido (erro persiste na versão 2.7.3), mas como a maiorias as distribuições Linux e Windows (XAMMP, etc..) 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.03.xsd, no tipo "TString" 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 libXML 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 ou do emitente ("TIeDest" e "TIe"). Mudar a expressão regular no arquivo tiposBasico_v1.03.xsd permite a validação do XML, quando a IE é "vazia" ou "ISENTO" de:
<xs:pattern value="[0-9]{0,14}|ISENTO"/>
para:
<xs:pattern value="ISENTO|[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?"/>