5
#include <libxml/xmlmemory.h>
6
#include <libxml/parser.h>
7
#include <libxml/xmlschemas.h>
12
#ifdef LIBXML_SCHEMAS_ENABLED
13
xmlSchemaParserCtxtPtr xsdctx;
14
xmlSchemaPtr xsdschema;
15
xmlSchemaValidCtxtPtr xsd;
16
#endif /* LIBXML_SCHEMAS_ENABLED */
18
void err(void *ctx, const char *msg, ...) {
25
void warn(void *ctx, const char *msg, ...) {
32
void initXML(struct TestData *td) {
36
void releaseXML(struct TestData *td) {
37
#ifdef LIBXML_SCHEMAS_ENABLED
38
xmlSchemaFreeValidCtxt(xsd);
39
xmlSchemaFree(xsdschema);
40
xmlSchemaFreeParserCtxt(xsdctx);
41
#endif /* LIBXML_SCHEMAS_ENABLED */
46
void initXML_Validation(struct TestData *td) {
47
#ifdef LIBXML_SCHEMAS_ENABLED
48
xsdctx=xmlSchemaNewMemParserCtxt(td->xsd,td->xsdlen);
50
printf("Error parsing document schema (xmlSchemaNewMemParserCtxt)!\n");
53
xsdschema=xmlSchemaParse(xsdctx);
55
printf("Error parsing document schema (xmlSchemaParse)!\n");
58
xsd=xmlSchemaNewValidCtxt(xsdschema);
60
printf("Error parsing document schema (xmlSchemaNewValidCtxt)!\n");
63
xmlSchemaSetValidErrors(xsd,err,warn,NULL);
64
#endif /* LIBXML_SCHEMAS_ENABLED */
68
void parseXML(struct TestData *td, unsigned long iter) {
72
doc=xmlParseMemory(td->xml,td->xmllen);
74
printf("Error parsing document!\n");
79
void validateXML(struct TestData *td, unsigned long iter) {
80
#ifdef LIBXML_SCHEMAS_ENABLED
81
if (xmlSchemaValidateDoc(xsd,doc)) {
82
puts("Error in XML file!");
85
#endif /* LIBXML_SCHEMAS_ENABLED */
88
int main(int argc, char *argv[]) {
89
return Test(argc,argv);