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>