2010-12-27 14 views
1

Я пытаюсь использовать Xerces-c. У меня есть схема .xsd и вы хотите использовать ее для проверки XML-файла. Я определяю xsd-файл и обработчик ошибок, но по какой-то причине xsd не бросает ошибки. Любые идеи о том, что я могу потерять?Xerces-c: проверка файла XML с помощью xsd-файла C++

XercesDOMParser* parser = new XercesDOMParser(); 
    parser->setExternalNoNamespaceSchemaLocation("parser.xsd"); 
    parser->setExitOnFirstFatalError(true); 
    parser->setValidationConstraintFatal(true); 
    parser->setValidationScheme(XercesDOMParser::Val_Auto); 
    parser->setDoNamespaces(true);  
    parser->setDoSchema(true);  

    ErrorHandler* errHandler = (ErrorHandler*) new HandlerBase(); 
    parser->setErrorHandler(errHandler); 

    char* xmlFile = "sample.xml"; 

    try { 
     .... 
    } catch (const DOMException& e) { 
     cout << "Exception.." << endl; 
    } 

Спасибо.

+0

Мое быть xml действительно ;-). разместите xsd и xml –

ответ

1

Что вы имеете в виду, когда говорите, что не видите ошибки? Ожидаете ли вы исключение? Если это ваше ожидание, это не произойдет, потому что вы установили ErrorHandler, как показано ниже. Попробуйте внедрить методы для печати ошибок на консоли. Также опубликуйте свой XSD и XML

parser->setErrorHandler(errHandler); 
+0

Вы были правы, я реализовал виртуальные функции в ErrorHandler, и он работает как шарм. Сейчас возникают ошибки. Благодарю. – user459811

Смежные вопросы