ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ/** * @file * * @brief XML Schematron implementation * * interface to the XML Schematron validity checking. * * @copyright See Copyright for the status of this software. * * @author Daniel Veillard */ #ifndef __XML_SCHEMATRON_H__ #define __XML_SCHEMATRON_H__ #include #ifdef LIBXML_SCHEMATRON_ENABLED #include #include #ifdef __cplusplus extern "C" { #endif /** * Schematron validation options */ typedef enum { /** quiet no report */ XML_SCHEMATRON_OUT_QUIET = 1 << 0, /** build a textual report */ XML_SCHEMATRON_OUT_TEXT = 1 << 1, /** output SVRL */ XML_SCHEMATRON_OUT_XML = 1 << 2, /** output via xmlStructuredErrorFunc */ XML_SCHEMATRON_OUT_ERROR = 1 << 3, /** output to a file descriptor */ XML_SCHEMATRON_OUT_FILE = 1 << 8, /** output to a buffer */ XML_SCHEMATRON_OUT_BUFFER = 1 << 9, /** output to I/O mechanism */ XML_SCHEMATRON_OUT_IO = 1 << 10 } xmlSchematronValidOptions; /** Schematron schema */ typedef struct _xmlSchematron xmlSchematron; typedef xmlSchematron *xmlSchematronPtr; /** * Signature of an error callback from a Schematron validation * * @param ctx the validation context * @param msg the message * @param ... extra arguments */ typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...); /** * Signature of a warning callback from a Schematron validation * * @param ctx the validation context * @param msg the message * @param ... extra arguments */ typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...); /** Schematron parser context */ typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt; typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr; /** Schematron validation context */ typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt; typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr; /* * Interfaces for parsing. */ XMLPUBFUN xmlSchematronParserCtxt * xmlSchematronNewParserCtxt (const char *URL); XMLPUBFUN xmlSchematronParserCtxt * xmlSchematronNewMemParserCtxt(const char *buffer, int size); XMLPUBFUN xmlSchematronParserCtxt * xmlSchematronNewDocParserCtxt(xmlDoc *doc); XMLPUBFUN void xmlSchematronFreeParserCtxt (xmlSchematronParserCtxt *ctxt); /***** XMLPUBFUN void xmlSchematronSetParserErrors(xmlSchematronParserCtxt *ctxt, xmlSchematronValidityErrorFunc err, xmlSchematronValidityWarningFunc warn, void *ctx); XMLPUBFUN int xmlSchematronGetParserErrors(xmlSchematronParserCtxt *ctxt, xmlSchematronValidityErrorFunc * err, xmlSchematronValidityWarningFunc * warn, void **ctx); XMLPUBFUN int xmlSchematronIsValid (xmlSchematronValidCtxt *ctxt); *****/ XMLPUBFUN xmlSchematron * xmlSchematronParse (xmlSchematronParserCtxt *ctxt); XMLPUBFUN void xmlSchematronFree (xmlSchematron *schema); /* * Interfaces for validating */ XMLPUBFUN void xmlSchematronSetValidStructuredErrors( xmlSchematronValidCtxt *ctxt, xmlStructuredErrorFunc serror, void *ctx); /****** XMLPUBFUN void xmlSchematronSetValidErrors (xmlSchematronValidCtxt *ctxt, xmlSchematronValidityErrorFunc err, xmlSchematronValidityWarningFunc warn, void *ctx); XMLPUBFUN int xmlSchematronGetValidErrors (xmlSchematronValidCtxt *ctxt, xmlSchematronValidityErrorFunc *err, xmlSchematronValidityWarningFunc *warn, void **ctx); XMLPUBFUN int xmlSchematronSetValidOptions(xmlSchematronValidCtxt *ctxt, int options); XMLPUBFUN int xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxt *ctxt); XMLPUBFUN int xmlSchematronValidateOneElement (xmlSchematronValidCtxt *ctxt, xmlNode *elem); *******/ XMLPUBFUN xmlSchematronValidCtxt * xmlSchematronNewValidCtxt (xmlSchematron *schema, int options); XMLPUBFUN void xmlSchematronFreeValidCtxt (xmlSchematronValidCtxt *ctxt); XMLPUBFUN int xmlSchematronValidateDoc (xmlSchematronValidCtxt *ctxt, xmlDoc *instance); #ifdef __cplusplus } #endif #endif /* LIBXML_SCHEMATRON_ENABLED */ #endif /* __XML_SCHEMATRON_H__ */