Path: blob/master/venv/Lib/site-packages/lxml/includes/libxml/relaxng.h
811 views
/*1* Summary: implementation of the Relax-NG validation2* Description: implementation of the Relax-NG validation3*4* Copy: See Copyright for the status of this software.5*6* Author: Daniel Veillard7*/89#ifndef __XML_RELAX_NG__10#define __XML_RELAX_NG__1112#include <libxml/xmlversion.h>13#include <libxml/hash.h>14#include <libxml/xmlstring.h>1516#ifdef LIBXML_SCHEMAS_ENABLED1718#ifdef __cplusplus19extern "C" {20#endif2122typedef struct _xmlRelaxNG xmlRelaxNG;23typedef xmlRelaxNG *xmlRelaxNGPtr;242526/**27* xmlRelaxNGValidityErrorFunc:28* @ctx: the validation context29* @msg: the message30* @...: extra arguments31*32* Signature of an error callback from a Relax-NG validation33*/34typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx,35const char *msg,36...) LIBXML_ATTR_FORMAT(2,3);3738/**39* xmlRelaxNGValidityWarningFunc:40* @ctx: the validation context41* @msg: the message42* @...: extra arguments43*44* Signature of a warning callback from a Relax-NG validation45*/46typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx,47const char *msg,48...) LIBXML_ATTR_FORMAT(2,3);4950/**51* A schemas validation context52*/53typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;54typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;5556typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;57typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;5859/*60* xmlRelaxNGValidErr:61*62* List of possible Relax NG validation errors63*/64typedef enum {65XML_RELAXNG_OK = 0,66XML_RELAXNG_ERR_MEMORY,67XML_RELAXNG_ERR_TYPE,68XML_RELAXNG_ERR_TYPEVAL,69XML_RELAXNG_ERR_DUPID,70XML_RELAXNG_ERR_TYPECMP,71XML_RELAXNG_ERR_NOSTATE,72XML_RELAXNG_ERR_NODEFINE,73XML_RELAXNG_ERR_LISTEXTRA,74XML_RELAXNG_ERR_LISTEMPTY,75XML_RELAXNG_ERR_INTERNODATA,76XML_RELAXNG_ERR_INTERSEQ,77XML_RELAXNG_ERR_INTEREXTRA,78XML_RELAXNG_ERR_ELEMNAME,79XML_RELAXNG_ERR_ATTRNAME,80XML_RELAXNG_ERR_ELEMNONS,81XML_RELAXNG_ERR_ATTRNONS,82XML_RELAXNG_ERR_ELEMWRONGNS,83XML_RELAXNG_ERR_ATTRWRONGNS,84XML_RELAXNG_ERR_ELEMEXTRANS,85XML_RELAXNG_ERR_ATTREXTRANS,86XML_RELAXNG_ERR_ELEMNOTEMPTY,87XML_RELAXNG_ERR_NOELEM,88XML_RELAXNG_ERR_NOTELEM,89XML_RELAXNG_ERR_ATTRVALID,90XML_RELAXNG_ERR_CONTENTVALID,91XML_RELAXNG_ERR_EXTRACONTENT,92XML_RELAXNG_ERR_INVALIDATTR,93XML_RELAXNG_ERR_DATAELEM,94XML_RELAXNG_ERR_VALELEM,95XML_RELAXNG_ERR_LISTELEM,96XML_RELAXNG_ERR_DATATYPE,97XML_RELAXNG_ERR_VALUE,98XML_RELAXNG_ERR_LIST,99XML_RELAXNG_ERR_NOGRAMMAR,100XML_RELAXNG_ERR_EXTRADATA,101XML_RELAXNG_ERR_LACKDATA,102XML_RELAXNG_ERR_INTERNAL,103XML_RELAXNG_ERR_ELEMWRONG,104XML_RELAXNG_ERR_TEXTWRONG105} xmlRelaxNGValidErr;106107/*108* xmlRelaxNGParserFlags:109*110* List of possible Relax NG Parser flags111*/112typedef enum {113XML_RELAXNGP_NONE = 0,114XML_RELAXNGP_FREE_DOC = 1,115XML_RELAXNGP_CRNG = 2116} xmlRelaxNGParserFlag;117118XMLPUBFUN int XMLCALL119xmlRelaxNGInitTypes (void);120XMLPUBFUN void XMLCALL121xmlRelaxNGCleanupTypes (void);122123/*124* Interfaces for parsing.125*/126XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL127xmlRelaxNGNewParserCtxt (const char *URL);128XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL129xmlRelaxNGNewMemParserCtxt (const char *buffer,130int size);131XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL132xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);133134XMLPUBFUN int XMLCALL135xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,136int flag);137138XMLPUBFUN void XMLCALL139xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);140XMLPUBFUN void XMLCALL141xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,142xmlRelaxNGValidityErrorFunc err,143xmlRelaxNGValidityWarningFunc warn,144void *ctx);145XMLPUBFUN int XMLCALL146xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,147xmlRelaxNGValidityErrorFunc *err,148xmlRelaxNGValidityWarningFunc *warn,149void **ctx);150XMLPUBFUN void XMLCALL151xmlRelaxNGSetParserStructuredErrors(152xmlRelaxNGParserCtxtPtr ctxt,153xmlStructuredErrorFunc serror,154void *ctx);155XMLPUBFUN xmlRelaxNGPtr XMLCALL156xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);157XMLPUBFUN void XMLCALL158xmlRelaxNGFree (xmlRelaxNGPtr schema);159#ifdef LIBXML_OUTPUT_ENABLED160XMLPUBFUN void XMLCALL161xmlRelaxNGDump (FILE *output,162xmlRelaxNGPtr schema);163XMLPUBFUN void XMLCALL164xmlRelaxNGDumpTree (FILE * output,165xmlRelaxNGPtr schema);166#endif /* LIBXML_OUTPUT_ENABLED */167/*168* Interfaces for validating169*/170XMLPUBFUN void XMLCALL171xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,172xmlRelaxNGValidityErrorFunc err,173xmlRelaxNGValidityWarningFunc warn,174void *ctx);175XMLPUBFUN int XMLCALL176xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,177xmlRelaxNGValidityErrorFunc *err,178xmlRelaxNGValidityWarningFunc *warn,179void **ctx);180XMLPUBFUN void XMLCALL181xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,182xmlStructuredErrorFunc serror, void *ctx);183XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL184xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);185XMLPUBFUN void XMLCALL186xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);187XMLPUBFUN int XMLCALL188xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,189xmlDocPtr doc);190/*191* Interfaces for progressive validation when possible192*/193XMLPUBFUN int XMLCALL194xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,195xmlDocPtr doc,196xmlNodePtr elem);197XMLPUBFUN int XMLCALL198xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,199const xmlChar *data,200int len);201XMLPUBFUN int XMLCALL202xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,203xmlDocPtr doc,204xmlNodePtr elem);205XMLPUBFUN int XMLCALL206xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,207xmlDocPtr doc,208xmlNodePtr elem);209210#ifdef __cplusplus211}212#endif213214#endif /* LIBXML_SCHEMAS_ENABLED */215216#endif /* __XML_RELAX_NG__ */217218219