doubango/thirdparties/common/include/libxml/schematron.h
c732d49e
 /*
  * Summary: XML Schemastron implementation
  * Description: interface to the XML Schematron validity checking.
  *
  * Copy: 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/tree.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 typedef enum {
     XML_SCHEMATRON_OUT_QUIET = 1 << 0,	/* quiet no report */
     XML_SCHEMATRON_OUT_TEXT = 1 << 1,	/* build a textual report */
     XML_SCHEMATRON_OUT_XML = 1 << 2,	/* output SVRL */
     XML_SCHEMATRON_OUT_ERROR = 1 << 3,  /* output via xmlStructuredErrorFunc */
     XML_SCHEMATRON_OUT_FILE = 1 << 8,	/* output to a file descriptor */
     XML_SCHEMATRON_OUT_BUFFER = 1 << 9,	/* output to a buffer */
     XML_SCHEMATRON_OUT_IO = 1 << 10	/* output to I/O mechanism */
 } xmlSchematronValidOptions;
 
 /**
  * The schemas related types are kept internal
  */
 typedef struct _xmlSchematron xmlSchematron;
 typedef xmlSchematron *xmlSchematronPtr;
 
 /**
  * xmlSchematronValidityErrorFunc:
  * @ctx: the validation context
  * @msg: the message
  * @...: extra arguments
  *
  * Signature of an error callback from a Schematron validation
  */
 typedef void (*xmlSchematronValidityErrorFunc) (void *ctx, const char *msg, ...);
 
 /**
  * xmlSchematronValidityWarningFunc:
  * @ctx: the validation context
  * @msg: the message
  * @...: extra arguments
  *
  * Signature of a warning callback from a Schematron validation
  */
 typedef void (*xmlSchematronValidityWarningFunc) (void *ctx, const char *msg, ...);
 
 /**
  * A schemas validation context
  */
 typedef struct _xmlSchematronParserCtxt xmlSchematronParserCtxt;
 typedef xmlSchematronParserCtxt *xmlSchematronParserCtxtPtr;
 
 typedef struct _xmlSchematronValidCtxt xmlSchematronValidCtxt;
 typedef xmlSchematronValidCtxt *xmlSchematronValidCtxtPtr;
 
 /*
  * Interfaces for parsing.
  */
 XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
 	    xmlSchematronNewParserCtxt	(const char *URL);
 XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
 	    xmlSchematronNewMemParserCtxt(const char *buffer,
 					 int size);
 XMLPUBFUN xmlSchematronParserCtxtPtr XMLCALL
 	    xmlSchematronNewDocParserCtxt(xmlDocPtr doc);
 XMLPUBFUN void XMLCALL
 	    xmlSchematronFreeParserCtxt	(xmlSchematronParserCtxtPtr ctxt);
 /*****
 XMLPUBFUN void XMLCALL
 	    xmlSchematronSetParserErrors(xmlSchematronParserCtxtPtr ctxt,
 					 xmlSchematronValidityErrorFunc err,
 					 xmlSchematronValidityWarningFunc warn,
 					 void *ctx);
 XMLPUBFUN int XMLCALL
 		xmlSchematronGetParserErrors(xmlSchematronParserCtxtPtr ctxt,
 					xmlSchematronValidityErrorFunc * err,
 					xmlSchematronValidityWarningFunc * warn,
 					void **ctx);
 XMLPUBFUN int XMLCALL
 		xmlSchematronIsValid	(xmlSchematronValidCtxtPtr ctxt);
  *****/
 XMLPUBFUN xmlSchematronPtr XMLCALL
 	    xmlSchematronParse		(xmlSchematronParserCtxtPtr ctxt);
 XMLPUBFUN void XMLCALL
 	    xmlSchematronFree		(xmlSchematronPtr schema);
 /*
  * Interfaces for validating
  */
 XMLPUBFUN void XMLCALL
 	    xmlSchematronSetValidStructuredErrors(
 	                                  xmlSchematronValidCtxtPtr ctxt,
 					  xmlStructuredErrorFunc serror,
 					  void *ctx);
 /******
 XMLPUBFUN void XMLCALL
 	    xmlSchematronSetValidErrors	(xmlSchematronValidCtxtPtr ctxt,
 					 xmlSchematronValidityErrorFunc err,
 					 xmlSchematronValidityWarningFunc warn,
 					 void *ctx);
 XMLPUBFUN int XMLCALL
 	    xmlSchematronGetValidErrors	(xmlSchematronValidCtxtPtr ctxt,
 					 xmlSchematronValidityErrorFunc *err,
 					 xmlSchematronValidityWarningFunc *warn,
 					 void **ctx);
 XMLPUBFUN int XMLCALL
 	    xmlSchematronSetValidOptions(xmlSchematronValidCtxtPtr ctxt,
 					 int options);
 XMLPUBFUN int XMLCALL
 	    xmlSchematronValidCtxtGetOptions(xmlSchematronValidCtxtPtr ctxt);
 XMLPUBFUN int XMLCALL
             xmlSchematronValidateOneElement (xmlSchematronValidCtxtPtr ctxt,
 			                 xmlNodePtr elem);
  *******/
 
 XMLPUBFUN xmlSchematronValidCtxtPtr XMLCALL
 	    xmlSchematronNewValidCtxt	(xmlSchematronPtr schema,
 					 int options);
 XMLPUBFUN void XMLCALL
 	    xmlSchematronFreeValidCtxt	(xmlSchematronValidCtxtPtr ctxt);
 XMLPUBFUN int XMLCALL
 	    xmlSchematronValidateDoc	(xmlSchematronValidCtxtPtr ctxt,
 					 xmlDocPtr instance);
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* LIBXML_SCHEMATRON_ENABLED */
 #endif /* __XML_SCHEMATRON_H__ */