Melhora no ValidacaoSchemaException #70
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introdução
Ao realizar validação do schema do xml, por vezes não é possível ter acesso ao xml gerado para podermos revisar, o que nos resta seria remover o pacote nuget temporariamente e subir o projeto zeus no nosso projeto. Isso é por vezes necessário, porém burocrático e pouco eficiente.
O que foi feito
Por esse motivo, eu resolvi criar o atributo
XmlString
noValidacaoSchemaException
. Isso traz uma vantagem no momento de realizar algumas chamadas que não temos o poder de montar o xml para envio.Exemplo de problema causado
Para exemplificar, eu tive um problema ao realizar um cancelamento de nota ao chamar o método
servicoNFe.RecepcaoEventoCancelamento(1, 1, protocolo, chaveNFe, justificativa, cpfCnpj);
O xml de envio de cancelamento é montado internamente e não temos acesso ao que foi gerado para conferir possíveis inconsistências.
Solução
Com essa mudança, caso qualquer validação de schema falhe, o xml com falhas virá junto ao ValidacaoSchemaException, facilitando o debug para correções de problemas sem a necessidade de referenciar o projeto diretamente.
Como utilizar
Objetivo final
Facilitar o debug da aplicação sem a necessidade de referenciar o projeto Zeus Fiscal no meu projeto para essa situação