|
Как получить результат проверки xml на соответствие схеме xsd? | ☑ | ||
---|---|---|---|---|
0
RomaH
naïve
21.01.14
✎
08:33
|
Есть такой вот скрипт:
Dim addtypes, format 'Set addtypes = CreateObject("msxml2.DOMDocument.6.0") 'addtypes.load("addtypes.xsd") 'addtypes.load("mlbtypes.xsd") Set format = CreateObject("msxml2.DOMDocument.6.0") format.load("%ИмяФайлаСхемы%") Dim schema Set schema = CreateObject("msxml2.XMLSchemaCache.6.0") 'call schema.add("", addtypes) call schema.add("", format) 'теперь будем загружать проверяемый xml Dim testing Set testing = CreateObject("msxml2.DOMDocument.6.0") testing.load("%ИмяФайлаСообщения%") testing.schemas = schema Set error = testing.validate if error.errorCode <> 0 then serr = "Ошибка валидации XML пакета!" serr = serr + " Причина: " + error.reason serr = serr + " XPath: " + error.errorXPath msgbox(serr) else msgbox("Документ соответствует схеме.") end if он выдает на экран результат проверки хотелось бы получить результат внутри кода 1С вопрос - как? |
|||
1
Defender aka LINN
21.01.14
✎
08:36
|
(0) Проверяй средствами 1С. ВНЕЗАПНО, да?
|
|||
2
RomaH
naïve
21.01.14
✎
08:42
|
(1) [jnm jlyj rk.xtdjt lkz gjbcrf d CG
|
|||
3
RomaH
naïve
21.01.14
✎
08:42
|
(1) хоть одно ключевое для поиска в СП
|
|||
4
Defender aka LINN
21.01.14
✎
09:18
|
Попытка
Схема = Новый COMОбъект("MSXML2.XMLSchemaCache.6.0"); Исключение СообщитьОбОшибке("Не удалось создать объект XMLSchemaCache"); Возврат Ложь; КонецПопытки; Попытка Схема.add("",ИмяФайлаСхемы); Исключение СообщитьОбОшибке("Не удалось подключить схему"); Возврат Ложь; КонецПопытки; Попытка ДОМ = Новый COMОбъект("MSXML2.DOMDocument.6.0"); Исключение СообщитьОбОшибке("Не удалось создать объект DOMDocument"); Возврат Ложь; КонецПопытки; ДОМ.schemas = Схема; ДОМ.async = Ложь; ДОМ.validateOnParse = Истина; ДОМ.resolveExternals = Истина; ДОМ.load(ПутьКФайлу); Если (ДОМ.parseError.errorCode<>0) Тогда // ошибки при проверке правильности Ошибка = ДОМ.ParseError; ТекстОшибки = " | Смещение = "+Ошибка.filepos+", строка = "+Ошибка.line+", позиция = "+Ошибка.linepos + " | Описание ошибки: "+ СтрЗаменить(Ошибка.reason, Символы.ПС, " ") + " | Путь в файле: "+Ошибка.ErrorXPath; СообщитьОбОшибке("При проверке правильности файла """+ПутьКФайлу+""" выявлены ошибки:" + ТекстОшибки); Возврат Ложь; КонецЕсли; Если НЕ ДОМ.validateOnParse Тогда Ошибка=ДОМ.validate(); Если (Ошибка.errorCode<>0) Тогда ТекстОшибки = " | Смещение = "+Ошибка.filepos+", строка = "+Ошибка.line+", позиция = "+Ошибка.linepos + " | Описание ошибки: " + СтрЗаменить(Ошибка.reason, Символы.ПС, " ") + " | Путь в файле: "+Ошибка.ErrorXPath; СообщитьОбОшибке("При валидации файла """+ПутьКФайлу+""" выявлены ошибки:" + ТекстОшибки); Возврат Ложь; КонецЕсли; КонецЕсли; |
|||
5
Asmody
21.01.14
✎
09:42
|
см. ЧтениеXML.ОткрытьФайл(), 2 и 3 параметры
|
|||
6
alexei366
21.01.14
✎
09:50
|
(5) 1С не очень интересно ошибки показывает, а если их ещё и несколько то показывает только первую, если парень хочет подробные описания ошибок с сылкой на строку ошибки то может использование комов в этом плане удобней будет
|
|||
7
RomaH
naïve
21.01.14
✎
11:19
|
(4) достаточно было про ком объект упомянуть - я думал именно средствами 1С
|
|||
8
Serginio1
21.01.14
✎
11:48
|
||||
9
Serginio1
21.01.14
✎
11:52
|
8+ Прошу прощения. Это проверка набора схем
|
|||
10
RomaH
naïve
21.01.14
✎
11:54
|
(8) а где там xsd указывается?
|
|||
11
Serginio1
21.01.14
✎
12:33
|
(10) Ты набор схем можешь получить из Фабрики XDTO или из набора файлов или ПостроительСхемXML
СхемаXML = Новый СхемаXML; СхемаXML.РасположениеСхемы = ИмяСхемыXSD; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |