Цитата:
Сообщение от
Cardagant
Спасибо за пример!
Ругается на метод Validate() с ошибкой:
"Класс System.Xml.XmlDocument не содержит эту функцию."
Хоть в выпадающем списке методов он есть. Как такое может быть?
Вот код, который работает в четверке. Проверяет валидность xml файла схеме (xsd файла):
X++:
XMLTextReader xmlReader; // системный класс ядра
XMLSchema xmlSchema; // системный класс ядра
XmlSchemaValidationError validationError; // системный класс ядра
boolean ret = true;
;
if (!WinApi::fileExists(shemaName))
{
ret = checkfailed(strfmt("Не найден файл \"%1\"", shemaName));
return ret;
}
new FileIOPermission(shemaName, 'r').assert();
xmlSchema = XMLSchema::newFile(shemaName);
xmlSchema.compile();
CodeAccessPermission::revertAssert();
if (! xmlSchema.isCompiled())
{
ret = checkfailed(xmlSchema.validationError().message());
return ret;
}
new FileIOPermission(fileName, 'r').assert();
xmlReader = XMLTextReader::newFile(fileName);
xmlReader.read();
CodeAccessPermission::revertAssert();
validationError = xmlReader.validate(xmlSchema.writeToString());
if (validationError)
{
ret = checkfailed(validationError.message());
}
return ret;