blob: 59a78880e9c8de56e60b3dbba613ac61fa42d0f5 [file] [log] [blame]
Daniel Veillarda11001b2001-11-12 22:45:36 +00001#include <libxml/parser.h>
2
Owen Taylor3473f882001-02-23 17:55:21 +00003#ifndef __XML_ERROR_H__
4#define __XML_ERROR_H__
5
Owen Taylor3473f882001-02-23 17:55:21 +00006#ifdef __cplusplus
7extern "C" {
8#endif
9
Daniel Veillard2b8c4a12003-10-02 22:28:19 +000010/**
11 * xmlErrorLevel:
12 *
13 * Indicates the level of an error
14 */
15typedef enum {
16 XML_ERR_NONE = 0,
17 XML_ERR_WARNING = 1, /* A simple warning */
18 XML_ERR_ERROR = 2, /* A recoverable error */
19 XML_ERR_FATAL = 3 /* A fatal error */
20} xmlErrorLevel;
21
22/**
23 * xmlErrorDomain:
24 *
25 * Indicates where an error may have come from
26 */
27typedef enum {
28 XML_FROM_NONE = 0,
29 XML_FROM_PARSER, /* The XML parser */
Daniel Veillard18ec16e2003-10-07 23:16:40 +000030 XML_FROM_TREE, /* The tree module */
Daniel Veillard2b8c4a12003-10-02 22:28:19 +000031 XML_FROM_NAMESPACE, /* The XML Namespace module */
32 XML_FROM_DTD, /* The XML DTD validation */
33 XML_FROM_HTML, /* The HTML parser */
34 XML_FROM_MEMORY, /* The memory allocator */
35 XML_FROM_OUTPUT, /* The serialization code */
36 XML_FROM_IO, /* The Input/Output stack */
37 XML_FROM_XINCLUDE, /* The XInclude processing */
38 XML_FROM_XPATH, /* The XPath module */
39 XML_FROM_XPOINTER, /* The XPointer module */
40 XML_FROM_REGEXP, /* The regular expressions module */
41 XML_FROM_SCHEMAS, /* The W3C XML Schemas module */
Daniel Veillard4c004142003-10-07 11:33:24 +000042 XML_FROM_RELAXNGP, /* The Relax-NG parser module */
43 XML_FROM_RELAXNGV, /* The Relax-NG validator module */
Daniel Veillard2b8c4a12003-10-02 22:28:19 +000044 XML_FROM_CATALOG, /* The Catalog module */
45 XML_FROM_C14N, /* The Canonicalization module */
46 XML_FROM_XSLT /* The XSLT engine from libxslt */
47} xmlErrorDomain;
48
49/**
50 * xmlError:
51 *
52 * An XML Error instance.
53 */
54
55typedef struct _xmlError xmlError;
56typedef xmlError *xmlErrorPtr;
57struct _xmlError {
58 int domain; /* What part of the library raised this error */
59 int code; /* The error code, e.g. an xmlParserError */
60 char *message;/* human-readable informative error message */
61 xmlErrorLevel level;/* how consequent is the error */
62 char *file; /* the filename */
63 int line; /* the line number if available */
64 char *str1; /* extra string information */
65 char *str2; /* extra string information */
66 char *str3; /* extra string information */
67 int int1; /* extra number information */
68 int int2; /* extra number information */
Daniel Veillard4c004142003-10-07 11:33:24 +000069 void *ctxt; /* the parser context if available */
70 void *node; /* the node in the tree */
Daniel Veillard2b8c4a12003-10-02 22:28:19 +000071};
72
73/**
74 * xmlParserError:
75 *
76 * This is an error that the XML (or HTML) parser can generate
77 */
Owen Taylor3473f882001-02-23 17:55:21 +000078typedef enum {
79 XML_ERR_OK = 0,
80 XML_ERR_INTERNAL_ERROR,
81 XML_ERR_NO_MEMORY,
82
83 XML_ERR_DOCUMENT_START, /* 3 */
84 XML_ERR_DOCUMENT_EMPTY,
85 XML_ERR_DOCUMENT_END,
86
87 XML_ERR_INVALID_HEX_CHARREF, /* 6 */
88 XML_ERR_INVALID_DEC_CHARREF,
89 XML_ERR_INVALID_CHARREF,
90 XML_ERR_INVALID_CHAR,
91
92 XML_ERR_CHARREF_AT_EOF, /* 10 */
93 XML_ERR_CHARREF_IN_PROLOG,
94 XML_ERR_CHARREF_IN_EPILOG,
95 XML_ERR_CHARREF_IN_DTD,
96 XML_ERR_ENTITYREF_AT_EOF,
97 XML_ERR_ENTITYREF_IN_PROLOG,
98 XML_ERR_ENTITYREF_IN_EPILOG,
99 XML_ERR_ENTITYREF_IN_DTD,
100 XML_ERR_PEREF_AT_EOF,
101 XML_ERR_PEREF_IN_PROLOG,
102 XML_ERR_PEREF_IN_EPILOG,
103 XML_ERR_PEREF_IN_INT_SUBSET,
104
105 XML_ERR_ENTITYREF_NO_NAME, /* 22 */
106 XML_ERR_ENTITYREF_SEMICOL_MISSING,
107
108 XML_ERR_PEREF_NO_NAME, /* 24 */
109 XML_ERR_PEREF_SEMICOL_MISSING,
110
111 XML_ERR_UNDECLARED_ENTITY, /* 26 */
112 XML_WAR_UNDECLARED_ENTITY,
113 XML_ERR_UNPARSED_ENTITY,
114 XML_ERR_ENTITY_IS_EXTERNAL,
115 XML_ERR_ENTITY_IS_PARAMETER,
116
117 XML_ERR_UNKNOWN_ENCODING, /* 31 */
118 XML_ERR_UNSUPPORTED_ENCODING,
119
120 XML_ERR_STRING_NOT_STARTED, /* 33 */
121 XML_ERR_STRING_NOT_CLOSED,
122 XML_ERR_NS_DECL_ERROR,
123
124 XML_ERR_ENTITY_NOT_STARTED, /* 36 */
125 XML_ERR_ENTITY_NOT_FINISHED,
126
127 XML_ERR_LT_IN_ATTRIBUTE, /* 38 */
128 XML_ERR_ATTRIBUTE_NOT_STARTED,
129 XML_ERR_ATTRIBUTE_NOT_FINISHED,
130 XML_ERR_ATTRIBUTE_WITHOUT_VALUE,
131 XML_ERR_ATTRIBUTE_REDEFINED,
132
133 XML_ERR_LITERAL_NOT_STARTED, /* 43 */
134 XML_ERR_LITERAL_NOT_FINISHED,
135
136 XML_ERR_COMMENT_NOT_FINISHED, /* 45 */
137
Daniel Veillard9ec26532003-09-23 07:43:19 +0000138 XML_ERR_PI_NOT_STARTED, /* 46 */
Owen Taylor3473f882001-02-23 17:55:21 +0000139 XML_ERR_PI_NOT_FINISHED,
140
Daniel Veillard9ec26532003-09-23 07:43:19 +0000141 XML_ERR_NOTATION_NOT_STARTED, /* 48 */
Owen Taylor3473f882001-02-23 17:55:21 +0000142 XML_ERR_NOTATION_NOT_FINISHED,
143
Daniel Veillard9ec26532003-09-23 07:43:19 +0000144 XML_ERR_ATTLIST_NOT_STARTED, /* 50 */
Owen Taylor3473f882001-02-23 17:55:21 +0000145 XML_ERR_ATTLIST_NOT_FINISHED,
146
Daniel Veillard9ec26532003-09-23 07:43:19 +0000147 XML_ERR_MIXED_NOT_STARTED, /* 52 */
Owen Taylor3473f882001-02-23 17:55:21 +0000148 XML_ERR_MIXED_NOT_FINISHED,
149
Daniel Veillard9ec26532003-09-23 07:43:19 +0000150 XML_ERR_ELEMCONTENT_NOT_STARTED, /* 54 */
Owen Taylor3473f882001-02-23 17:55:21 +0000151 XML_ERR_ELEMCONTENT_NOT_FINISHED,
152
Daniel Veillard9ec26532003-09-23 07:43:19 +0000153 XML_ERR_XMLDECL_NOT_STARTED, /* 56 */
Owen Taylor3473f882001-02-23 17:55:21 +0000154 XML_ERR_XMLDECL_NOT_FINISHED,
155
Daniel Veillard9ec26532003-09-23 07:43:19 +0000156 XML_ERR_CONDSEC_NOT_STARTED, /* 58 */
Owen Taylor3473f882001-02-23 17:55:21 +0000157 XML_ERR_CONDSEC_NOT_FINISHED,
158
Daniel Veillard9ec26532003-09-23 07:43:19 +0000159 XML_ERR_EXT_SUBSET_NOT_FINISHED, /* 60 */
Owen Taylor3473f882001-02-23 17:55:21 +0000160
Daniel Veillard9ec26532003-09-23 07:43:19 +0000161 XML_ERR_DOCTYPE_NOT_FINISHED, /* 61 */
Owen Taylor3473f882001-02-23 17:55:21 +0000162
Daniel Veillard9ec26532003-09-23 07:43:19 +0000163 XML_ERR_MISPLACED_CDATA_END, /* 62 */
Owen Taylor3473f882001-02-23 17:55:21 +0000164 XML_ERR_CDATA_NOT_FINISHED,
165
Daniel Veillard9ec26532003-09-23 07:43:19 +0000166 XML_ERR_RESERVED_XML_NAME, /* 64 */
Owen Taylor3473f882001-02-23 17:55:21 +0000167
Daniel Veillard9ec26532003-09-23 07:43:19 +0000168 XML_ERR_SPACE_REQUIRED, /* 65 */
Owen Taylor3473f882001-02-23 17:55:21 +0000169 XML_ERR_SEPARATOR_REQUIRED,
170 XML_ERR_NMTOKEN_REQUIRED,
171 XML_ERR_NAME_REQUIRED,
172 XML_ERR_PCDATA_REQUIRED,
173 XML_ERR_URI_REQUIRED,
174 XML_ERR_PUBID_REQUIRED,
175 XML_ERR_LT_REQUIRED,
176 XML_ERR_GT_REQUIRED,
177 XML_ERR_LTSLASH_REQUIRED,
178 XML_ERR_EQUAL_REQUIRED,
179
Daniel Veillard9ec26532003-09-23 07:43:19 +0000180 XML_ERR_TAG_NAME_MISMATCH, /* 76 */
Daniel Veillard5344c602001-12-31 16:37:34 +0000181 XML_ERR_TAG_NOT_FINISHED,
Owen Taylor3473f882001-02-23 17:55:21 +0000182
Daniel Veillard9ec26532003-09-23 07:43:19 +0000183 XML_ERR_STANDALONE_VALUE, /* 78 */
Owen Taylor3473f882001-02-23 17:55:21 +0000184
Daniel Veillard9ec26532003-09-23 07:43:19 +0000185 XML_ERR_ENCODING_NAME, /* 79 */
Owen Taylor3473f882001-02-23 17:55:21 +0000186
Daniel Veillard9ec26532003-09-23 07:43:19 +0000187 XML_ERR_HYPHEN_IN_COMMENT, /* 80 */
Owen Taylor3473f882001-02-23 17:55:21 +0000188
Daniel Veillard9ec26532003-09-23 07:43:19 +0000189 XML_ERR_INVALID_ENCODING, /* 81 */
Owen Taylor3473f882001-02-23 17:55:21 +0000190
Daniel Veillard9ec26532003-09-23 07:43:19 +0000191 XML_ERR_EXT_ENTITY_STANDALONE, /* 82 */
Owen Taylor3473f882001-02-23 17:55:21 +0000192
Daniel Veillard9ec26532003-09-23 07:43:19 +0000193 XML_ERR_CONDSEC_INVALID, /* 83 */
Owen Taylor3473f882001-02-23 17:55:21 +0000194
Daniel Veillard9ec26532003-09-23 07:43:19 +0000195 XML_ERR_VALUE_REQUIRED, /* 84 */
Owen Taylor3473f882001-02-23 17:55:21 +0000196
Daniel Veillard9ec26532003-09-23 07:43:19 +0000197 XML_ERR_NOT_WELL_BALANCED, /* 85 */
198 XML_ERR_EXTRA_CONTENT, /* 86 */
199 XML_ERR_ENTITY_CHAR_ERROR, /* 87 */
Owen Taylor3473f882001-02-23 17:55:21 +0000200 XML_ERR_ENTITY_PE_INTERNAL, /* 88 */
201 XML_ERR_ENTITY_LOOP, /* 89 */
202 XML_ERR_ENTITY_BOUNDARY, /* 90 */
203 XML_ERR_INVALID_URI, /* 91 */
Daniel Veillard5d90b6c2001-08-22 14:29:45 +0000204 XML_ERR_URI_FRAGMENT, /* 92 */
Daniel Veillard7a51d6d2001-09-10 14:40:43 +0000205 XML_WAR_CATALOG_PI, /* 93 */
Daniel Veillard3b7840c2003-09-11 23:42:01 +0000206 XML_ERR_NO_DTD, /* 94 */
Daniel Veillard4c004142003-10-07 11:33:24 +0000207 XML_ERR_CONDSEC_INVALID_KEYWORD,
208 XML_ERR_VERSION_MISSING,
209 XML_WAR_UNKNOWN_VERSION,
210 XML_WAR_LANG_VALUE,
211 XML_WAR_NS_URI,
212 XML_WAR_NS_URI_RELATIVE,
213 XML_NS_ERR_XML_NAMESPACE = 200,
Daniel Veillard3b7840c2003-09-11 23:42:01 +0000214 XML_NS_ERR_UNDEFINED_NAMESPACE,
215 XML_NS_ERR_QNAME,
Daniel Veillard1afc9f32003-09-13 12:44:05 +0000216 XML_NS_ERR_ATTRIBUTE_REDEFINED,
Daniel Veillard4c004142003-10-07 11:33:24 +0000217 XML_DTD_ATTRIBUTE_DEFAULT = 500,
Daniel Veillardbb5abab2003-10-03 22:21:51 +0000218 XML_DTD_ATTRIBUTE_REDEFINED,
219 XML_DTD_ATTRIBUTE_VALUE,
220 XML_DTD_CONTENT_ERROR,
221 XML_DTD_CONTENT_MODEL,
222 XML_DTD_CONTENT_NOT_DETERMINIST,
223 XML_DTD_DIFFERENT_PREFIX,
224 XML_DTD_ELEM_DEFAULT_NAMESPACE,
225 XML_DTD_ELEM_NAMESPACE,
226 XML_DTD_ELEM_REDEFINED,
227 XML_DTD_EMPTY_NOTATION,
228 XML_DTD_ENTITY_TYPE,
229 XML_DTD_ID_FIXED,
230 XML_DTD_ID_REDEFINED,
231 XML_DTD_ID_SUBSET,
232 XML_DTD_INVALID_CHILD,
233 XML_DTD_INVALID_DEFAULT,
234 XML_DTD_LOAD_ERROR,
235 XML_DTD_MISSING_ATTRIBUTE,
Daniel Veillard2b8c4a12003-10-02 22:28:19 +0000236 XML_DTD_MIXED_CORRUPT,
Daniel Veillardbb5abab2003-10-03 22:21:51 +0000237 XML_DTD_MULTIPLE_ID,
Daniel Veillard2b8c4a12003-10-02 22:28:19 +0000238 XML_DTD_NO_DOC,
Daniel Veillardbb5abab2003-10-03 22:21:51 +0000239 XML_DTD_NO_DTD,
Daniel Veillard2b8c4a12003-10-02 22:28:19 +0000240 XML_DTD_NO_ELEM_NAME,
Daniel Veillardbb5abab2003-10-03 22:21:51 +0000241 XML_DTD_NO_PREFIX,
242 XML_DTD_NO_ROOT,
243 XML_DTD_NOTATION_REDEFINED,
244 XML_DTD_NOTATION_VALUE,
245 XML_DTD_NOT_EMPTY,
246 XML_DTD_NOT_PCDATA,
247 XML_DTD_NOT_STANDALONE,
248 XML_DTD_ROOT_NAME,
249 XML_DTD_STANDALONE_WHITE_SPACE,
250 XML_DTD_UNKNOWN_ATTRIBUTE,
251 XML_DTD_UNKNOWN_ELEM,
252 XML_DTD_UNKNOWN_ENTITY,
253 XML_DTD_UNKNOWN_ID,
Daniel Veillard24eb9782003-10-04 21:08:09 +0000254 XML_DTD_UNKNOWN_NOTATION,
Daniel Veillard4c004142003-10-07 11:33:24 +0000255 XML_HTML_STRUCURE_ERROR = 800,
256 XML_HTML_UNKNOWN_TAG,
257 XML_RNGP_ANYNAME_ATTR_ANCESTOR = 1000,
258 XML_RNGP_ATTR_CONFLICT,
259 XML_RNGP_ATTRIBUTE_CHILDREN,
260 XML_RNGP_ATTRIBUTE_CONTENT,
261 XML_RNGP_ATTRIBUTE_EMPTY,
262 XML_RNGP_ATTRIBUTE_NOOP,
263 XML_RNGP_CHOICE_CONTENT,
264 XML_RNGP_CHOICE_EMPTY,
265 XML_RNGP_CREATE_FAILURE,
266 XML_RNGP_DATA_CONTENT,
267 XML_RNGP_DEF_CHOICE_AND_INTERLEAVE,
268 XML_RNGP_DEFINE_CREATE_FAILED,
269 XML_RNGP_DEFINE_EMPTY,
270 XML_RNGP_DEFINE_MISSING,
271 XML_RNGP_DEFINE_NAME_MISSING,
272 XML_RNGP_ELEM_CONTENT_EMPTY,
273 XML_RNGP_ELEM_CONTENT_ERROR,
274 XML_RNGP_ELEMENT_EMPTY,
275 XML_RNGP_ELEMENT_CONTENT,
Daniel Veillard6edbfbb2003-10-07 12:17:44 +0000276 XML_RNGP_ELEMENT_NAME,
Daniel Veillard4c004142003-10-07 11:33:24 +0000277 XML_RNGP_ELEMENT_NO_CONTENT,
278 XML_RNGP_ELEM_TEXT_CONFLICT,
279 XML_RNGP_EMPTY,
280 XML_RNGP_EMPTY_CONSTRUCT,
281 XML_RNGP_EMPTY_CONTENT,
282 XML_RNGP_EMPTY_NOT_EMPTY,
283 XML_RNGP_ERROR_TYPE_LIB,
284 XML_RNGP_EXCEPT_EMPTY,
285 XML_RNGP_EXCEPT_MISSING,
286 XML_RNGP_EXCEPT_MULTIPLE,
287 XML_RNGP_EXCEPT_NO_CONTENT,
288 XML_RNGP_EXTERNALREF_EMTPY,
289 XML_RNGP_EXTERNAL_REF_FAILURE,
290 XML_RNGP_EXTERNALREF_RECURSE,
291 XML_RNGP_FORBIDDEN_ATTRIBUTE,
292 XML_RNGP_FOREIGN_ELEMENT,
293 XML_RNGP_GRAMMAR_CONTENT,
294 XML_RNGP_GRAMMAR_EMPTY,
295 XML_RNGP_GRAMMAR_MISSING,
296 XML_RNGP_GRAMMAR_NO_START,
297 XML_RNGP_GROUP_ATTR_CONFLICT,
298 XML_RNGP_HREF_ERROR,
299 XML_RNGP_INCLUDE_EMPTY,
300 XML_RNGP_INCLUDE_FAILURE,
301 XML_RNGP_INCLUDE_RECURSE,
302 XML_RNGP_INTERLEAVE_ADD,
303 XML_RNGP_INTERLEAVE_CREATE_FAILED,
304 XML_RNGP_INTERLEAVE_EMPTY,
305 XML_RNGP_INTERLEAVE_NO_CONTENT,
306 XML_RNGP_INVALID_DEFINE_NAME,
307 XML_RNGP_INVALID_URI,
308 XML_RNGP_INVALID_VALUE,
309 XML_RNGP_MISSING_HREF,
310 XML_RNGP_NAME_MISSING,
311 XML_RNGP_NEED_COMBINE,
312 XML_RNGP_NOTALLOWED_NOT_EMPTY,
313 XML_RNGP_NSNAME_ATTR_ANCESTOR,
314 XML_RNGP_NSNAME_NO_NS,
315 XML_RNGP_PARAM_FORBIDDEN,
316 XML_RNGP_PARAM_NAME_MISSING,
317 XML_RNGP_PARENTREF_CREATE_FAILED,
318 XML_RNGP_PARENTREF_NAME_INVALID,
319 XML_RNGP_PARENTREF_NO_NAME,
320 XML_RNGP_PARENTREF_NO_PARENT,
321 XML_RNGP_PARENTREF_NOT_EMPTY,
322 XML_RNGP_PARSE_ERROR,
323 XML_RNGP_PAT_ANYNAME_EXCEPT_ANYNAME,
324 XML_RNGP_PAT_ATTR_ATTR,
325 XML_RNGP_PAT_ATTR_ELEM,
326 XML_RNGP_PAT_DATA_EXCEPT_ATTR,
327 XML_RNGP_PAT_DATA_EXCEPT_ELEM,
328 XML_RNGP_PAT_DATA_EXCEPT_EMPTY,
329 XML_RNGP_PAT_DATA_EXCEPT_GROUP,
330 XML_RNGP_PAT_DATA_EXCEPT_INTERLEAVE,
331 XML_RNGP_PAT_DATA_EXCEPT_LIST,
332 XML_RNGP_PAT_DATA_EXCEPT_ONEMORE,
333 XML_RNGP_PAT_DATA_EXCEPT_REF,
334 XML_RNGP_PAT_DATA_EXCEPT_TEXT,
335 XML_RNGP_PAT_LIST_ATTR,
336 XML_RNGP_PAT_LIST_ELEM,
337 XML_RNGP_PAT_LIST_INTERLEAVE,
338 XML_RNGP_PAT_LIST_LIST,
339 XML_RNGP_PAT_LIST_REF,
340 XML_RNGP_PAT_LIST_TEXT,
341 XML_RNGP_PAT_NSNAME_EXCEPT_ANYNAME,
342 XML_RNGP_PAT_NSNAME_EXCEPT_NSNAME,
343 XML_RNGP_PAT_ONEMORE_GROUP_ATTR,
344 XML_RNGP_PAT_ONEMORE_INTERLEAVE_ATTR,
345 XML_RNGP_PAT_START_ATTR,
346 XML_RNGP_PAT_START_DATA,
347 XML_RNGP_PAT_START_EMPTY,
348 XML_RNGP_PAT_START_GROUP,
349 XML_RNGP_PAT_START_INTERLEAVE,
350 XML_RNGP_PAT_START_LIST,
351 XML_RNGP_PAT_START_ONEMORE,
352 XML_RNGP_PAT_START_TEXT,
353 XML_RNGP_PAT_START_VALUE,
354 XML_RNGP_PREFIX_UNDEFINED,
355 XML_RNGP_REF_CREATE_FAILED,
356 XML_RNGP_REF_CYCLE,
357 XML_RNGP_REF_NAME_INVALID,
358 XML_RNGP_REF_NO_DEF,
359 XML_RNGP_REF_NO_NAME,
360 XML_RNGP_REF_NOT_EMPTY,
361 XML_RNGP_START_CHOICE_AND_INTERLEAVE,
362 XML_RNGP_START_CONTENT,
363 XML_RNGP_START_EMPTY,
364 XML_RNGP_START_MISSING,
365 XML_RNGP_TEXT_EXPECTED,
366 XML_RNGP_TEXT_HAS_CHILD,
367 XML_RNGP_TYPE_MISSING,
368 XML_RNGP_TYPE_NOT_FOUND,
369 XML_RNGP_TYPE_VALUE,
370 XML_RNGP_UNKNOWN_ATTRIBUTE,
371 XML_RNGP_UNKNOWN_COMBINE,
372 XML_RNGP_UNKNOWN_CONSTRUCT,
373 XML_RNGP_UNKNOWN_TYPE_LIB,
374 XML_RNGP_URI_FRAGMENT,
375 XML_RNGP_URI_NOT_ABSOLUTE,
376 XML_RNGP_VALUE_EMPTY,
377 XML_RNGP_VALUE_NO_CONTENT,
Daniel Veillard6edbfbb2003-10-07 12:17:44 +0000378 XML_RNGP_XMLNS_NAME,
Daniel Veillardd96f6d32003-10-07 21:25:12 +0000379 XML_RNGP_XML_NS,
380 XML_XPATH_EXPRESSION_OK = 1200,
381 XML_XPATH_NUMBER_ERROR,
382 XML_XPATH_UNFINISHED_LITERAL_ERROR,
383 XML_XPATH_START_LITERAL_ERROR,
384 XML_XPATH_VARIABLE_REF_ERROR,
385 XML_XPATH_UNDEF_VARIABLE_ERROR,
386 XML_XPATH_INVALID_PREDICATE_ERROR,
387 XML_XPATH_EXPR_ERROR,
388 XML_XPATH_UNCLOSED_ERROR,
389 XML_XPATH_UNKNOWN_FUNC_ERROR,
390 XML_XPATH_INVALID_OPERAND,
391 XML_XPATH_INVALID_TYPE,
392 XML_XPATH_INVALID_ARITY,
393 XML_XPATH_INVALID_CTXT_SIZE,
394 XML_XPATH_INVALID_CTXT_POSITION,
395 XML_XPATH_MEMORY_ERROR,
396 XML_XPTR_SYNTAX_ERROR,
397 XML_XPTR_RESOURCE_ERROR,
398 XML_XPTR_SUB_RESOURCE_ERROR,
399 XML_XPATH_UNDEF_PREFIX_ERROR,
400 XML_XPATH_ENCODING_ERROR,
Daniel Veillard18ec16e2003-10-07 23:16:40 +0000401 XML_XPATH_INVALID_CHAR_ERROR,
402 XML_TREE_INVALID_HEX = 1300,
403 XML_TREE_INVALID_DEC,
404 XML_TREE_UNTERMINATED_ENTITY,
405 XML_SAVE_NOT_UTF8 = 1400,
406 XML_SAVE_CHAR_INVALID,
407 XML_SAVE_UNKNOWN_ENCODING
Daniel Veillard3b7840c2003-09-11 23:42:01 +0000408} xmlParserErrors;
Owen Taylor3473f882001-02-23 17:55:21 +0000409
Daniel Veillard9d06d302002-01-22 18:15:52 +0000410/**
411 * xmlGenericErrorFunc:
412 * @ctx: a parsing context
413 * @msg: the message
414 * @...: the extra arguments of the varags to format the message
415 *
Owen Taylor3473f882001-02-23 17:55:21 +0000416 * Signature of the function to use when there is an error and
Daniel Veillard61f26172002-03-12 18:46:39 +0000417 * no parsing or validity context available .
Owen Taylor3473f882001-02-23 17:55:21 +0000418 */
Daniel Veillard9d06d302002-01-22 18:15:52 +0000419typedef void (*xmlGenericErrorFunc) (void *ctx,
420 const char *msg,
Daniel Veillardd96f6d32003-10-07 21:25:12 +0000421 ...);
422/**
423 * xmlStructuredErrorFunc:
424 * @userData: user provided data for the error callback
425 * @error: the error being raised.
426 *
427 * Signature of the function to use when there is an error and
428 * the module handles the new error reporting mechanism.
429 */
430typedef void (*xmlStructuredErrorFunc) (void *userData, xmlErrorPtr error);
Owen Taylor3473f882001-02-23 17:55:21 +0000431
432/*
Daniel Veillardd0463562001-10-13 09:15:48 +0000433 * Use the following function to reset the two global variables
434 * xmlGenericError and xmlGenericErrorContext.
Owen Taylor3473f882001-02-23 17:55:21 +0000435 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000436XMLPUBFUN void XMLCALL
437 xmlSetGenericErrorFunc (void *ctx,
Owen Taylor3473f882001-02-23 17:55:21 +0000438 xmlGenericErrorFunc handler);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000439XMLPUBFUN void XMLCALL
440 initGenericErrorDefaultFunc (xmlGenericErrorFunc *handler);
Owen Taylor3473f882001-02-23 17:55:21 +0000441
442/*
443 * Default message routines used by SAX and Valid context for error
Daniel Veillard61f26172002-03-12 18:46:39 +0000444 * and warning reporting.
Owen Taylor3473f882001-02-23 17:55:21 +0000445 */
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000446XMLPUBFUN void XMLCALL
447 xmlParserError (void *ctx,
Owen Taylor3473f882001-02-23 17:55:21 +0000448 const char *msg,
449 ...);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000450XMLPUBFUN void XMLCALL
451 xmlParserWarning (void *ctx,
Owen Taylor3473f882001-02-23 17:55:21 +0000452 const char *msg,
453 ...);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000454XMLPUBFUN void XMLCALL
455 xmlParserValidityError (void *ctx,
Owen Taylor3473f882001-02-23 17:55:21 +0000456 const char *msg,
457 ...);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000458XMLPUBFUN void XMLCALL
459 xmlParserValidityWarning (void *ctx,
Owen Taylor3473f882001-02-23 17:55:21 +0000460 const char *msg,
461 ...);
Igor Zlatkovicaa3cfbd2003-08-27 08:59:58 +0000462XMLPUBFUN void XMLCALL
463 xmlParserPrintFileInfo (xmlParserInputPtr input);
464XMLPUBFUN void XMLCALL
465 xmlParserPrintFileContext (xmlParserInputPtr input);
Owen Taylor3473f882001-02-23 17:55:21 +0000466
Daniel Veillard2b8c4a12003-10-02 22:28:19 +0000467/*
468 * Extended error information routines
469 */
470XMLPUBFUN xmlErrorPtr XMLCALL
471 xmlGetLastError (void);
472XMLPUBFUN void XMLCALL
473 xmlResetLastError (void);
474XMLPUBFUN xmlErrorPtr XMLCALL
475 xmlCtxtGetLastError (void *ctx);
476XMLPUBFUN void XMLCALL
477 xmlCtxtResetLastError (void *ctx);
478XMLPUBFUN void XMLCALL
479 xmlResetError (xmlErrorPtr err);
480XMLPUBFUN int XMLCALL
481 xmlCopyError (xmlErrorPtr from,
482 xmlErrorPtr to);
483
Daniel Veillardbb5abab2003-10-03 22:21:51 +0000484#ifdef IN_LIBXML
Daniel Veillard2b8c4a12003-10-02 22:28:19 +0000485/*
Daniel Veillardbb5abab2003-10-03 22:21:51 +0000486 * Internal callback reporting routine
Daniel Veillard2b8c4a12003-10-02 22:28:19 +0000487 */
Daniel Veillardbb5abab2003-10-03 22:21:51 +0000488XMLPUBFUN void XMLCALL
489 __xmlRaiseError (xmlGenericErrorFunc channel,
490 void *data,
491 void *ctx,
492 void *node,
Daniel Veillard2b8c4a12003-10-02 22:28:19 +0000493 int domain,
494 int code,
495 xmlErrorLevel level,
496 const char *file,
497 int line,
498 const char *str1,
499 const char *str2,
500 const char *str3,
501 int int1,
502 int int2,
503 const char *msg,
504 ...);
Daniel Veillard18ec16e2003-10-07 23:16:40 +0000505XMLPUBFUN void XMLCALL
506 __xmlSimpleError (int domain,
507 int code,
508 xmlNodePtr node,
509 const char *msg,
510 const char *extra);
Daniel Veillardbb5abab2003-10-03 22:21:51 +0000511#endif
Owen Taylor3473f882001-02-23 17:55:21 +0000512#ifdef __cplusplus
513}
514#endif
515#endif /* __XML_ERROR_H__ */