a2587b166e43a753d87dd0ad1f3ba2d1c320b98b
[m17n/m17n-test.git] / mim-xml.c
1 #include <stdio.h>
2 #include <string.h>
3 #include <stdlib.h>
4 #include <libxml/xmlreader.h>
5 #include <libxml/xmlmemory.h>
6
7 void
8 error_exit (char *fmt, char *arg)
9 {
10   fprintf (stderr, fmt, arg);
11   exit (1);
12 }
13
14 int
15 main (int argc, char **argv)
16 {
17 #if 0
18   XPathContextPtr context;
19   xmlXPathObjectPtr result;
20   xmlChar *xpath = (xmlChar *) "//input-method";
21   xmlChar *key;
22   xmlNodeSetPtr nodeset;
23 #endif
24   int i;
25   xmlTextReaderPtr reader;
26
27   reader = xmlReaderForFile (argv[1], "utf-8", 0);
28   xmlTextReaderRelaxNGValidate (reader, argv[2]);
29   while ((i = xmlTextReaderRead (reader)) == 1);
30   printf ("%d\n\n", i);
31
32 #if 0
33   doc = xmlParseFile (argv[1]);
34   if (! doc)
35     error_exit ("Invalid XML file: %s", argv[1]);
36   context = xmlXPathNewContext (doc);
37   result = xmlXPathEvalExpression (xpath, context);
38   if (! result)
39     error_exit ("Error in xmlXPathEvalExpression for: %s", (char *) xpath);
40   xmlXPathFreeContext (context);
41   if (xmlXPathNodeSetIsEmpty (result->nodesetval))
42     error_exit ("Can't find the node: %s", (char *) xpath);
43   nodeset = result->nodesetval;
44   for (i = 0; i < nodeset->nodeNr; i++)
45     {
46       key = xmlGetProp (nodeset->nodeTab[i], "input-method-name");
47       printf ("input-method-name: %s\n", key);
48       xmlFree (key);
49       key = xmlGetProp (nodeset->nodeTab[i], "language");
50       printf ("langauge: %s\n", key);
51       xmlFree (key);
52       key = xmlGetProp (nodeset->nodeTab[i], "extra-id");
53       if (key)
54         {
55           printf ("extra-id: %s\n", key);
56           xmlFree (key);
57         }
58     }
59   xmlXPathFreeObject (result);
60 #endif
61   exit (0);
62 }