Цитата:
Однако Load'ы не проверяют файл по схемам. Буду искать дальше. Спасибо!
Ну так пишет MS. Возможно этого и недостаточно. А Вы проверили и не получили исключения? Вот примерный вариант вашего кода на .NET с использованием метода Validate:
X++:
System.Xml.XmlDocument xd;
System.Xml.Schema.XmlSchemaSet xs;
CLRObject validationEventHandler; //not initialized, always null
InteropPermission interopPerm;
#define.xml('filename')
;
try
{
xd = new System.Xml.XmlDocument();
xs = new System.Xml.Schema.XmlSchemaSet();
xs.Add('xmln', 'schemaPath1.xsd');
xs.Add('xmln', 'schemaPath2.xsd');
xd.set_Schemas(xs);
xd.Load(#xml);
xd.Validate(validationEventHandler);
}
catch (Exception::CLRError)
{
this.processCLRException();
}
вот что написано про метод Validate вот
тут:
Цитата:
XmlSchemaValidationException: A schema validation event occurred and no ValidationEventHandler object was specified.
По ссылке вы также найдете пример, где в метод передается делегат для обработки исключений. Это делается с целью прохода всего документа, однако, если вы не укажете делегат, то исключение будет сгенерированно на первой же ошибке.
Я к сожалению не могу сейчас проверить это. Напишите, если Вам удасться.