1*7c568831SAndroid Build Coastguard Worker /* 2*7c568831SAndroid Build Coastguard Worker * Summary: XML Schematron implementation 3*7c568831SAndroid Build Coastguard Worker * Description: interface to the XML Schematron validity checking. 4*7c568831SAndroid Build Coastguard Worker * 5*7c568831SAndroid Build Coastguard Worker * Copy: See Copyright for the status of this software. 6*7c568831SAndroid Build Coastguard Worker * 7*7c568831SAndroid Build Coastguard Worker * Author: Daniel Veillard 8*7c568831SAndroid Build Coastguard Worker */ 9*7c568831SAndroid Build Coastguard Worker 10*7c568831SAndroid Build Coastguard Worker 11*7c568831SAndroid Build Coastguard Worker #ifndef __XML_SCHEMATRON_H__ 12*7c568831SAndroid Build Coastguard Worker #define __XML_SCHEMATRON_H__ 13*7c568831SAndroid Build Coastguard Worker 14*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlversion.h> 15*7c568831SAndroid Build Coastguard Worker 16*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SCHEMATRON_ENABLED 17*7c568831SAndroid Build Coastguard Worker 18*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlerror.h> 19*7c568831SAndroid Build Coastguard Worker #include <libxml/tree.h> 20*7c568831SAndroid Build Coastguard Worker 21*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus 22*7c568831SAndroid Build Coastguard Worker extern "C" { 23*7c568831SAndroid Build Coastguard Worker #endif 24*7c568831SAndroid Build Coastguard Worker 25*7c568831SAndroid Build Coastguard Worker typedef enum { 26*7c568831SAndroid Build Coastguard Worker XML_SCHEMATRON_OUT_QUIET = 1 << 0, /* quiet no report */ 27*7c568831SAndroid Build Coastguard Worker XML_SCHEMATRON_OUT_TEXT = 1 << 1, /* build a textual report */ 28*7c568831SAndroid Build Coastguard Worker XML_SCHEMATRON_OUT_XML = 1 << 2, /* output SVRL */ 29*7c568831SAndroid Build Coastguard Worker XML_SCHEMATRON_OUT_ERROR = 1 << 3, /* output via xmlStructuredErrorFunc */ 30*7c568831SAndroid Build Coastguard Worker XML_SCHEMATRON_OUT_FILE = 1 << 8, /* output to a file descriptor */ 31*7c568831SAndroid Build Coastguard Worker XML_SCHEMATRON_OUT_BUFFER = 1 << 9, /* output to a buffer */ 32*7c568831SAndroid Build Coastguard Worker XML_SCHEMATRON_OUT_IO = 1 << 10 /* output to I/O mechanism */ 33*7c568831SAndroid Build Coastguard Worker } xmlSchematronValidOptions; 34*7c568831SAndroid Build Coastguard Worker 35*7c568831SAndroid Build Coastguard Worker /** 36*7c568831SAndroid Build Coastguard Worker * The schemas related types are kept internal 37*7c568831SAndroid Build Coastguard Worker */ 38*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchematron xmlSchematron; 39*7c568831SAndroid Build Coastguard Worker typedef xmlSchematron *xmlSchematronPtr; 40*7c568831SAndroid Build Coastguard Worker 41*7c568831SAndroid Build Coastguard Worker /** 42*7c568831SAndroid Build Coastguard Worker * xmlSchematronValidityErrorFunc: 43*7c568831SAndroid Build Coastguard Worker * @ctx: the validation context 44*7c568831SAndroid Build Coastguard Worker * @msg: the message 45*7c568831SAndroid Build Coastguard Worker * @...: extra arguments 46*7c568831SAndroid Build Coastguard Worker * 47*7c568831SAndroid Build Coastguard Worker * Signature of an error callback from a Schematron validation 48*7c568831SAndroid Build Coastguard Worker */ 49*7c568831SAndroid Build Coastguard Worker typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...); 50*7c568831SAndroid Build Coastguard Worker 51*7c568831SAndroid Build Coastguard Worker /** 52*7c568831SAndroid Build Coastguard Worker * xmlSchematronValidityWarningFunc: 53*7c568831SAndroid Build Coastguard Worker * @ctx: the validation context 54*7c568831SAndroid Build Coastguard Worker * @msg: the message 55*7c568831SAndroid Build Coastguard Worker * @...: extra arguments 56*7c568831SAndroid Build Coastguard Worker * 57*7c568831SAndroid Build Coastguard Worker * Signature of a warning callback from a Schematron validation 58*7c568831SAndroid Build Coastguard Worker */ 59*7c568831SAndroid Build Coastguard Worker typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...); 60*7c568831SAndroid Build Coastguard Worker 61*7c568831SAndroid Build Coastguard Worker /** 62*7c568831SAndroid Build Coastguard Worker * A schemas validation context 63*7c568831SAndroid Build Coastguard Worker */ 64*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt; 65*7c568831SAndroid Build Coastguard Worker typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr; 66*7c568831SAndroid Build Coastguard Worker 67*7c568831SAndroid Build Coastguard Worker typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt; 68*7c568831SAndroid Build Coastguard Worker typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr; 69*7c568831SAndroid Build Coastguard Worker 70*7c568831SAndroid Build Coastguard Worker /* 71*7c568831SAndroid Build Coastguard Worker * Interfaces for parsing. 72*7c568831SAndroid Build Coastguard Worker */ 73*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronParserCtxtPtr 74*7c568831SAndroid Build Coastguard Worker xmlSchematronNewParserCtxt (const char *URL); 75*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronParserCtxtPtr 76*7c568831SAndroid Build Coastguard Worker xmlSchematronNewMemParserCtxt(const char *buffer, 77*7c568831SAndroid Build Coastguard Worker int size); 78*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronParserCtxtPtr 79*7c568831SAndroid Build Coastguard Worker xmlSchematronNewDocParserCtxt(xmlDocPtr doc); 80*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 81*7c568831SAndroid Build Coastguard Worker xmlSchematronFreeParserCtxt (xmlSchematronParserCtxtPtr ctxt); 82*7c568831SAndroid Build Coastguard Worker /***** 83*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 84*7c568831SAndroid Build Coastguard Worker xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt, 85*7c568831SAndroid Build Coastguard Worker xmlSchematronValidityErrorFunc err, 86*7c568831SAndroid Build Coastguard Worker xmlSchematronValidityWarningFunc warn, 87*7c568831SAndroid Build Coastguard Worker void *ctx); 88*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 89*7c568831SAndroid Build Coastguard Worker xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt, 90*7c568831SAndroid Build Coastguard Worker xmlSchematronValidityErrorFunc * err, 91*7c568831SAndroid Build Coastguard Worker xmlSchematronValidityWarningFunc * warn, 92*7c568831SAndroid Build Coastguard Worker void **ctx); 93*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 94*7c568831SAndroid Build Coastguard Worker xmlSchematronIsValid (xmlSchematronValidCtxtPtr ctxt); 95*7c568831SAndroid Build Coastguard Worker *****/ 96*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronPtr 97*7c568831SAndroid Build Coastguard Worker xmlSchematronParse (xmlSchematronParserCtxtPtr ctxt); 98*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 99*7c568831SAndroid Build Coastguard Worker xmlSchematronFree (xmlSchematronPtr schema); 100*7c568831SAndroid Build Coastguard Worker /* 101*7c568831SAndroid Build Coastguard Worker * Interfaces for validating 102*7c568831SAndroid Build Coastguard Worker */ 103*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 104*7c568831SAndroid Build Coastguard Worker xmlSchematronSetValidStructuredErrors( 105*7c568831SAndroid Build Coastguard Worker xmlSchematronValidCtxtPtr ctxt, 106*7c568831SAndroid Build Coastguard Worker xmlStructuredErrorFunc serror, 107*7c568831SAndroid Build Coastguard Worker void *ctx); 108*7c568831SAndroid Build Coastguard Worker /****** 109*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 110*7c568831SAndroid Build Coastguard Worker xmlSchematronSetValidErrors (xmlSchematronValidCtxtPtr ctxt, 111*7c568831SAndroid Build Coastguard Worker xmlSchematronValidityErrorFunc err, 112*7c568831SAndroid Build Coastguard Worker xmlSchematronValidityWarningFunc warn, 113*7c568831SAndroid Build Coastguard Worker void *ctx); 114*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 115*7c568831SAndroid Build Coastguard Worker xmlSchematronGetValidErrors (xmlSchematronValidCtxtPtr ctxt, 116*7c568831SAndroid Build Coastguard Worker xmlSchematronValidityErrorFunc *err, 117*7c568831SAndroid Build Coastguard Worker xmlSchematronValidityWarningFunc *warn, 118*7c568831SAndroid Build Coastguard Worker void **ctx); 119*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 120*7c568831SAndroid Build Coastguard Worker xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt, 121*7c568831SAndroid Build Coastguard Worker int options); 122*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 123*7c568831SAndroid Build Coastguard Worker xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt); 124*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 125*7c568831SAndroid Build Coastguard Worker xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt, 126*7c568831SAndroid Build Coastguard Worker xmlNodePtr elem); 127*7c568831SAndroid Build Coastguard Worker *******/ 128*7c568831SAndroid Build Coastguard Worker 129*7c568831SAndroid Build Coastguard Worker XMLPUBFUN xmlSchematronValidCtxtPtr 130*7c568831SAndroid Build Coastguard Worker xmlSchematronNewValidCtxt (xmlSchematronPtr schema, 131*7c568831SAndroid Build Coastguard Worker int options); 132*7c568831SAndroid Build Coastguard Worker XMLPUBFUN void 133*7c568831SAndroid Build Coastguard Worker xmlSchematronFreeValidCtxt (xmlSchematronValidCtxtPtr ctxt); 134*7c568831SAndroid Build Coastguard Worker XMLPUBFUN int 135*7c568831SAndroid Build Coastguard Worker xmlSchematronValidateDoc (xmlSchematronValidCtxtPtr ctxt, 136*7c568831SAndroid Build Coastguard Worker xmlDocPtr instance); 137*7c568831SAndroid Build Coastguard Worker 138*7c568831SAndroid Build Coastguard Worker #ifdef __cplusplus 139*7c568831SAndroid Build Coastguard Worker } 140*7c568831SAndroid Build Coastguard Worker #endif 141*7c568831SAndroid Build Coastguard Worker 142*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SCHEMATRON_ENABLED */ 143*7c568831SAndroid Build Coastguard Worker #endif /* __XML_SCHEMATRON_H__ */ 144