Paul Cercueil / libxml2

Dependents:   libiio

Committer:
pcercuei
Date:
Thu Aug 25 10:05:35 2016 +0000
Revision:
0:03b5121a232e
Add basic C files of libxml2 2.9.4

Who changed what in which revision?

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