225 - Rejeição: Falha no schema XML da NFe

O lote de NF-e é rejeitado por "215 - Rejeição: Falha no schema XML" ou "225 - Rejeição: Falha no schema XML da NFe". O arquivo XML é aceito pelo programa emissor da SEFAZ/SP e também não obtemos erro na validação das mensagens da NF-e oferecida pela SEFAZ/RS (http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx).

Existem diversos motivos para que uma mensagem XML seja rejeitada por falha no schema XML, que quer dizer que o XML da mensagem não atende a definição de estrutura e/ou de conteúdo dos campos estabelecidos em seu schema XML (arquivo XSD).

Existe um caso particular de erro de Schema XML que dificulta a sua identificação, pois o arquivo XML supostamente problemático é aceito pelo Aplicativo emissor de NF-e de SP e pelo validador de mensagem da SEFAZ/RS (http://www.sefaz.rs.gov.br/NFE/NFE-VAL.aspx).

A causa do problema é o byte-order mark (BOM) que é gravado no início do arquivo quando indicamos que o arquivo deva ser UTF-8 na sua gravação, o BOM é tratado (=eliminado) pela maioria dos novos editores, o que dificulta ainda mais a solução desta falha.

O uso de editores hexadecimais ou do editor da linha de comando permite verificar a existência destes caracteres.

(vide imagem http://flexdocs.com.br/FAQ/images/upload_icons/BOM.jpg)


O problema pode ser solucionado pela simples eliminação destes caracteres na leitura ou fazer a leiutra de forma correta para que estes caracteres tenham sentido para o framework e sejam intrepretados e eliminados.