Bring in expat 2.1.0 from vendor.
[AROS.git] / workbench / libs / expat / amiga / include / libraries / expat.h
blob1b57387c7b1c2a8890641bd08fdf0097fa83b2d3
1 #ifndef LIBRARIES_EXPAT_H
2 #define LIBRARIES_EXPAT_H
4 /*
5 ** Copyright (c) 2001-2007 Expat maintainers.
6 **
7 ** Permission is hereby granted, free of charge, to any person obtaining
8 ** a copy of this software and associated documentation files (the
9 ** "Software"), to deal in the Software without restriction, including
10 ** without limitation the rights to use, copy, modify, merge, publish,
11 ** distribute, sublicense, and/or sell copies of the Software, and to
12 ** permit persons to whom the Software is furnished to do so, subject to
13 ** the following conditions:
14 **
15 ** The above copyright notice and this permission notice shall be included
16 ** in all copies or substantial portions of the Software.
17 **
18 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
21 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
22 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 ** SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28 /****************************************************************************/
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
34 #ifdef __GNUC__
35 #ifdef __PPC__
36 #pragma pack(2)
37 #endif
38 #elif defined(__VBCC__)
39 #pragma amiga-align
40 #endif
42 /****************************************************************************/
45 #include <stdlib.h>
47 #ifndef XMLCALL
48 #define XMLCALL
49 #endif
51 typedef char XML_Char;
52 typedef char XML_LChar;
53 typedef long XML_Index;
54 typedef unsigned long XML_Size;
56 struct XML_ParserStruct;
57 typedef struct XML_ParserStruct *XML_Parser;
59 typedef unsigned char XML_Bool;
60 #define XML_TRUE ((XML_Bool) 1)
61 #define XML_FALSE ((XML_Bool) 0)
63 enum XML_Status {
64 XML_STATUS_ERROR = 0,
65 #define XML_STATUS_ERROR XML_STATUS_ERROR
66 XML_STATUS_OK = 1,
67 #define XML_STATUS_OK XML_STATUS_OK
68 XML_STATUS_SUSPENDED = 2,
69 #define XML_STATUS_SUSPENDED XML_STATUS_SUSPENDED
72 enum XML_Error {
73 XML_ERROR_NONE,
74 XML_ERROR_NO_MEMORY,
75 XML_ERROR_SYNTAX,
76 XML_ERROR_NO_ELEMENTS,
77 XML_ERROR_INVALID_TOKEN,
78 XML_ERROR_UNCLOSED_TOKEN,
79 XML_ERROR_PARTIAL_CHAR,
80 XML_ERROR_TAG_MISMATCH,
81 XML_ERROR_DUPLICATE_ATTRIBUTE,
82 XML_ERROR_JUNK_AFTER_DOC_ELEMENT,
83 XML_ERROR_PARAM_ENTITY_REF,
84 XML_ERROR_UNDEFINED_ENTITY,
85 XML_ERROR_RECURSIVE_ENTITY_REF,
86 XML_ERROR_ASYNC_ENTITY,
87 XML_ERROR_BAD_CHAR_REF,
88 XML_ERROR_BINARY_ENTITY_REF,
89 XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF,
90 XML_ERROR_MISPLACED_XML_PI,
91 XML_ERROR_UNKNOWN_ENCODING,
92 XML_ERROR_INCORRECT_ENCODING,
93 XML_ERROR_UNCLOSED_CDATA_SECTION,
94 XML_ERROR_EXTERNAL_ENTITY_HANDLING,
95 XML_ERROR_NOT_STANDALONE,
96 XML_ERROR_UNEXPECTED_STATE,
97 XML_ERROR_ENTITY_DECLARED_IN_PE,
98 XML_ERROR_FEATURE_REQUIRES_XML_DTD,
99 XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING,
100 XML_ERROR_UNBOUND_PREFIX,
101 XML_ERROR_UNDECLARING_PREFIX,
102 XML_ERROR_INCOMPLETE_PE,
103 XML_ERROR_XML_DECL,
104 XML_ERROR_TEXT_DECL,
105 XML_ERROR_PUBLICID,
106 XML_ERROR_SUSPENDED,
107 XML_ERROR_NOT_SUSPENDED,
108 XML_ERROR_ABORTED,
109 XML_ERROR_FINISHED,
110 XML_ERROR_SUSPEND_PE,
111 XML_ERROR_RESERVED_PREFIX_XML,
112 XML_ERROR_RESERVED_PREFIX_XMLNS,
113 XML_ERROR_RESERVED_NAMESPACE_URI
116 enum XML_Content_Type {
117 XML_CTYPE_EMPTY = 1,
118 XML_CTYPE_ANY,
119 XML_CTYPE_MIXED,
120 XML_CTYPE_NAME,
121 XML_CTYPE_CHOICE,
122 XML_CTYPE_SEQ
125 enum XML_Content_Quant {
126 XML_CQUANT_NONE,
127 XML_CQUANT_OPT,
128 XML_CQUANT_REP,
129 XML_CQUANT_PLUS
132 typedef struct XML_cp XML_Content;
134 struct XML_cp {
135 enum XML_Content_Type type;
136 enum XML_Content_Quant quant;
137 XML_Char * name;
138 unsigned int numchildren;
139 XML_Content * children;
143 typedef void (*XML_ElementDeclHandler) (void *userData,
144 const XML_Char *name,
145 XML_Content *model);
147 void
148 XML_SetElementDeclHandler(XML_Parser parser,
149 XML_ElementDeclHandler eldecl);
151 typedef void (*XML_AttlistDeclHandler) (
152 void *userData,
153 const XML_Char *elname,
154 const XML_Char *attname,
155 const XML_Char *att_type,
156 const XML_Char *dflt,
157 int isrequired);
159 void
160 XML_SetAttlistDeclHandler(XML_Parser parser,
161 XML_AttlistDeclHandler attdecl);
163 typedef void (*XML_XmlDeclHandler) (void *userData,
164 const XML_Char *version,
165 const XML_Char *encoding,
166 int standalone);
168 void
169 XML_SetXmlDeclHandler(XML_Parser parser,
170 XML_XmlDeclHandler xmldecl);
173 typedef struct {
174 void *(*malloc_fcn)(size_t size);
175 void *(*realloc_fcn)(void *ptr, size_t size);
176 void (*free_fcn)(void *ptr);
177 } XML_Memory_Handling_Suite;
179 XML_Parser
180 XML_ParserCreate(const XML_Char *encoding);
182 XML_Parser
183 XML_ParserCreateNS(const XML_Char *encoding, XML_Char namespaceSeparator);
186 XML_Parser
187 XML_ParserCreate_MM(const XML_Char *encoding,
188 const XML_Memory_Handling_Suite *memsuite,
189 const XML_Char *namespaceSeparator);
191 XML_Bool
192 XML_ParserReset(XML_Parser parser, const XML_Char *encoding);
194 typedef void (*XML_StartElementHandler) (void *userData,
195 const XML_Char *name,
196 const XML_Char **atts);
198 typedef void (*XML_EndElementHandler) (void *userData,
199 const XML_Char *name);
202 typedef void (*XML_CharacterDataHandler) (void *userData,
203 const XML_Char *s,
204 int len);
206 typedef void (*XML_ProcessingInstructionHandler) (
207 void *userData,
208 const XML_Char *target,
209 const XML_Char *data);
211 typedef void (*XML_CommentHandler) (void *userData,
212 const XML_Char *data);
214 typedef void (*XML_StartCdataSectionHandler) (void *userData);
215 typedef void (*XML_EndCdataSectionHandler) (void *userData);
217 typedef void (*XML_DefaultHandler) (void *userData,
218 const XML_Char *s,
219 int len);
221 typedef void (*XML_StartDoctypeDeclHandler) (
222 void *userData,
223 const XML_Char *doctypeName,
224 const XML_Char *sysid,
225 const XML_Char *pubid,
226 int has_internal_subset);
228 typedef void (*XML_EndDoctypeDeclHandler)(void *userData);
230 typedef void (*XML_EntityDeclHandler) (
231 void *userData,
232 const XML_Char *entityName,
233 int is_parameter_entity,
234 const XML_Char *value,
235 int value_length,
236 const XML_Char *base,
237 const XML_Char *systemId,
238 const XML_Char *publicId,
239 const XML_Char *notationName);
241 void
242 XML_SetEntityDeclHandler(XML_Parser parser,
243 XML_EntityDeclHandler handler);
245 typedef void (*XML_UnparsedEntityDeclHandler) (
246 void *userData,
247 const XML_Char *entityName,
248 const XML_Char *base,
249 const XML_Char *systemId,
250 const XML_Char *publicId,
251 const XML_Char *notationName);
253 typedef void (*XML_NotationDeclHandler) (
254 void *userData,
255 const XML_Char *notationName,
256 const XML_Char *base,
257 const XML_Char *systemId,
258 const XML_Char *publicId);
260 typedef void (*XML_StartNamespaceDeclHandler) (
261 void *userData,
262 const XML_Char *prefix,
263 const XML_Char *uri);
265 typedef void (*XML_EndNamespaceDeclHandler) (
266 void *userData,
267 const XML_Char *prefix);
269 typedef int (*XML_NotStandaloneHandler) (void *userData);
271 typedef int (*XML_ExternalEntityRefHandler) (
272 XML_Parser parser,
273 const XML_Char *context,
274 const XML_Char *base,
275 const XML_Char *systemId,
276 const XML_Char *publicId);
278 typedef void (*XML_SkippedEntityHandler) (
279 void *userData,
280 const XML_Char *entityName,
281 int is_parameter_entity);
283 typedef struct {
284 int map[256];
285 void *data;
286 int (*convert)(void *data, const char *s);
287 void (*release)(void *data);
288 } XML_Encoding;
290 typedef int (*XML_UnknownEncodingHandler) (
291 void *encodingHandlerData,
292 const XML_Char *name,
293 XML_Encoding *info);
295 void
296 XML_SetElementHandler(XML_Parser parser,
297 XML_StartElementHandler start,
298 XML_EndElementHandler end);
300 void
301 XML_SetStartElementHandler(XML_Parser parser,
302 XML_StartElementHandler handler);
304 void
305 XML_SetEndElementHandler(XML_Parser parser,
306 XML_EndElementHandler handler);
308 void
309 XML_SetCharacterDataHandler(XML_Parser parser,
310 XML_CharacterDataHandler handler);
312 void
313 XML_SetProcessingInstructionHandler(XML_Parser parser,
314 XML_ProcessingInstructionHandler handler);
315 void
316 XML_SetCommentHandler(XML_Parser parser,
317 XML_CommentHandler handler);
319 void
320 XML_SetCdataSectionHandler(XML_Parser parser,
321 XML_StartCdataSectionHandler start,
322 XML_EndCdataSectionHandler end);
324 void
325 XML_SetStartCdataSectionHandler(XML_Parser parser,
326 XML_StartCdataSectionHandler start);
328 void
329 XML_SetEndCdataSectionHandler(XML_Parser parser,
330 XML_EndCdataSectionHandler end);
332 void
333 XML_SetDefaultHandler(XML_Parser parser,
334 XML_DefaultHandler handler);
336 void
337 XML_SetDefaultHandlerExpand(XML_Parser parser,
338 XML_DefaultHandler handler);
340 void
341 XML_SetDoctypeDeclHandler(XML_Parser parser,
342 XML_StartDoctypeDeclHandler start,
343 XML_EndDoctypeDeclHandler end);
345 void
346 XML_SetStartDoctypeDeclHandler(XML_Parser parser,
347 XML_StartDoctypeDeclHandler start);
349 void
350 XML_SetEndDoctypeDeclHandler(XML_Parser parser,
351 XML_EndDoctypeDeclHandler end);
353 void
354 XML_SetUnparsedEntityDeclHandler(XML_Parser parser,
355 XML_UnparsedEntityDeclHandler handler);
357 void
358 XML_SetNotationDeclHandler(XML_Parser parser,
359 XML_NotationDeclHandler handler);
361 void
362 XML_SetNamespaceDeclHandler(XML_Parser parser,
363 XML_StartNamespaceDeclHandler start,
364 XML_EndNamespaceDeclHandler end);
366 void
367 XML_SetStartNamespaceDeclHandler(XML_Parser parser,
368 XML_StartNamespaceDeclHandler start);
370 void
371 XML_SetEndNamespaceDeclHandler(XML_Parser parser,
372 XML_EndNamespaceDeclHandler end);
374 void
375 XML_SetNotStandaloneHandler(XML_Parser parser,
376 XML_NotStandaloneHandler handler);
378 void
379 XML_SetExternalEntityRefHandler(XML_Parser parser,
380 XML_ExternalEntityRefHandler handler);
382 void
383 XML_SetExternalEntityRefHandlerArg(XML_Parser parser,
384 void *arg);
386 void
387 XML_SetSkippedEntityHandler(XML_Parser parser,
388 XML_SkippedEntityHandler handler);
390 void
391 XML_SetUnknownEncodingHandler(XML_Parser parser,
392 XML_UnknownEncodingHandler handler,
393 void *encodingHandlerData);
395 void
396 XML_DefaultCurrent(XML_Parser parser);
398 void
399 XML_SetReturnNSTriplet(XML_Parser parser, int do_nst);
401 void
402 XML_SetUserData(XML_Parser parser, void *userData);
404 #define XML_GetUserData(parser) (*(void **)(parser))
406 enum XML_Status
407 XML_SetEncoding(XML_Parser parser, const XML_Char *encoding);
409 void
410 XML_UseParserAsHandlerArg(XML_Parser parser);
412 enum XML_Error
413 XML_UseForeignDTD(XML_Parser parser, XML_Bool useDTD);
416 enum XML_Status
417 XML_SetBase(XML_Parser parser, const XML_Char *base);
419 const XML_Char *
420 XML_GetBase(XML_Parser parser);
423 XML_GetSpecifiedAttributeCount(XML_Parser parser);
426 XML_GetIdAttributeIndex(XML_Parser parser);
428 enum XML_Status
429 XML_Parse(XML_Parser parser, const char *s, int len, int isFinal);
431 void *
432 XML_GetBuffer(XML_Parser parser, int len);
434 enum XML_Status
435 XML_ParseBuffer(XML_Parser parser, int len, int isFinal);
437 enum XML_Status
438 XML_StopParser(XML_Parser parser, XML_Bool resumable);
440 enum XML_Status
441 XML_ResumeParser(XML_Parser parser);
443 enum XML_Parsing {
444 XML_INITIALIZED,
445 XML_PARSING,
446 XML_FINISHED,
447 XML_SUSPENDED
450 typedef struct {
451 enum XML_Parsing parsing;
452 XML_Bool finalBuffer;
453 } XML_ParsingStatus;
455 void
456 XML_GetParsingStatus(XML_Parser parser, XML_ParsingStatus *status);
458 XML_Parser
459 XML_ExternalEntityParserCreate(XML_Parser parser,
460 const XML_Char *context,
461 const XML_Char *encoding);
463 enum XML_ParamEntityParsing {
464 XML_PARAM_ENTITY_PARSING_NEVER,
465 XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE,
466 XML_PARAM_ENTITY_PARSING_ALWAYS
470 XML_SetParamEntityParsing(XML_Parser parser,
471 enum XML_ParamEntityParsing parsing);
473 enum XML_Error
474 XML_GetErrorCode(XML_Parser parser);
476 int XML_GetCurrentLineNumber(XML_Parser parser);
477 int XML_GetCurrentColumnNumber(XML_Parser parser);
478 long XML_GetCurrentByteIndex(XML_Parser parser);
481 XML_GetCurrentByteCount(XML_Parser parser);
483 const char *
484 XML_GetInputContext(XML_Parser parser,
485 int *offset,
486 int *size);
488 #define XML_GetErrorLineNumber XML_GetCurrentLineNumber
489 #define XML_GetErrorColumnNumber XML_GetCurrentColumnNumber
490 #define XML_GetErrorByteIndex XML_GetCurrentByteIndex
492 void
493 XML_FreeContentModel(XML_Parser parser, XML_Content *model);
495 void *
496 XML_MemMalloc(XML_Parser parser, size_t size);
498 void *
499 XML_MemRealloc(XML_Parser parser, void *ptr, size_t size);
501 void
502 XML_MemFree(XML_Parser parser, void *ptr);
504 void
505 XML_ParserFree(XML_Parser parser);
507 const XML_LChar *
508 XML_ErrorString(enum XML_Error code);
510 const XML_LChar *
511 XML_ExpatVersion(void);
513 typedef struct {
514 int major;
515 int minor;
516 int micro;
517 } XML_Expat_Version;
519 XML_Expat_Version
520 XML_ExpatVersionInfo(void);
522 enum XML_FeatureEnum {
523 XML_FEATURE_END = 0,
524 XML_FEATURE_UNICODE,
525 XML_FEATURE_UNICODE_WCHAR_T,
526 XML_FEATURE_DTD,
527 XML_FEATURE_CONTEXT_BYTES,
528 XML_FEATURE_MIN_SIZE,
529 XML_FEATURE_SIZEOF_XML_CHAR,
530 XML_FEATURE_SIZEOF_XML_LCHAR,
531 XML_FEATURE_NS,
532 XML_FEATURE_LARGE_SIZE
535 typedef struct {
536 enum XML_FeatureEnum feature;
537 const XML_LChar *name;
538 long int value;
539 } XML_Feature;
541 const XML_Feature *
542 XML_GetFeatureList(void);
545 #define XML_MAJOR_VERSION 2
546 #define XML_MINOR_VERSION 0
547 #define XML_MICRO_VERSION 1
550 /****************************************************************************/
552 #ifdef __GNUC__
553 #ifdef __PPC__
554 #pragma pack()
555 #endif
556 #elif defined(__VBCC__)
557 #pragma default-align
558 #endif
560 #ifdef __cplusplus
562 #endif
564 /****************************************************************************/
566 #endif /* EXPAT_EXPAT_H */