早上好,我通常会避免在论坛上提问,因为我总能找到很多能满足我情况的答案 . 我正在使用NFe 4.00的授权Ws与Sefaz集成,但是当我将验证我的XML时,错误'Type' 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=”;
对于翻译不好的问题我感到抱歉,感谢您的帮助 .