Spaces:
Sleeping
Sleeping
/* | |
* 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 | |
*/ | |
extern "C" { | |
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); | |
XML_DEPRECATED | |
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); | |
XMLPUBFUN void XMLCALL | |
xmlRelaxNGDump (FILE *output, | |
xmlRelaxNGPtr schema); | |
XMLPUBFUN void XMLCALL | |
xmlRelaxNGDumpTree (FILE * output, | |
xmlRelaxNGPtr schema); | |
/* | |
* 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); | |
} | |