00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __XML_RELAX_NG__
00020
00021 #define __XML_RELAX_NG__
00022
00023
00024
00025 #include <libxml/xmlversion.h>
00026
00027 #include <libxml/hash.h>
00028
00029 #include <libxml/xmlstring.h>
00030
00031
00032
00033 #ifdef LIBXML_SCHEMAS_ENABLED
00034
00035
00036
00037 #ifdef __cplusplus
00038
00039 extern "C" {
00040
00041 #endif
00042
00043
00044
00045 typedef struct _xmlRelaxNG xmlRelaxNG;
00046
00047 typedef xmlRelaxNG *xmlRelaxNGPtr;
00048
00049
00050
00051
00052
00059 typedef void (*xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
00060
00061 typedef void (*xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...);
00062
00063
00064
00065 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
00066
00067 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
00068
00069
00070
00071 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
00072
00073 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087 typedef enum {
00088
00089 XML_RELAXNG_OK = 0,
00090
00091 XML_RELAXNG_ERR_MEMORY,
00092
00093 XML_RELAXNG_ERR_TYPE,
00094
00095 XML_RELAXNG_ERR_TYPEVAL,
00096
00097 XML_RELAXNG_ERR_DUPID,
00098
00099 XML_RELAXNG_ERR_TYPECMP,
00100
00101 XML_RELAXNG_ERR_NOSTATE,
00102
00103 XML_RELAXNG_ERR_NODEFINE,
00104
00105 XML_RELAXNG_ERR_LISTEXTRA,
00106
00107 XML_RELAXNG_ERR_LISTEMPTY,
00108
00109 XML_RELAXNG_ERR_INTERNODATA,
00110
00111 XML_RELAXNG_ERR_INTERSEQ,
00112
00113 XML_RELAXNG_ERR_INTEREXTRA,
00114
00115 XML_RELAXNG_ERR_ELEMNAME,
00116
00117 XML_RELAXNG_ERR_ATTRNAME,
00118
00119 XML_RELAXNG_ERR_ELEMNONS,
00120
00121 XML_RELAXNG_ERR_ATTRNONS,
00122
00123 XML_RELAXNG_ERR_ELEMWRONGNS,
00124
00125 XML_RELAXNG_ERR_ATTRWRONGNS,
00126
00127 XML_RELAXNG_ERR_ELEMEXTRANS,
00128
00129 XML_RELAXNG_ERR_ATTREXTRANS,
00130
00131 XML_RELAXNG_ERR_ELEMNOTEMPTY,
00132
00133 XML_RELAXNG_ERR_NOELEM,
00134
00135 XML_RELAXNG_ERR_NOTELEM,
00136
00137 XML_RELAXNG_ERR_ATTRVALID,
00138
00139 XML_RELAXNG_ERR_CONTENTVALID,
00140
00141 XML_RELAXNG_ERR_EXTRACONTENT,
00142
00143 XML_RELAXNG_ERR_INVALIDATTR,
00144
00145 XML_RELAXNG_ERR_DATAELEM,
00146
00147 XML_RELAXNG_ERR_VALELEM,
00148
00149 XML_RELAXNG_ERR_LISTELEM,
00150
00151 XML_RELAXNG_ERR_DATATYPE,
00152
00153 XML_RELAXNG_ERR_VALUE,
00154
00155 XML_RELAXNG_ERR_LIST,
00156
00157 XML_RELAXNG_ERR_NOGRAMMAR,
00158
00159 XML_RELAXNG_ERR_EXTRADATA,
00160
00161 XML_RELAXNG_ERR_LACKDATA,
00162
00163 XML_RELAXNG_ERR_INTERNAL,
00164
00165 XML_RELAXNG_ERR_ELEMWRONG,
00166
00167 XML_RELAXNG_ERR_TEXTWRONG
00168
00169 } xmlRelaxNGValidErr;
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183 typedef enum {
00184
00185 XML_RELAXNGP_NONE = 0,
00186
00187 XML_RELAXNGP_FREE_DOC = 1,
00188
00189 XML_RELAXNGP_CRNG = 2
00190
00191 } xmlRelaxNGParserFlag;
00192
00193
00194
00195 XMLPUBFUN int XMLCALL
00196
00197 xmlRelaxNGInitTypes (void);
00198
00199 XMLPUBFUN void XMLCALL
00200
00201 xmlRelaxNGCleanupTypes (void);
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00212
00213 xmlRelaxNGNewParserCtxt (const char *URL);
00214
00215 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00216
00217 xmlRelaxNGNewMemParserCtxt (const char *buffer,
00218
00219 int size);
00220
00221 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00222
00223 xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
00224
00225
00226
00227 XMLPUBFUN int XMLCALL
00228
00229 xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
00230
00231 int flag);
00232
00233
00234
00235 XMLPUBFUN void XMLCALL
00236
00237 xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
00238
00239 XMLPUBFUN void XMLCALL
00240
00241 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
00242
00243 xmlRelaxNGValidityErrorFunc err,
00244
00245 xmlRelaxNGValidityWarningFunc warn,
00246
00247 void *ctx);
00248
00249 XMLPUBFUN int XMLCALL
00250
00251 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
00252
00253 xmlRelaxNGValidityErrorFunc *err,
00254
00255 xmlRelaxNGValidityWarningFunc *warn,
00256
00257 void **ctx);
00258
00259 XMLPUBFUN xmlRelaxNGPtr XMLCALL
00260
00261 xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
00262
00263 XMLPUBFUN void XMLCALL
00264
00265 xmlRelaxNGFree (xmlRelaxNGPtr schema);
00266
00267 #ifdef LIBXML_OUTPUT_ENABLED
00268
00269 XMLPUBFUN void XMLCALL
00270
00271 xmlRelaxNGDump (FILE *output,
00272
00273 xmlRelaxNGPtr schema);
00274
00275 XMLPUBFUN void XMLCALL
00276
00277 xmlRelaxNGDumpTree (FILE * output,
00278
00279 xmlRelaxNGPtr schema);
00280
00281 #endif
00282
00283
00284
00285
00286
00287
00288
00289 XMLPUBFUN void XMLCALL
00290
00291 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
00292
00293 xmlRelaxNGValidityErrorFunc err,
00294
00295 xmlRelaxNGValidityWarningFunc warn,
00296
00297 void *ctx);
00298
00299 XMLPUBFUN int XMLCALL
00300
00301 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
00302
00303 xmlRelaxNGValidityErrorFunc *err,
00304
00305 xmlRelaxNGValidityWarningFunc *warn,
00306
00307 void **ctx);
00308
00309 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
00310
00311 xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
00312
00313 XMLPUBFUN void XMLCALL
00314
00315 xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
00316
00317 XMLPUBFUN int XMLCALL
00318
00319 xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
00320
00321 xmlDocPtr doc);
00322
00323
00324
00325
00326
00327
00328
00329 XMLPUBFUN int XMLCALL
00330
00331 xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
00332
00333 xmlDocPtr doc,
00334
00335 xmlNodePtr elem);
00336
00337 XMLPUBFUN int XMLCALL
00338
00339 xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
00340
00341 const xmlChar *data,
00342
00343 int len);
00344
00345 XMLPUBFUN int XMLCALL
00346
00347 xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
00348
00349 xmlDocPtr doc,
00350
00351 xmlNodePtr elem);
00352
00353 XMLPUBFUN int XMLCALL
00354
00355 xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
00356
00357 xmlDocPtr doc,
00358
00359 xmlNodePtr elem);
00360
00361
00362
00363 #ifdef __cplusplus
00364
00365 }
00366
00367 #endif
00368
00369
00370
00371 #endif
00372
00373
00374
00375 #endif
00376