00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef __XML_RELAX_NG__
00011 #define __XML_RELAX_NG__
00012
00013 #include <libxml/xmlversion.h>
00014 #include <libxml/hash.h>
00015 #include <libxml/xmlstring.h>
00016
00017 #ifdef LIBXML_SCHEMAS_ENABLED
00018
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022
00023 typedef struct _xmlRelaxNG xmlRelaxNG;
00024 typedef xmlRelaxNG *xmlRelaxNGPtr;
00025
00026
00030 typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
00031 typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...);
00032
00033 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
00034 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
00035
00036 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
00037 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
00038
00039
00040
00041
00042
00043
00044 typedef enum {
00045 XML_RELAXNG_OK = 0,
00046 XML_RELAXNG_ERR_MEMORY,
00047 XML_RELAXNG_ERR_TYPE,
00048 XML_RELAXNG_ERR_TYPEVAL,
00049 XML_RELAXNG_ERR_DUPID,
00050 XML_RELAXNG_ERR_TYPECMP,
00051 XML_RELAXNG_ERR_NOSTATE,
00052 XML_RELAXNG_ERR_NODEFINE,
00053 XML_RELAXNG_ERR_LISTEXTRA,
00054 XML_RELAXNG_ERR_LISTEMPTY,
00055 XML_RELAXNG_ERR_INTERNODATA,
00056 XML_RELAXNG_ERR_INTERSEQ,
00057 XML_RELAXNG_ERR_INTEREXTRA,
00058 XML_RELAXNG_ERR_ELEMNAME,
00059 XML_RELAXNG_ERR_ATTRNAME,
00060 XML_RELAXNG_ERR_ELEMNONS,
00061 XML_RELAXNG_ERR_ATTRNONS,
00062 XML_RELAXNG_ERR_ELEMWRONGNS,
00063 XML_RELAXNG_ERR_ATTRWRONGNS,
00064 XML_RELAXNG_ERR_ELEMEXTRANS,
00065 XML_RELAXNG_ERR_ATTREXTRANS,
00066 XML_RELAXNG_ERR_ELEMNOTEMPTY,
00067 XML_RELAXNG_ERR_NOELEM,
00068 XML_RELAXNG_ERR_NOTELEM,
00069 XML_RELAXNG_ERR_ATTRVALID,
00070 XML_RELAXNG_ERR_CONTENTVALID,
00071 XML_RELAXNG_ERR_EXTRACONTENT,
00072 XML_RELAXNG_ERR_INVALIDATTR,
00073 XML_RELAXNG_ERR_DATAELEM,
00074 XML_RELAXNG_ERR_VALELEM,
00075 XML_RELAXNG_ERR_LISTELEM,
00076 XML_RELAXNG_ERR_DATATYPE,
00077 XML_RELAXNG_ERR_VALUE,
00078 XML_RELAXNG_ERR_LIST,
00079 XML_RELAXNG_ERR_NOGRAMMAR,
00080 XML_RELAXNG_ERR_EXTRADATA,
00081 XML_RELAXNG_ERR_LACKDATA,
00082 XML_RELAXNG_ERR_INTERNAL,
00083 XML_RELAXNG_ERR_ELEMWRONG,
00084 XML_RELAXNG_ERR_TEXTWRONG
00085 } xmlRelaxNGValidErr;
00086
00087
00088
00089
00090
00091
00092 typedef enum {
00093 XML_RELAXNGP_NONE = 0,
00094 XML_RELAXNGP_FREE_DOC = 1,
00095 XML_RELAXNGP_CRNG = 2
00096 } xmlRelaxNGParserFlag;
00097
00098 XMLPUBFUN int XMLCALL
00099 xmlRelaxNGInitTypes (void);
00100 XMLPUBFUN void XMLCALL
00101 xmlRelaxNGCleanupTypes (void);
00102
00103
00104
00105
00106 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00107 xmlRelaxNGNewParserCtxt (const char *URL);
00108 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00109 xmlRelaxNGNewMemParserCtxt (const char *buffer,
00110 int size);
00111 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
00112 xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
00113
00114 XMLPUBFUN int XMLCALL
00115 xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
00116 int flag);
00117
00118 XMLPUBFUN void XMLCALL
00119 xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
00120 XMLPUBFUN void XMLCALL
00121 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
00122 xmlRelaxNGValidityErrorFunc err,
00123 xmlRelaxNGValidityWarningFunc warn,
00124 void *ctx);
00125 XMLPUBFUN int XMLCALL
00126 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
00127 xmlRelaxNGValidityErrorFunc *err,
00128 xmlRelaxNGValidityWarningFunc *warn,
00129 void **ctx);
00130 XMLPUBFUN void XMLCALL
00131 xmlRelaxNGSetParserStructuredErrors(
00132 xmlRelaxNGParserCtxtPtr ctxt,
00133 xmlStructuredErrorFunc serror,
00134 void *ctx);
00135 XMLPUBFUN xmlRelaxNGPtr XMLCALL
00136 xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
00137 XMLPUBFUN void XMLCALL
00138 xmlRelaxNGFree (xmlRelaxNGPtr schema);
00139 #ifdef LIBXML_OUTPUT_ENABLED
00140 XMLPUBFUN void XMLCALL
00141 xmlRelaxNGDump (FILE *output,
00142 xmlRelaxNGPtr schema);
00143 XMLPUBFUN void XMLCALL
00144 xmlRelaxNGDumpTree (FILE * output,
00145 xmlRelaxNGPtr schema);
00146 #endif
00147
00148
00149
00150 XMLPUBFUN void XMLCALL
00151 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
00152 xmlRelaxNGValidityErrorFunc err,
00153 xmlRelaxNGValidityWarningFunc warn,
00154 void *ctx);
00155 XMLPUBFUN int XMLCALL
00156 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
00157 xmlRelaxNGValidityErrorFunc *err,
00158 xmlRelaxNGValidityWarningFunc *warn,
00159 void **ctx);
00160 XMLPUBFUN void XMLCALL
00161 xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
00162 xmlStructuredErrorFunc serror, void *ctx);
00163 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
00164 xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
00165 XMLPUBFUN void XMLCALL
00166 xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
00167 XMLPUBFUN int XMLCALL
00168 xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
00169 xmlDocPtr doc);
00170
00171
00172
00173 XMLPUBFUN int XMLCALL
00174 xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
00175 xmlDocPtr doc,
00176 xmlNodePtr elem);
00177 XMLPUBFUN int XMLCALL
00178 xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
00179 const xmlChar *data,
00180 int len);
00181 XMLPUBFUN int XMLCALL
00182 xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
00183 xmlDocPtr doc,
00184 xmlNodePtr elem);
00185 XMLPUBFUN int XMLCALL
00186 xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
00187 xmlDocPtr doc,
00188 xmlNodePtr elem);
00189
00190 #ifdef __cplusplus
00191 }
00192 #endif
00193
00194 #endif
00195
00196 #endif