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