Annotation of embedaddon/libxml2/include/libxml/relaxng.h, revision 1.1.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>