Xerces-c:使用xsd文件c ++进行XML文件验证

时间:2010-12-27 18:57:45

标签: xml parsing validation xsd xerces-c

我正在尝试使用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;
    }

感谢。

1 个答案:

答案 0 :(得分:1)

当你说你没有看到错误时,你是什么意思?你是否期望抛出异常?如果这是您的期望,那么这不会发生,因为您已将ErrorHandler设置如下。尝试实现其中的方法以将错误打印到控制台。同时发布您的XSD和XML

parser->setErrorHandler(errHandler);