Update V8 to version 4.7.44.
[chromium-blink-merge.git] / third_party / libxml / src / include / libxml / relaxng.h
blobf269c9ec0db27aa5ede24cb7009568c6edb03ebb
1 /*
2 * Summary: implementation of the Relax-NG validation
3 * Description: implementation of the Relax-NG validation
5 * Copy: See Copyright for the status of this software.
7 * Author: Daniel Veillard
8 */
10 #ifndef __XML_RELAX_NG__
11 #define __XML_RELAX_NG__
13 #include <libxml/xmlversion.h>
14 #include <libxml/hash.h>
15 #include <libxml/xmlstring.h>
17 #ifdef LIBXML_SCHEMAS_ENABLED
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
23 typedef struct _xmlRelaxNG xmlRelaxNG;
24 typedef xmlRelaxNG *xmlRelaxNGPtr;
27 /**
28 * xmlRelaxNGValidityErrorFunc:
29 * @ctx: the validation context
30 * @msg: the message
31 * @...: extra arguments
33 * Signature of an error callback from a Relax-NG validation
35 typedef void (XMLCDECL *xmlRelaxNGValidityErrorFunc) (void *ctx,
36 const char *msg,
37 ...) LIBXML_ATTR_FORMAT(2,3);
39 /**
40 * xmlRelaxNGValidityWarningFunc:
41 * @ctx: the validation context
42 * @msg: the message
43 * @...: extra arguments
45 * Signature of a warning callback from a Relax-NG validation
47 typedef void (XMLCDECL *xmlRelaxNGValidityWarningFunc) (void *ctx,
48 const char *msg,
49 ...) LIBXML_ATTR_FORMAT(2,3);
51 /**
52 * A schemas validation context
54 typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
55 typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
57 typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
58 typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
61 * xmlRelaxNGValidErr:
63 * List of possible Relax NG validation errors
65 typedef enum {
66 XML_RELAXNG_OK = 0,
67 XML_RELAXNG_ERR_MEMORY,
68 XML_RELAXNG_ERR_TYPE,
69 XML_RELAXNG_ERR_TYPEVAL,
70 XML_RELAXNG_ERR_DUPID,
71 XML_RELAXNG_ERR_TYPECMP,
72 XML_RELAXNG_ERR_NOSTATE,
73 XML_RELAXNG_ERR_NODEFINE,
74 XML_RELAXNG_ERR_LISTEXTRA,
75 XML_RELAXNG_ERR_LISTEMPTY,
76 XML_RELAXNG_ERR_INTERNODATA,
77 XML_RELAXNG_ERR_INTERSEQ,
78 XML_RELAXNG_ERR_INTEREXTRA,
79 XML_RELAXNG_ERR_ELEMNAME,
80 XML_RELAXNG_ERR_ATTRNAME,
81 XML_RELAXNG_ERR_ELEMNONS,
82 XML_RELAXNG_ERR_ATTRNONS,
83 XML_RELAXNG_ERR_ELEMWRONGNS,
84 XML_RELAXNG_ERR_ATTRWRONGNS,
85 XML_RELAXNG_ERR_ELEMEXTRANS,
86 XML_RELAXNG_ERR_ATTREXTRANS,
87 XML_RELAXNG_ERR_ELEMNOTEMPTY,
88 XML_RELAXNG_ERR_NOELEM,
89 XML_RELAXNG_ERR_NOTELEM,
90 XML_RELAXNG_ERR_ATTRVALID,
91 XML_RELAXNG_ERR_CONTENTVALID,
92 XML_RELAXNG_ERR_EXTRACONTENT,
93 XML_RELAXNG_ERR_INVALIDATTR,
94 XML_RELAXNG_ERR_DATAELEM,
95 XML_RELAXNG_ERR_VALELEM,
96 XML_RELAXNG_ERR_LISTELEM,
97 XML_RELAXNG_ERR_DATATYPE,
98 XML_RELAXNG_ERR_VALUE,
99 XML_RELAXNG_ERR_LIST,
100 XML_RELAXNG_ERR_NOGRAMMAR,
101 XML_RELAXNG_ERR_EXTRADATA,
102 XML_RELAXNG_ERR_LACKDATA,
103 XML_RELAXNG_ERR_INTERNAL,
104 XML_RELAXNG_ERR_ELEMWRONG,
105 XML_RELAXNG_ERR_TEXTWRONG
106 } xmlRelaxNGValidErr;
109 * xmlRelaxNGParserFlags:
111 * List of possible Relax NG Parser flags
113 typedef enum {
114 XML_RELAXNGP_NONE = 0,
115 XML_RELAXNGP_FREE_DOC = 1,
116 XML_RELAXNGP_CRNG = 2
117 } xmlRelaxNGParserFlag;
119 XMLPUBFUN int XMLCALL
120 xmlRelaxNGInitTypes (void);
121 XMLPUBFUN void XMLCALL
122 xmlRelaxNGCleanupTypes (void);
125 * Interfaces for parsing.
127 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
128 xmlRelaxNGNewParserCtxt (const char *URL);
129 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
130 xmlRelaxNGNewMemParserCtxt (const char *buffer,
131 int size);
132 XMLPUBFUN xmlRelaxNGParserCtxtPtr XMLCALL
133 xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc);
135 XMLPUBFUN int XMLCALL
136 xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
137 int flag);
139 XMLPUBFUN void XMLCALL
140 xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
141 XMLPUBFUN void XMLCALL
142 xmlRelaxNGSetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
143 xmlRelaxNGValidityErrorFunc err,
144 xmlRelaxNGValidityWarningFunc warn,
145 void *ctx);
146 XMLPUBFUN int XMLCALL
147 xmlRelaxNGGetParserErrors(xmlRelaxNGParserCtxtPtr ctxt,
148 xmlRelaxNGValidityErrorFunc *err,
149 xmlRelaxNGValidityWarningFunc *warn,
150 void **ctx);
151 XMLPUBFUN void XMLCALL
152 xmlRelaxNGSetParserStructuredErrors(
153 xmlRelaxNGParserCtxtPtr ctxt,
154 xmlStructuredErrorFunc serror,
155 void *ctx);
156 XMLPUBFUN xmlRelaxNGPtr XMLCALL
157 xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
158 XMLPUBFUN void XMLCALL
159 xmlRelaxNGFree (xmlRelaxNGPtr schema);
160 #ifdef LIBXML_OUTPUT_ENABLED
161 XMLPUBFUN void XMLCALL
162 xmlRelaxNGDump (FILE *output,
163 xmlRelaxNGPtr schema);
164 XMLPUBFUN void XMLCALL
165 xmlRelaxNGDumpTree (FILE * output,
166 xmlRelaxNGPtr schema);
167 #endif /* LIBXML_OUTPUT_ENABLED */
169 * Interfaces for validating
171 XMLPUBFUN void XMLCALL
172 xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
173 xmlRelaxNGValidityErrorFunc err,
174 xmlRelaxNGValidityWarningFunc warn,
175 void *ctx);
176 XMLPUBFUN int XMLCALL
177 xmlRelaxNGGetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
178 xmlRelaxNGValidityErrorFunc *err,
179 xmlRelaxNGValidityWarningFunc *warn,
180 void **ctx);
181 XMLPUBFUN void XMLCALL
182 xmlRelaxNGSetValidStructuredErrors(xmlRelaxNGValidCtxtPtr ctxt,
183 xmlStructuredErrorFunc serror, void *ctx);
184 XMLPUBFUN xmlRelaxNGValidCtxtPtr XMLCALL
185 xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema);
186 XMLPUBFUN void XMLCALL
187 xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
188 XMLPUBFUN int XMLCALL
189 xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
190 xmlDocPtr doc);
192 * Interfaces for progressive validation when possible
194 XMLPUBFUN int XMLCALL
195 xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
196 xmlDocPtr doc,
197 xmlNodePtr elem);
198 XMLPUBFUN int XMLCALL
199 xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
200 const xmlChar *data,
201 int len);
202 XMLPUBFUN int XMLCALL
203 xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
204 xmlDocPtr doc,
205 xmlNodePtr elem);
206 XMLPUBFUN int XMLCALL
207 xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
208 xmlDocPtr doc,
209 xmlNodePtr elem);
211 #ifdef __cplusplus
213 #endif
215 #endif /* LIBXML_SCHEMAS_ENABLED */
217 #endif /* __XML_RELAX_NG__ */