0

感谢 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 文件作为输入所花费的时间总是最高的。最好的情况是,花费的时间总是最少的。我真的被困在这一点上。真的很感激,如果你们中的任何人可以帮助我。

4

1 回答 1

-1

要测试您的代码,您应该制定不同的测试计划和测试用例.. 在这种情况下尝试不同的不同 xml 输入文件...

1个文件谁嵌套了这么多次

任何遗漏的标签 xml 文件(无效的 xml 文件)

没有 doctype 或标签的 xml 文件的编码不同

& 用于处理时间计算使用 time.h

于 2011-08-08T11:59:18.087 回答