test.c
00001 #include <stdio.h>
00002 #include <unistd.h>
00003 #include <string.h>
00004 #include <sys/types.h>
00005 #include <sys/stat.h>
00006 #include <fcntl.h>
00007 #include <errno.h>
00008 #include <libxml/parser.h>
00009 #include <libxml/tree.h>
00010 #include <libxml/xmlschemas.h>
00011 #include <libxml/xmlreader.h>
00012 #include <libxml/encoding.h>
00013 #include <libxml/xmlwriter.h>
00014 #include <libxml/xmlsave.h>
00015
00016 #define ENCODING "UTF-8"
00017
00018 int main(int argc, char **argv)
00019 {
00020 int ret;
00021 xmlDocPtr doc;
00022 xmlNodePtr node;
00023
00024 xmlSchemaParserCtxtPtr ctxt;
00025 xmlSchemaPtr schema;
00026 xmlSchemaValidCtxtPtr validator;
00027
00028 if(2 > argc)
00029 {
00030 printf("usage: %s <schema file> <xml file>\n", argv[0]);
00031 return;
00032 }
00033
00034 ctxt = xmlSchemaNewParserCtxt(argv[1]);
00035 schema=xmlSchemaParse(ctxt);
00036
00037 validator = xmlSchemaNewValidCtxt(schema);
00038
00039 if(3 == argc)
00040 {
00041 doc = xmlParseFile(argv[2]);
00042 int schemaErrors = xmlSchemaValidateDoc(validator, doc);
00043 printf("doc validated against schema: %d\n", schemaErrors);
00044 }
00045 return 0;
00046 }