Annotation of embedaddon/libxml2/include/libxml/relaxng.h, revision 1.1

1.1     ! misho       1: /*
        !             2:  * Summary: implementation of the Relax-NG validation
        !             3:  * Description: implementation of the Relax-NG validation
        !             4:  *
        !             5:  * Copy: See Copyright for the status of this software.
        !             6:  *
        !             7:  * Author: Daniel Veillard
        !             8:  */
        !             9: 
        !            10: #ifndef __XML_RELAX_NG__
        !            11: #define __XML_RELAX_NG__
        !            12: 
        !            13: #include <libxml/xmlversion.h>
        !            14: #include <libxml/hash.h>
        !            15: #include <libxml/xmlstring.h>
        !            16: 
        !            17: #ifdef LIBXML_SCHEMAS_ENABLED
        !            18: 
        !            19: #ifdef __cplusplus
        !            20: extern "C" {
        !            21: #endif
        !            22: 
        !            23: typedef struct _xmlRelaxNG xmlRelaxNG;
        !            24: typedef xmlRelaxNG *xmlRelaxNGPtr;
        !            25: 
        !            26: 
        !            27: /**
        !            28:  * xmlRelaxNGValidityErrorFunc:
        !            29:  * @ctx: the validation context
        !            30:  * @msg: the message
        !            31:  * @...: extra arguments
        !            32:  *
        !            33:  * Signature of an error callback from a Relax-NG validation
        !            34:  */
        !            35: typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
        !            36: 
        !            37: /**
        !            38:  * xmlRelaxNGValidityWarningFunc:
        !            39:  * @ctx: the validation context
        !            40:  * @msg: the message
        !            41:  * @...: extra arguments
        !            42:  *
        !            43:  * Signature of a warning callback from a Relax-NG validation
        !            44:  */
        !            45: typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...) LIBXML_ATTR_FORMAT(2,3);
        !            46: 
        !            47: /**
        !            48:  * A schemas validation context
        !            49:  */
        !            50: typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
        !            51: typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
        !            52: 
        !            53: typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
        !            54: typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
        !            55: 
        !            56: /*
        !            57:  * xmlRelaxNGValidErr:
        !            58:  *
        !            59:  * List of possible Relax NG validation errors
        !            60:  */
        !            61: typedef enum {
        !            62:     XML_RELAXNG_OK = 0,
        !            63:     XML_RELAXNG_ERR_MEMORY,
        !            64:     XML_RELAXNG_ERR_TYPE,
        !            65:     XML_RELAXNG_ERR_TYPEVAL,
        !            66:     XML_RELAXNG_ERR_DUPID,
        !            67:     XML_RELAXNG_ERR_TYPECMP,
        !            68:     XML_RELAXNG_ERR_NOSTATE,
        !            69:     XML_RELAXNG_ERR_NODEFINE,
        !            70:     XML_RELAXNG_ERR_LISTEXTRA,
        !            71:     XML_RELAXNG_ERR_LISTEMPTY,
        !            72:     XML_RELAXNG_ERR_INTERNODATA,
        !            73:     XML_RELAXNG_ERR_INTERSEQ,
        !            74:     XML_RELAXNG_ERR_INTEREXTRA,
        !            75:     XML_RELAXNG_ERR_ELEMNAME,
        !            76:     XML_RELAXNG_ERR_ATTRNAME,
        !            77:     XML_RELAXNG_ERR_ELEMNONS,
        !            78:     XML_RELAXNG_ERR_ATTRNONS,
        !            79:     XML_RELAXNG_ERR_ELEMWRONGNS,
        !            80:     XML_RELAXNG_ERR_ATTRWRONGNS,
        !            81:     XML_RELAXNG_ERR_ELEMEXTRANS,
        !            82:     XML_RELAXNG_ERR_ATTREXTRANS,
        !            83:     XML_RELAXNG_ERR_ELEMNOTEMPTY,
        !            84:     XML_RELAXNG_ERR_NOELEM,
        !            85:     XML_RELAXNG_ERR_NOTELEM,
        !            86:     XML_RELAXNG_ERR_ATTRVALID,
        !            87:     XML_RELAXNG_ERR_CONTENTVALID,
        !            88:     XML_RELAXNG_ERR_EXTRACONTENT,
        !            89:     XML_RELAXNG_ERR_INVALIDATTR,
        !            90:     XML_RELAXNG_ERR_DATAELEM,
        !            91:     XML_RELAXNG_ERR_VALELEM,
        !            92:     XML_RELAXNG_ERR_LISTELEM,
        !            93:     XML_RELAXNG_ERR_DATATYPE,
        !            94:     XML_RELAXNG_ERR_VALUE,
        !            95:     XML_RELAXNG_ERR_LIST,
        !            96:     XML_RELAXNG_ERR_NOGRAMMAR,
        !            97:     XML_RELAXNG_ERR_EXTRADATA,
        !            98:     XML_RELAXNG_ERR_LACKDATA,
        !            99:     XML_RELAXNG_ERR_INTERNAL,
        !           100:     XML_RELAXNG_ERR_ELEMWRONG,
        !           101:     XML_RELAXNG_ERR_TEXTWRONG
        !           102: } xmlRelaxNGValidErr;
        !           103: 
        !           104: /*
        !           105:  * xmlRelaxNGParserFlags:
        !           106:  *
        !           107:  * List of possible Relax NG Parser flags
        !           108:  */
        !           109: typedef enum {
        !           110:     XML_RELAXNGP_NONE = 0,
        !           111:     XML_RELAXNGP_FREE_DOC = 1,
        !           112:     XML_RELAXNGP_CRNG = 2
        !           113: } xmlRelaxNGParserFlag;
        !           114: 
        !           115: XMLPUBFUN int XMLCALL
        !           116:                    xmlRelaxNGInitTypes         (void);
        !           117: XMLPUBFUN void XMLCALL
        !           118:                    xmlRelaxNGCleanupTypes      (void);
        !           119: 
        !           120: /*
        !           121:  * Interfaces for parsing.
        !           122:  */
        !           123: XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
        !           124:                    xmlRelaxNGNewParserCtxt     (const char *URL);
        !           125: XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
        !           126:                    xmlRelaxNGNewMemParserCtxt  (const char *buffer,
        !           127:                                                 int size);
        !           128: XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
        !           129:                    xmlRelaxNGNewDocParserCtxt  (xmlDocPtr doc);
        !           130: 
        !           131: XMLPUBFUN int XMLCALL
        !           132:                    xmlRelaxParserSetFlag       (xmlRelaxNGParserCtxtPtr ctxt,
        !           133:                                                 int flag);
        !           134: 
        !           135: XMLPUBFUN void XMLCALL
        !           136:                    xmlRelaxNGFreeParserCtxt    (xmlRelaxNGParserCtxtPtr ctxt);
        !           137: XMLPUBFUN void XMLCALL
        !           138:                    xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
        !           139:                                         xmlRelaxNGValidityErrorFunc err,
        !           140:                                         xmlRelaxNGValidityWarningFunc warn,
        !           141:                                         void *ctx);
        !           142: XMLPUBFUN int XMLCALL
        !           143:                    xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
        !           144:                                         xmlRelaxNGValidityErrorFunc *err,
        !           145:                                         xmlRelaxNGValidityWarningFunc *warn,
        !           146:                                         void **ctx);
        !           147: XMLPUBFUN void XMLCALL
        !           148:                    xmlRelaxNGSetParserStructuredErrors(
        !           149:                                         xmlRelaxNGParserCtxtPtr ctxt,
        !           150:                                         xmlStructuredErrorFunc serror,
        !           151:                                         void *ctx);
        !           152: XMLPUBFUN xmlRelaxNGPtr XMLCALL
        !           153:                    xmlRelaxNGParse             (xmlRelaxNGParserCtxtPtr ctxt);
        !           154: XMLPUBFUN void XMLCALL
        !           155:                    xmlRelaxNGFree              (xmlRelaxNGPtr schema);
        !           156: #ifdef LIBXML_OUTPUT_ENABLED
        !           157: XMLPUBFUN void XMLCALL
        !           158:                    xmlRelaxNGDump              (FILE *output,
        !           159:                                         xmlRelaxNGPtr schema);
        !           160: XMLPUBFUN void XMLCALL
        !           161:                    xmlRelaxNGDumpTree  (FILE * output,
        !           162:                                         xmlRelaxNGPtr schema);
        !           163: #endif /* LIBXML_OUTPUT_ENABLED */
        !           164: /*
        !           165:  * Interfaces for validating
        !           166:  */
        !           167: XMLPUBFUN void XMLCALL
        !           168:                    xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
        !           169:                                         xmlRelaxNGValidityErrorFunc err,
        !           170:                                         xmlRelaxNGValidityWarningFunc warn,
        !           171:                                         void *ctx);
        !           172: XMLPUBFUN int XMLCALL
        !           173:                    xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
        !           174:                                         xmlRelaxNGValidityErrorFunc *err,
        !           175:                                         xmlRelaxNGValidityWarningFunc *warn,
        !           176:                                         void **ctx);
        !           177: XMLPUBFUN void XMLCALL
        !           178:                        xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
        !           179:                                          xmlStructuredErrorFunc serror, void *ctx);
        !           180: XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
        !           181:                    xmlRelaxNGNewValidCtxt      (xmlRelaxNGPtr schema);
        !           182: XMLPUBFUN void XMLCALL
        !           183:                    xmlRelaxNGFreeValidCtxt     (xmlRelaxNGValidCtxtPtr ctxt);
        !           184: XMLPUBFUN int XMLCALL
        !           185:                    xmlRelaxNGValidateDoc       (xmlRelaxNGValidCtxtPtr ctxt,
        !           186:                                                 xmlDocPtr doc);
        !           187: /*
        !           188:  * Interfaces for progressive validation when possible
        !           189:  */
        !           190: XMLPUBFUN int XMLCALL
        !           191:                    xmlRelaxNGValidatePushElement       (xmlRelaxNGValidCtxtPtr ctxt,
        !           192:                                         xmlDocPtr doc,
        !           193:                                         xmlNodePtr elem);
        !           194: XMLPUBFUN int XMLCALL
        !           195:                    xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
        !           196:                                         const xmlChar *data,
        !           197:                                         int len);
        !           198: XMLPUBFUN int XMLCALL
        !           199:                    xmlRelaxNGValidatePopElement        (xmlRelaxNGValidCtxtPtr ctxt,
        !           200:                                         xmlDocPtr doc,
        !           201:                                         xmlNodePtr elem);
        !           202: XMLPUBFUN int XMLCALL
        !           203:                    xmlRelaxNGValidateFullElement       (xmlRelaxNGValidCtxtPtr ctxt,
        !           204:                                         xmlDocPtr doc,
        !           205:                                         xmlNodePtr elem);
        !           206: 
        !           207: #ifdef __cplusplus
        !           208: }
        !           209: #endif
        !           210: 
        !           211: #endif /* LIBXML_SCHEMAS_ENABLED */
        !           212: 
        !           213: #endif /* __XML_RELAX_NG__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>