|
|
- /*
- * 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__ */
|