| /** | |
| * @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 <libxml/xmlversion.h> | |
| #ifdef LIBXML_SCHEMATRON_ENABLED | |
| #include <libxml/xmlerror.h> | |
| #include <libxml/tree.h> | |
| #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__ */ |