Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
relaxng.h
00001 /* 00002 * Summary: implementation of the Relax-NG validation 00003 * Description: implementation of the Relax-NG validation 00004 * 00005 * Copy: See Copyright for the status of this software. 00006 * 00007 * Author: Daniel Veillard 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 00027 /** 00028 * xmlRelaxNGValidityErrorFunc: 00029 * @ctx: the validation context 00030 * @msg: the message 00031 * @...: extra arguments 00032 * 00033 * Signature of an error callback from a Relax-NG validation 00034 */ 00035 typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx, 00036 const char *msg, 00037 ...) LIBXML_ATTR_FORMAT(2,3); 00038 00039 /** 00040 * xmlRelaxNGValidityWarningFunc: 00041 * @ctx: the validation context 00042 * @msg: the message 00043 * @...: extra arguments 00044 * 00045 * Signature of a warning callback from a Relax-NG validation 00046 */ 00047 typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx, 00048 const char *msg, 00049 ...) LIBXML_ATTR_FORMAT(2,3); 00050 00051 /** 00052 * A schemas validation context 00053 */ 00054 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt; 00055 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr; 00056 00057 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt; 00058 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr; 00059 00060 /* 00061 * xmlRelaxNGValidErr: 00062 * 00063 * List of possible Relax NG validation errors 00064 */ 00065 typedef enum { 00066 XML_RELAXNG_OK = 0, 00067 XML_RELAXNG_ERR_MEMORY, 00068 XML_RELAXNG_ERR_TYPE, 00069 XML_RELAXNG_ERR_TYPEVAL, 00070 XML_RELAXNG_ERR_DUPID, 00071 XML_RELAXNG_ERR_TYPECMP, 00072 XML_RELAXNG_ERR_NOSTATE, 00073 XML_RELAXNG_ERR_NODEFINE, 00074 XML_RELAXNG_ERR_LISTEXTRA, 00075 XML_RELAXNG_ERR_LISTEMPTY, 00076 XML_RELAXNG_ERR_INTERNODATA, 00077 XML_RELAXNG_ERR_INTERSEQ, 00078 XML_RELAXNG_ERR_INTEREXTRA, 00079 XML_RELAXNG_ERR_ELEMNAME, 00080 XML_RELAXNG_ERR_ATTRNAME, 00081 XML_RELAXNG_ERR_ELEMNONS, 00082 XML_RELAXNG_ERR_ATTRNONS, 00083 XML_RELAXNG_ERR_ELEMWRONGNS, 00084 XML_RELAXNG_ERR_ATTRWRONGNS, 00085 XML_RELAXNG_ERR_ELEMEXTRANS, 00086 XML_RELAXNG_ERR_ATTREXTRANS, 00087 XML_RELAXNG_ERR_ELEMNOTEMPTY, 00088 XML_RELAXNG_ERR_NOELEM, 00089 XML_RELAXNG_ERR_NOTELEM, 00090 XML_RELAXNG_ERR_ATTRVALID, 00091 XML_RELAXNG_ERR_CONTENTVALID, 00092 XML_RELAXNG_ERR_EXTRACONTENT, 00093 XML_RELAXNG_ERR_INVALIDATTR, 00094 XML_RELAXNG_ERR_DATAELEM, 00095 XML_RELAXNG_ERR_VALELEM, 00096 XML_RELAXNG_ERR_LISTELEM, 00097 XML_RELAXNG_ERR_DATATYPE, 00098 XML_RELAXNG_ERR_VALUE, 00099 XML_RELAXNG_ERR_LIST, 00100 XML_RELAXNG_ERR_NOGRAMMAR, 00101 XML_RELAXNG_ERR_EXTRADATA, 00102 XML_RELAXNG_ERR_LACKDATA, 00103 XML_RELAXNG_ERR_INTERNAL, 00104 XML_RELAXNG_ERR_ELEMWRONG, 00105 XML_RELAXNG_ERR_TEXTWRONG 00106 } xmlRelaxNGValidErr; 00107 00108 /* 00109 * xmlRelaxNGParserFlags: 00110 * 00111 * List of possible Relax NG Parser flags 00112 */ 00113 typedef enum { 00114 XML_RELAXNGP_NONE = 0, 00115 XML_RELAXNGP_FREE_DOC = 1, 00116 XML_RELAXNGP_CRNG = 2 00117 } xmlRelaxNGParserFlag; 00118 00119 XMLPUBFUN int XMLCALL 00120 xmlRelaxNGInitTypes (void); 00121 XMLPUBFUN void XMLCALL 00122 xmlRelaxNGCleanupTypes (void); 00123 00124 /* 00125 * Interfaces for parsing. 00126 */ 00127 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL 00128 xmlRelaxNGNewParserCtxt (const char *URL); 00129 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL 00130 xmlRelaxNGNewMemParserCtxt (const char *buffer, 00131 int size); 00132 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL 00133 xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc); 00134 00135 XMLPUBFUN int XMLCALL 00136 xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt, 00137 int flag); 00138 00139 XMLPUBFUN void XMLCALL 00140 xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt); 00141 XMLPUBFUN void XMLCALL 00142 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt, 00143 xmlRelaxNGValidityErrorFunc err, 00144 xmlRelaxNGValidityWarningFunc warn, 00145 void *ctx); 00146 XMLPUBFUN int XMLCALL 00147 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt, 00148 xmlRelaxNGValidityErrorFunc *err, 00149 xmlRelaxNGValidityWarningFunc *warn, 00150 void **ctx); 00151 XMLPUBFUN void XMLCALL 00152 xmlRelaxNGSetParserStructuredErrors( 00153 xmlRelaxNGParserCtxtPtr ctxt, 00154 xmlStructuredErrorFunc serror, 00155 void *ctx); 00156 XMLPUBFUN xmlRelaxNGPtr XMLCALL 00157 xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt); 00158 XMLPUBFUN void XMLCALL 00159 xmlRelaxNGFree (xmlRelaxNGPtr schema); 00160 #ifdef LIBXML_OUTPUT_ENABLED 00161 XMLPUBFUN void XMLCALL 00162 xmlRelaxNGDump (FILE *output, 00163 xmlRelaxNGPtr schema); 00164 XMLPUBFUN void XMLCALL 00165 xmlRelaxNGDumpTree (FILE * output, 00166 xmlRelaxNGPtr schema); 00167 #endif /* LIBXML_OUTPUT_ENABLED */ 00168 /* 00169 * Interfaces for validating 00170 */ 00171 XMLPUBFUN void XMLCALL 00172 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt, 00173 xmlRelaxNGValidityErrorFunc err, 00174 xmlRelaxNGValidityWarningFunc warn, 00175 void *ctx); 00176 XMLPUBFUN int XMLCALL 00177 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt, 00178 xmlRelaxNGValidityErrorFunc *err, 00179 xmlRelaxNGValidityWarningFunc *warn, 00180 void **ctx); 00181 XMLPUBFUN void XMLCALL 00182 xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt, 00183 xmlStructuredErrorFunc serror, void *ctx); 00184 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL 00185 xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema); 00186 XMLPUBFUN void XMLCALL 00187 xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt); 00188 XMLPUBFUN int XMLCALL 00189 xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt, 00190 xmlDocPtr doc); 00191 /* 00192 * Interfaces for progressive validation when possible 00193 */ 00194 XMLPUBFUN int XMLCALL 00195 xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt, 00196 xmlDocPtr doc, 00197 xmlNodePtr elem); 00198 XMLPUBFUN int XMLCALL 00199 xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt, 00200 const xmlChar *data, 00201 int len); 00202 XMLPUBFUN int XMLCALL 00203 xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt, 00204 xmlDocPtr doc, 00205 xmlNodePtr elem); 00206 XMLPUBFUN int XMLCALL 00207 xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt, 00208 xmlDocPtr doc, 00209 xmlNodePtr elem); 00210 00211 #ifdef __cplusplus 00212 } 00213 #endif 00214 00215 #endif /* LIBXML_SCHEMAS_ENABLED */ 00216 00217 #endif /* __XML_RELAX_NG__ */ 00218
Generated on Thu Jul 14 2022 13:59:13 by
