感谢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文件作为输入所花费的时间总是最高的。最好的情况是,所花费的时间总是最低的。我真的很困惑。非常感谢,如果你们中的任何一个人能帮助我的话。
答案 0 :(得分:-1)
要测试您的代码,您应该制定不同的测试计划&amp;测试用例.. 在这种情况下尝试不同的不同xml输入文件...
1个嵌套这么多次的文件
任何遗漏的标签xml文件(无效的xml文件)
没有doctype或标签的xml文件采用不同的编码
&安培;处理时间计算使用time.h