我正在尝试使用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;
}
感谢。
答案 0 :(得分:1)
当你说你没有看到错误时,你是什么意思?你是否期望抛出异常?如果这是您的期望,那么这不会发生,因为您已将ErrorHandler设置如下。尝试实现其中的方法以将错误打印到控制台。同时发布您的XSD和XML
parser->setErrorHandler(errHandler);