感谢 Stack Overflow 的 jmbr,我终于找到了一种通过 C 程序针对 RELAX NG 验证 xml 的方法。程序如下...
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#include <libxml/relaxng.h>
int main(int argc, char *argv[])
{
int status;
xmlDoc *doc;
xmlRelaxNGPtr schema;
xmlRelaxNGValidCtxtPtr validctxt;
xmlRelaxNGParserCtxtPtr rngparser;
doc = xmlParseFile(argv[1]);
rngparser = xmlRelaxNGNewParserCtxt(argv[2]);
schema = xmlRelaxNGParse(rngparser);
validctxt = xmlRelaxNGNewValidCtxt(schema);
status = xmlRelaxNGValidateDoc(validctxt, doc);
printf("status == %d\n", status);
xmlRelaxNGFree(schema);
xmlRelaxNGFreeValidCtxt(validctxt);
xmlRelaxNGFreeParserCtxt(rngparser);
xmlFreeDoc(doc);
exit(EXIT_SUCCESS);
}
从那时起,我对程序进行了重大调整,以便找出解析和验证 xml 文件的“处理时间”。有没有办法找出这个程序的最佳情况和最坏情况。最坏的情况是,任何 xml 文件作为输入所花费的时间总是最高的。最好的情况是,花费的时间总是最少的。我真的被困在这一点上。真的很感激,如果你们中的任何人可以帮助我。