I have this function to validate an xml:
public static bool ValidarXML(string pathXML, string pathSchema, ref string retorno)
{
bool falhou;
// Define o tipo de validação
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
// Carrega o arquivo de esquema
XmlSchemaSet schemas = new XmlSchemaSet();
settings.Schemas = schemas;
// Quando carregar o eschema, especificar o namespace que ele valida
// e a localização do arquivo
schemas.Add(null, pathSchema);
// Especifica o tratamento de evento para os erros de validacao
// settings.ValidationEventHandler += ValidationEventHandler;
// cria um leitor para validação
XmlReader validator = XmlReader.Create(pathXML, settings);
falhou = false;
try
{
// Faz a leitura de todos os dados XML
while (validator.Read()) { }
}
catch (XmlException err)
{
// Um erro ocorre se o documento XML inclui caracteres ilegais
// ou tags que não estão aninhadas corretamente
retorno = "Ocorreu um erro critico durante a validação do XML: " + err.Message;
falhou = true;
}
finally
{
validator.Close();
retorno = "Arquivo validado com sucesso";
}
return !falhou;
}
But I am trying to pass the file, and it is returning me error:
ValidarXML("E:\nota.xml", typeof(tcNfse), ref a);
The schema in this case is typeof(tcNfse)
It returns the following error:
Can not convert from "System.Type" to "string"
As per the comments, I was able to resolve this error above by adding the suggestion:
ValidarXML("E:\nota.xml", nameof(tcNfse), ref a);
But he says he can not find tcNfse
, he's looking for the file inside the project, in case I have to go through the file location, is that it? instead of it within the program?