Вопрос

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

    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;
    }

Спасибо.

Это было полезно?

Решение

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

parser->setErrorHandler(errHandler);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top