У меня есть метод, который проверяет XML на соответствие XSD, в котором я пытаюсь передать несколько записей. При обработке исключений я получаю только первое возникшее исключение в виде сообщения. как получить все ссылки на ошибки?
public static bool Validate(string sFileXML, string sFileXSD)
{
try
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, sFileXSD);
settings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
document.Load(sFileXML);
XmlReader objReader = XmlReader.Create(new StringReader(document.InnerXml), settings);
while (objReader.Read())
{
}
return true;
}
catch (Exception eException)
{
Console.WriteLine(eException.Message);
return false;
}
}
2 ответа
Вы можете установить ValidationEventHandler
на XmlReaderSettings
. Это даст вам возможность обрабатывать каждое событие и исключение при чтении XML.
{{X0} } имеет свойство Exception
, которое содержит исключение проверки XML.
Я не уверен, что это то, что вы ищете, но вы можете использовать Try-Catch
в цикле:
public static bool Validate(string sFileXML, string sFileXSD)
{
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, sFileXSD);
settings.ValidationType = ValidationType.Schema;
XmlDocument document = new XmlDocument();
document.Load(sFileXML);
XmlReader objReader = XmlReader.Create(new StringReader(document.InnerXml), settings);
bool success = true, canRead = true;
while(canRead)
{
try
{
canRead = objReader.Read();
// do something else?
} catch (Exception eException)
{
success = false;
Console.WriteLine(eException.Message);
}
}
return success;
}
Похожие вопросы
Новые вопросы
c#
C# (произносится как «see Sharp») — это высокоуровневый мультипарадигменный язык программирования со статической типизацией, разработанный Microsoft. Код C# обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, которое включает в себя .NET, .NET Framework, .NET MAUI и Xamarin среди прочих. Используйте этот тег для ответов на вопросы о коде, написанном на C#, или о формальной спецификации C#.