Я пытаюсь проверить фрагмент XML с помощью схемы XML с помощью метода расширения XDocument.Validate.Всякий раз, когда используется недопустимый фрагмент Xml, ValidationEventHandler срабатывает правильно, однако оба свойства LineNumber и LinePosition исключения XmlSchemaValidationException равны 0.
private bool Validate(XDocument doc)
{
bool isValid = true;
List<string> validationErrors = new List<string>();
XmlSchemaSet schemas = new XmlSchemaSet();
schemas.Add(null, "MyCustomSchema.xsd");
doc.Validate(schemas, (sender, args) =>
{
validationErrors.Add(String.Format("{0}: {1} [Ln {2} Col {3}]",
args.Severity,
args.Exception.Message,
args.Exception.LineNumber,
args.Exception.LinePosition));
isValid = false;
}, false);
return isValid;
}
Моя цель в вышеприведенном примере - использовать validationErrors для информирования пользователя опочему проверка не удалась.Однако при использовании этого метода значения LineNumber и LinePosition равны 0.
Фрагмент кажется достаточно простым и работает, как ожидается, с точки зрения проверки как действительных, так и недействительных фрагментов XML.
Заранее спасибо!