| Viewing file:  relaxng.h (5.86 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
/** Summary: implementation of the Relax-NG validation
 * Description: implementation of the Relax-NG validation
 *
 * Copy: See Copyright for the status of this software.
 *
 * Author: Daniel Veillard
 */
 
 #ifndef __XML_RELAX_NG__
 #define __XML_RELAX_NG__
 
 #include <libxml/xmlversion.h>
 #include <libxml/hash.h>
 #include <libxml/xmlstring.h>
 
 #ifdef LIBXML_SCHEMAS_ENABLED
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 typedef struct _xmlRelaxNG xmlRelaxNG;
 typedef xmlRelaxNG *xmlRelaxNGPtr;
 
 
 /**
 * xmlRelaxNGValidityErrorFunc:
 * @ctx: the validation context
 * @msg: the message
 * @...: extra arguments
 *
 * Signature of an error callback from a Relax-NG validation
 */
 typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx,
 const char *msg,
 ...) LIBXML_ATTR_FORMAT(2,3);
 
 /**
 * xmlRelaxNGValidityWarningFunc:
 * @ctx: the validation context
 * @msg: the message
 * @...: extra arguments
 *
 * Signature of a warning callback from a Relax-NG validation
 */
 typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx,
 const char *msg,
 ...) LIBXML_ATTR_FORMAT(2,3);
 
 /**
 * A schemas validation context
 */
 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
 
 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
 
 /*
 * xmlRelaxNGValidErr:
 *
 * List of possible Relax NG validation errors
 */
 typedef enum {
 XML_RELAXNG_OK = 0,
 XML_RELAXNG_ERR_MEMORY,
 XML_RELAXNG_ERR_TYPE,
 XML_RELAXNG_ERR_TYPEVAL,
 XML_RELAXNG_ERR_DUPID,
 XML_RELAXNG_ERR_TYPECMP,
 XML_RELAXNG_ERR_NOSTATE,
 XML_RELAXNG_ERR_NODEFINE,
 XML_RELAXNG_ERR_LISTEXTRA,
 XML_RELAXNG_ERR_LISTEMPTY,
 XML_RELAXNG_ERR_INTERNODATA,
 XML_RELAXNG_ERR_INTERSEQ,
 XML_RELAXNG_ERR_INTEREXTRA,
 XML_RELAXNG_ERR_ELEMNAME,
 XML_RELAXNG_ERR_ATTRNAME,
 XML_RELAXNG_ERR_ELEMNONS,
 XML_RELAXNG_ERR_ATTRNONS,
 XML_RELAXNG_ERR_ELEMWRONGNS,
 XML_RELAXNG_ERR_ATTRWRONGNS,
 XML_RELAXNG_ERR_ELEMEXTRANS,
 XML_RELAXNG_ERR_ATTREXTRANS,
 XML_RELAXNG_ERR_ELEMNOTEMPTY,
 XML_RELAXNG_ERR_NOELEM,
 XML_RELAXNG_ERR_NOTELEM,
 XML_RELAXNG_ERR_ATTRVALID,
 XML_RELAXNG_ERR_CONTENTVALID,
 XML_RELAXNG_ERR_EXTRACONTENT,
 XML_RELAXNG_ERR_INVALIDATTR,
 XML_RELAXNG_ERR_DATAELEM,
 XML_RELAXNG_ERR_VALELEM,
 XML_RELAXNG_ERR_LISTELEM,
 XML_RELAXNG_ERR_DATATYPE,
 XML_RELAXNG_ERR_VALUE,
 XML_RELAXNG_ERR_LIST,
 XML_RELAXNG_ERR_NOGRAMMAR,
 XML_RELAXNG_ERR_EXTRADATA,
 XML_RELAXNG_ERR_LACKDATA,
 XML_RELAXNG_ERR_INTERNAL,
 XML_RELAXNG_ERR_ELEMWRONG,
 XML_RELAXNG_ERR_TEXTWRONG
 } xmlRelaxNGValidErr;
 
 /*
 * xmlRelaxNGParserFlags:
 *
 * List of possible Relax NG Parser flags
 */
 typedef enum {
 XML_RELAXNGP_NONE = 0,
 XML_RELAXNGP_FREE_DOC = 1,
 XML_RELAXNGP_CRNG = 2
 } xmlRelaxNGParserFlag;
 
 XMLPUBFUN int XMLCALL
 xmlRelaxNGInitTypes        (void);
 XMLPUBFUN void XMLCALL
 xmlRelaxNGCleanupTypes    (void);
 
 /*
 * Interfaces for parsing.
 */
 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
 xmlRelaxNGNewParserCtxt    (const char *URL);
 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
 xmlRelaxNGNewMemParserCtxt    (const char *buffer,
 int size);
 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
 xmlRelaxNGNewDocParserCtxt    (xmlDocPtr doc);
 
 XMLPUBFUN int XMLCALL
 xmlRelaxParserSetFlag    (xmlRelaxNGParserCtxtPtr ctxt,
 int flag);
 
 XMLPUBFUN void XMLCALL
 xmlRelaxNGFreeParserCtxt    (xmlRelaxNGParserCtxtPtr ctxt);
 XMLPUBFUN void XMLCALL
 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
 xmlRelaxNGValidityErrorFunc err,
 xmlRelaxNGValidityWarningFunc warn,
 void *ctx);
 XMLPUBFUN int XMLCALL
 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
 xmlRelaxNGValidityErrorFunc *err,
 xmlRelaxNGValidityWarningFunc *warn,
 void **ctx);
 XMLPUBFUN void XMLCALL
 xmlRelaxNGSetParserStructuredErrors(
 xmlRelaxNGParserCtxtPtr ctxt,
 xmlStructuredErrorFunc serror,
 void *ctx);
 XMLPUBFUN xmlRelaxNGPtr XMLCALL
 xmlRelaxNGParse        (xmlRelaxNGParserCtxtPtr ctxt);
 XMLPUBFUN void XMLCALL
 xmlRelaxNGFree        (xmlRelaxNGPtr schema);
 #ifdef LIBXML_OUTPUT_ENABLED
 XMLPUBFUN void XMLCALL
 xmlRelaxNGDump        (FILE *output,
 xmlRelaxNGPtr schema);
 XMLPUBFUN void XMLCALL
 xmlRelaxNGDumpTree    (FILE * output,
 xmlRelaxNGPtr schema);
 #endif /* LIBXML_OUTPUT_ENABLED */
 /*
 * Interfaces for validating
 */
 XMLPUBFUN void XMLCALL
 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
 xmlRelaxNGValidityErrorFunc err,
 xmlRelaxNGValidityWarningFunc warn,
 void *ctx);
 XMLPUBFUN int XMLCALL
 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
 xmlRelaxNGValidityErrorFunc *err,
 xmlRelaxNGValidityWarningFunc *warn,
 void **ctx);
 XMLPUBFUN void XMLCALL
 xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
 xmlStructuredErrorFunc serror, void *ctx);
 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
 xmlRelaxNGNewValidCtxt    (xmlRelaxNGPtr schema);
 XMLPUBFUN void XMLCALL
 xmlRelaxNGFreeValidCtxt    (xmlRelaxNGValidCtxtPtr ctxt);
 XMLPUBFUN int XMLCALL
 xmlRelaxNGValidateDoc    (xmlRelaxNGValidCtxtPtr ctxt,
 xmlDocPtr doc);
 /*
 * Interfaces for progressive validation when possible
 */
 XMLPUBFUN int XMLCALL
 xmlRelaxNGValidatePushElement    (xmlRelaxNGValidCtxtPtr ctxt,
 xmlDocPtr doc,
 xmlNodePtr elem);
 XMLPUBFUN int XMLCALL
 xmlRelaxNGValidatePushCData    (xmlRelaxNGValidCtxtPtr ctxt,
 const xmlChar *data,
 int len);
 XMLPUBFUN int XMLCALL
 xmlRelaxNGValidatePopElement    (xmlRelaxNGValidCtxtPtr ctxt,
 xmlDocPtr doc,
 xmlNodePtr elem);
 XMLPUBFUN int XMLCALL
 xmlRelaxNGValidateFullElement    (xmlRelaxNGValidCtxtPtr ctxt,
 xmlDocPtr doc,
 xmlNodePtr elem);
 
 #ifdef __cplusplus
 }
 #endif
 
 #endif /* LIBXML_SCHEMAS_ENABLED */
 
 #endif /* __XML_RELAX_NG__ */
 
 |