1

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

谢谢。

4

1 回答 1

1

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

parser->setErrorHandler(errHandler);
于 2010-12-30T04:08:58.967 回答