Показать сообщение отдельно
Старый 18.10.2013, 11:16   #32  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от 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;
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: plumbum (1), Cardagant (1), A_BAS (1).