Тип 'http://www.portalfiscal.inf.br/nfe:TNFe' не объявлен - PullRequest
0 голосов
/ 05 сентября 2018

Доброе утро, я обычно избегаю задавать вопросы здесь на форуме, потому что я всегда нахожу много ответов, которые заполняют мою ситуацию. Я делаю интеграцию с 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=";

Я прошу прощения за плохой перевод вопроса и спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...