Доброе утро, я обычно избегаю задавать вопросы здесь на форуме, потому что я всегда нахожу много ответов, которые заполняют мою ситуацию. Я делаю интеграцию с Sefaz, используя W-файл авторизации NFe 4.00, но когда я выполню проверку моего XML, возвращается ошибка «Тип» http://www.portalfisc.in.info/nfe:TNFe «не объявлен».
Я создал свой проект в Asp.Net Core (Web Api), и этот код я использую для проверки:
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.ValidationType = ValidationType.Schema;
xmlReaderSettings.Schemas = new XmlSchemaSet();
xmlReaderSettings.XmlResolver = new XmlUrlResolver() { Credentials = CredentialCache.DefaultCredentials };
xmlReaderSettings.Schemas.Add(null, localSchema);
xmlReaderSettings.ValidationEventHandler += new ValidationEventHandler(delegate (object sender, ValidationEventArgs e)
{
var ex = new Exception(string.Format("Falha ao validar Xml! Linha: {0}, Coluna: {1}, Mensagem: {2}",
e.Exception.LineNumber, e.Exception.LinePosition, e.Exception.Message));
ex.Data.Add("statusCode", HttpStatusCode.BadRequest);
throw ex;
});
using (var stringReader = new StringReader(xml.InnerXml))
{
var xmlReader = XmlReader.Create(stringReader, xmlReaderSettings);
while (xmlReader.Read()) { }
xmlReader.Close();
Помня, что:
- Код работает на проектах, отличных от Core;
- Ошибка возникает в следующей строке: "var xmlReader = XmlReader.Create (stringReader, xmlReaderSettings);"
- Все схемы NFe 4.00 обновлены;
- Я знаю, что ошибка не в XML, потому что она нормально работает в версии старого проекта;
- Я уже попробовал несколько советов от других, которые все равно спросили и потерпели неудачу;
- Схемы, которые я использую, можно скачать по следующей ссылке: "http://www.nfe.fazenda.gov.br/PORTAL/exibirArquivo.aspx?conteudo=CoNA9VIgZ3E=";
Я прошу прощения за плохой перевод вопроса и спасибо за вашу помощь.