Задать вопрос

Как выявить ВСЕ ошибки и несоответствия xsd-схеме xml-файла?

У C# есть класс XmlSchemaSet, с помощью которого можно работать с xml файлами.
Ключевое слово вопроса - все .
Дело в том, что код с документации сайта microsoft при проверке xml-файла по xsd-схеме, вызывает исключение (при наличии ошибок в xml файле) и программа останавливается при нахождении первой ошибки.
Код C#:
public static void Main()
    {

        // Create the XmlSchemaSet class.
        XmlSchemaSet sc = new XmlSchemaSet();

        // Add the schema to the collection.
        sc.Add(null, "shema.xsd");

        // Set the validation settings.
        XmlReaderSettings settings = new XmlReaderSettings();
        settings.ValidationType = ValidationType.Schema;
        settings.Schemas = sc;
        settings.ValidationEventHandler += new ValidationEventHandler(ValidationCallBack);

        // Create the XmlReader object.
        XmlReader reader = XmlReader.Create("my.xml", settings);

        // Parse the file. 
        while (reader.Read()) ;

    }

    // Display any validation errors.
    private static void ValidationCallBack(object sender, ValidationEventArgs e)
    {
        Console.WriteLine("Validation Error: {0}", e.Message);
    }


Мне же нужно, чтобы проверка xml продолжалась, после нахождения первой ошибки , чтобы в итоге собрать инфу о позиции, типе всех ошибок, найденных в xml файле.
После изучения документации microsoft мне кажется, что дальнейшая проверка файла xml после вызова исключения невозможна, но все же напишу здесь свой вопрос , чтобы точно убедиться , если это так)
  • Вопрос задан
  • 1366 просмотров
Подписаться 1 Простой Комментировать
Решение пользователя Farwisdomer К ответам на вопрос (3)
@Farwisdomer
https://social.msdn.microsoft.com/Forums/en-US/e64...

На мой взгляд, сначала лучше проверить хмл на валидность (правильную структуру) и только потом по xsd схеме.
Ответ написан