Добрый вечер всю голову уже сломал, как сделать, что бы при проверке xml по XSD, выводились все ошибки, а не одну.
Код приведенный нише выводит только одну ошибку.

```1c
    Функция ПроверкаПоСхемеXSD()

    ИмяСхемыXSD = ПолучитьФайлСхемыXSD();
    ИтогПроверки = Ложь;

    Если ИмяСхемыXSD = Неопределено Тогда
    Возврат ИтогПроверки;
    КонецЕсли;

    Попытка
    ДокЭкспорт = Новый COMОбъект("Msxml2.DOMDocument.5.0");
    Исключение
    Попытка
    ДокЭкспорт = Новый COMОбъект("Msxml2.DOMDocument.3.0");
    Исключение
    Возврат ИтогПроверки;
    КонецПопытки;
    КонецПопытки;

    Попытка
    Попытка
    КэшСхем = Новый COMОбъект("Msxml2.XMLSchemaCache.5.0");
    КэшСхем.add(", ИмяСхемыXSD);
    ДокЭкспорт.Schemas = КэшСхем;
    Исключение
    Сообщить("Не удалось подключить схему проверки, причина: "+Символы.ПС+""+ОписаниеОшибки()+"",СтатусСообщения.Важное);
    Возврат ИтогПроверки;
    КонецПопытки;

    ДокЭкспорт.ValidateOnParse = Истина;
    ДокЭкспорт.Async = Ложь;
    ДокЭкспорт.Load(ВыборФайла);

    Error = ДокЭкспорт.ParseError;
    Если Error.ErrorCode = 0 Тогда
    ИтогПроверки = Истина;
    Иначе
    // есть ошибка
    СтрокаОшибки = Error.Reason+Символы.ПС+Error.SrcText;
    Сообщить(НСтр("ru = 'Найдена ошибка при проверке файла "+ВыборФайла+" по xsd схеме:"+Символы.ПС+"" "+СтрокаОшибки+"".'"),СтатусСообщения.Важное);
    КонецЕсли;

    Исключение
    Возврат ИтогПроверки;
    КонецПопытки;

    Возврат ИтогПроверки;

    КонецФункции
```
---
,

```1c
    XMLDoc = New COMObject("Msxml2.DOMDocument.6.0");
    XMLDoc.Async = false;
    XMLDoc.ValidateOnParse = true;
    SchemaCache = New COMObject("Msxml2.XMLSchemaCache.6.0");
    SchemaCache.Add(",SchemaFile);
    XMLDoc.Schemas = SchemaCache;
    XMLDoc.SetProperty("MultipleErrorMessages", true);
    XMLDoc.Load(XMLFile);
    ErrObj = XMLDoc.ParseError;
    If ErrObj.ErrorCode <> 0 Then
    For Each ErrItem In ErrObj.AllErrors Do
    Message("Error: " + ErrItem.Reason + " " + ErrItem.SrcText);
    EndDo;
    EndIf;
```

msdn говорит, что эта возможность появилась с MSXML 5.0.

А к вопросу, как это сделать средствами 1с присоединяюсь.
---
А просто в цикл загнать не получится?

      Error = ДокЭкспорт.ParseError;
      Для каждого стр из Error Цикл

      Если Error.ErrorCode = 0 Тогда
         ИтогПроверки = Истина;
      Иначе
      // есть ошибка
      СтрокаОшибки = Error.Reason+Символы.ПС+Error.SrcText;
      Сообщить(НСтр("ru = 'Найдена ошибка при проверке файла "+ВыборФайла+" по xsd схеме:"+Символы.ПС+""" "+СтрокаОшибки+""".'"),СтатусСообщения.Важное);
      КонецЕсли;

      КонецЦикла;
---
ponaroshku, Error - это

```1c
    Свойство - Error
    Значение - COMОбъект
    Тип - COMОбъект
```
---
,

```1c
    XMLDoc = New COMObject("Msxml2.DOMDocument.6.0");
    XMLDoc.Async = false;
    XMLDoc.ValidateOnParse = true;
    SchemaCache = New COMObject("Msxml2.XMLSchemaCache.6.0");
    SchemaCache.Add(",SchemaFile);
    XMLDoc.Schemas = SchemaCache;
    XMLDoc.SetProperty("MultipleErrorMessages", true);
    XMLDoc.Load(XMLFile);
    ErrObj = XMLDoc.ParseError;
    If ErrObj.ErrorCode <> 0 Then
    For Each ErrItem In ErrObj.AllErrors Do
    Message("Error: " + ErrItem.Reason + " " + ErrItem.SrcText);
    EndDo;
    EndIf;
```

msdn говорит, что эта возможность появилась с MSXML 5.0.

А к вопросу, как это сделать средствами 1с присоединяюсь.
---
lootinn, Спасибо!
---
штатного механизма в 1С -ке как я понимаю нет?
---
Проблема в том, что такой алгоритм работы диктует стандарт XML. Обработка должна быть немедленно прервана, при нахождении первой ошибки.
Есть инициатива MicroXML, где предполагается возможность продолжения обработки документа даже после ошибки.
---
aristar, это как бы вот это http://sourceforge.net/projects/uxml/
---
Возможно, детали сходу не видны. Я имел ввиду вот это
---
В данный момент стоит задача использовать методы и язык 1с-ки, соответственно вопрос кто нибудь с этим сталкивался?.
Но всё равно интересно как получить все ошибки если делать через Msxml2.DOMDocument
---
Остается понять как сделать средствами 1С