File indexing completed on 2025-02-22 10:41:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef __XML_RELAX_NG__
0011 #define __XML_RELAX_NG__
0012
0013 #include <libxml/xmlversion.h>
0014 #include <libxml/xmlerror.h>
0015 #include <libxml/xmlstring.h>
0016 #include <libxml/tree.h>
0017
0018 #ifdef LIBXML_SCHEMAS_ENABLED
0019
0020 #ifdef __cplusplus
0021 extern "C" {
0022 #endif
0023
0024 typedef struct _xmlRelaxNG xmlRelaxNG;
0025 typedef xmlRelaxNG *xmlRelaxNGPtr;
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036 typedef void (*xmlRelaxNGValidityErrorFunc) (void *ctx,
0037 const char *msg,
0038 ...) LIBXML_ATTR_FORMAT(2,3);
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048 typedef void (*xmlRelaxNGValidityWarningFunc) (void *ctx,
0049 const char *msg,
0050 ...) LIBXML_ATTR_FORMAT(2,3);
0051
0052
0053
0054
0055 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
0056 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
0057
0058 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
0059 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
0060
0061
0062
0063
0064
0065
0066 typedef enum {
0067 XML_RELAXNG_OK = 0,
0068 XML_RELAXNG_ERR_MEMORY,
0069 XML_RELAXNG_ERR_TYPE,
0070 XML_RELAXNG_ERR_TYPEVAL,
0071 XML_RELAXNG_ERR_DUPID,
0072 XML_RELAXNG_ERR_TYPECMP,
0073 XML_RELAXNG_ERR_NOSTATE,
0074 XML_RELAXNG_ERR_NODEFINE,
0075 XML_RELAXNG_ERR_LISTEXTRA,
0076 XML_RELAXNG_ERR_LISTEMPTY,
0077 XML_RELAXNG_ERR_INTERNODATA,
0078 XML_RELAXNG_ERR_INTERSEQ,
0079 XML_RELAXNG_ERR_INTEREXTRA,
0080 XML_RELAXNG_ERR_ELEMNAME,
0081 XML_RELAXNG_ERR_ATTRNAME,
0082 XML_RELAXNG_ERR_ELEMNONS,
0083 XML_RELAXNG_ERR_ATTRNONS,
0084 XML_RELAXNG_ERR_ELEMWRONGNS,
0085 XML_RELAXNG_ERR_ATTRWRONGNS,
0086 XML_RELAXNG_ERR_ELEMEXTRANS,
0087 XML_RELAXNG_ERR_ATTREXTRANS,
0088 XML_RELAXNG_ERR_ELEMNOTEMPTY,
0089 XML_RELAXNG_ERR_NOELEM,
0090 XML_RELAXNG_ERR_NOTELEM,
0091 XML_RELAXNG_ERR_ATTRVALID,
0092 XML_RELAXNG_ERR_CONTENTVALID,
0093 XML_RELAXNG_ERR_EXTRACONTENT,
0094 XML_RELAXNG_ERR_INVALIDATTR,
0095 XML_RELAXNG_ERR_DATAELEM,
0096 XML_RELAXNG_ERR_VALELEM,
0097 XML_RELAXNG_ERR_LISTELEM,
0098 XML_RELAXNG_ERR_DATATYPE,
0099 XML_RELAXNG_ERR_VALUE,
0100 XML_RELAXNG_ERR_LIST,
0101 XML_RELAXNG_ERR_NOGRAMMAR,
0102 XML_RELAXNG_ERR_EXTRADATA,
0103 XML_RELAXNG_ERR_LACKDATA,
0104 XML_RELAXNG_ERR_INTERNAL,
0105 XML_RELAXNG_ERR_ELEMWRONG,
0106 XML_RELAXNG_ERR_TEXTWRONG
0107 } xmlRelaxNGValidErr;
0108
0109
0110
0111
0112
0113
0114 typedef enum {
0115 XML_RELAXNGP_NONE = 0,
0116 XML_RELAXNGP_FREE_DOC = 1,
0117 XML_RELAXNGP_CRNG = 2
0118 } xmlRelaxNGParserFlag;
0119
0120 XMLPUBFUN int
0121 xmlRelaxNGInitTypes (void);
0122 XML_DEPRECATED
0123 XMLPUBFUN void
0124 xmlRelaxNGCleanupTypes (void);
0125
0126
0127
0128
0129 XMLPUBFUN xmlRelaxNGParserCtxtPtr
0130 xmlRelaxNGNewParserCtxt (const char *URL);
0131 XMLPUBFUN xmlRelaxNGParserCtxtPtr
0132 xmlRelaxNGNewMemParserCtxt (const char *buffer,
0133 int size);
0134 XMLPUBFUN xmlRelaxNGParserCtxtPtr
0135 xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
0136
0137 XMLPUBFUN int
0138 xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
0139 int flag);
0140
0141 XMLPUBFUN void
0142 xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
0143 XMLPUBFUN void
0144 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
0145 xmlRelaxNGValidityErrorFunc err,
0146 xmlRelaxNGValidityWarningFunc warn,
0147 void *ctx);
0148 XMLPUBFUN int
0149 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
0150 xmlRelaxNGValidityErrorFunc *err,
0151 xmlRelaxNGValidityWarningFunc *warn,
0152 void **ctx);
0153 XMLPUBFUN void
0154 xmlRelaxNGSetParserStructuredErrors(
0155 xmlRelaxNGParserCtxtPtr ctxt,
0156 xmlStructuredErrorFunc serror,
0157 void *ctx);
0158 XMLPUBFUN xmlRelaxNGPtr
0159 xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
0160 XMLPUBFUN void
0161 xmlRelaxNGFree (xmlRelaxNGPtr schema);
0162 #ifdef LIBXML_OUTPUT_ENABLED
0163 XMLPUBFUN void
0164 xmlRelaxNGDump (FILE *output,
0165 xmlRelaxNGPtr schema);
0166 XMLPUBFUN void
0167 xmlRelaxNGDumpTree (FILE * output,
0168 xmlRelaxNGPtr schema);
0169 #endif
0170
0171
0172
0173 XMLPUBFUN void
0174 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
0175 xmlRelaxNGValidityErrorFunc err,
0176 xmlRelaxNGValidityWarningFunc warn,
0177 void *ctx);
0178 XMLPUBFUN int
0179 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
0180 xmlRelaxNGValidityErrorFunc *err,
0181 xmlRelaxNGValidityWarningFunc *warn,
0182 void **ctx);
0183 XMLPUBFUN void
0184 xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
0185 xmlStructuredErrorFunc serror, void *ctx);
0186 XMLPUBFUN xmlRelaxNGValidCtxtPtr
0187 xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
0188 XMLPUBFUN void
0189 xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
0190 XMLPUBFUN int
0191 xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
0192 xmlDocPtr doc);
0193
0194
0195
0196 XMLPUBFUN int
0197 xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
0198 xmlDocPtr doc,
0199 xmlNodePtr elem);
0200 XMLPUBFUN int
0201 xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
0202 const xmlChar *data,
0203 int len);
0204 XMLPUBFUN int
0205 xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
0206 xmlDocPtr doc,
0207 xmlNodePtr elem);
0208 XMLPUBFUN int
0209 xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
0210 xmlDocPtr doc,
0211 xmlNodePtr elem);
0212
0213 #ifdef __cplusplus
0214 }
0215 #endif
0216
0217 #endif
0218
0219 #endif