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 に答える