Анализ для синтаксического анализа (и проверки) XML-программы на C - PullRequest
0 голосов
/ 08 августа 2011

Благодаря jmbr в Stack Overflow я наконец нашел способ проверить xml на RELAX NG через программу на Си.Программа выглядит следующим образом ...

#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-файла в качестве входного.И, в лучшем случае, время всегда самое низкое.Я действительно застрял в этом.Буду очень признателен, если вы, ребята, сможете мне помочь.

1 Ответ

0 голосов
/ 08 августа 2011

Для проверки вашего кода вы должны составить другой план тестирования и тестовый набор. в этом случае попробуйте другой файл ввода xml ...

1 файл, у которого вложенность столько раз

любой XML-файл пропущенных тегов (не действительный XML-файл)

XML-файл, у которого нет типа документа или тегов, имеет другой код

& для расчета времени обработки используйте time.h

...