00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIOM_XML_READER_H
00019 #define AXIOM_XML_READER_H
00020
00026 #include <axutil_env.h>
00027 #include <axutil_utils.h>
00028
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033
00034 typedef struct axiom_xml_reader_ops axiom_xml_reader_ops_t;
00035 typedef struct axiom_xml_reader axiom_xml_reader_t;
00036
00050 typedef enum axiom_xml_reader_event_types
00051 {
00052 AXIOM_XML_READER_START_DOCUMENT = 0,
00053 AXIOM_XML_READER_START_ELEMENT,
00054 AXIOM_XML_READER_END_ELEMENT,
00055 AXIOM_XML_READER_SPACE,
00056 AXIOM_XML_READER_EMPTY_ELEMENT,
00057 AXIOM_XML_READER_CHARACTER,
00058 AXIOM_XML_READER_ENTITY_REFERENCE,
00059 AXIOM_XML_READER_COMMENT,
00060 AXIOM_XML_READER_PROCESSING_INSTRUCTION,
00061 AXIOM_XML_READER_CDATA,
00062 AXIOM_XML_READER_DOCUMENT_TYPE
00063 }axiom_xml_reader_event_types;
00064
00070 struct axiom_xml_reader_ops
00071 {
00081 int(AXIS2_CALL *
00082 next)(axiom_xml_reader_t *parser,
00083 const axutil_env_t *env);
00084
00092 void (AXIS2_CALL *
00093 free)(axiom_xml_reader_t *parser,
00094 const axutil_env_t *env);
00102 int(AXIS2_CALL *
00103 get_attribute_count)(axiom_xml_reader_t *parser,
00104 const axutil_env_t *env);
00105
00106
00116 axis2_char_t*(AXIS2_CALL *
00117 get_attribute_name_by_number)(axiom_xml_reader_t *parser,
00118 const axutil_env_t *env,
00119 int i);
00120
00131 axis2_char_t*(AXIS2_CALL *
00132 get_attribute_prefix_by_number)(axiom_xml_reader_t *parser,
00133 const axutil_env_t *env,
00134 int i);
00135
00146 axis2_char_t*(AXIS2_CALL *
00147 get_attribute_value_by_number)(axiom_xml_reader_t *parser,
00148 const axutil_env_t *env,
00149 int i);
00150
00161 axis2_char_t*(AXIS2_CALL *
00162 get_attribute_namespace_by_number)(axiom_xml_reader_t *parser,
00163 const axutil_env_t *env,
00164 int i);
00165
00172 axis2_char_t*(AXIS2_CALL *
00173 get_value)(axiom_xml_reader_t *parser,
00174 const axutil_env_t *env);
00175
00182 int(AXIS2_CALL *
00183 get_namespace_count)(axiom_xml_reader_t *parser,
00184 const axutil_env_t *env);
00194 axis2_char_t*(AXIS2_CALL *
00195 get_namespace_uri_by_number)(axiom_xml_reader_t *parser,
00196 const axutil_env_t *env,
00197 int i);
00207 axis2_char_t*(AXIS2_CALL *
00208 get_namespace_prefix_by_number)(axiom_xml_reader_t *parser,
00209 const axutil_env_t *env,
00210 int i);
00211
00219 axis2_char_t*(AXIS2_CALL *
00220 get_prefix)(axiom_xml_reader_t *parser,
00221 const axutil_env_t *env);
00222
00230 axis2_char_t*(AXIS2_CALL *
00231 get_name)(axiom_xml_reader_t *parser,
00232 const axutil_env_t *env);
00233
00241 axis2_char_t*(AXIS2_CALL *
00242 get_pi_target)(axiom_xml_reader_t *parser,
00243 const axutil_env_t *env);
00244
00252 axis2_char_t*(AXIS2_CALL *
00253 get_pi_data)(axiom_xml_reader_t *parser,
00254 const axutil_env_t *env);
00255
00263 axis2_char_t*(AXIS2_CALL *
00264 get_dtd)(axiom_xml_reader_t *parser,
00265 const axutil_env_t *env);
00266
00277 void(AXIS2_CALL *
00278 xml_free)(axiom_xml_reader_t *parser,
00279 const axutil_env_t *env,
00280 void *data);
00281
00289 axis2_char_t*(AXIS2_CALL *
00290 get_char_set_encoding)(axiom_xml_reader_t *parser,
00291 const axutil_env_t *env);
00292
00294 axis2_char_t*(AXIS2_CALL *
00295 get_namespace_uri)(axiom_xml_reader_t *parser,
00296 const axutil_env_t *env);
00297
00298 axis2_char_t*(AXIS2_CALL *
00299 get_namespace_uri_by_prefix)(axiom_xml_reader_t *parser,
00300 const axutil_env_t *env,
00301 axis2_char_t *prefix);
00302 };
00303
00308 struct axiom_xml_reader
00309 {
00310 const axiom_xml_reader_ops_t *ops;
00311 };
00312
00321 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00322 axiom_xml_reader_create_for_file(const axutil_env_t *env,
00323 char *filename,
00324 const axis2_char_t *encoding);
00325
00341 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00342 axiom_xml_reader_create_for_io(const axutil_env_t *env,
00343 AXIS2_READ_INPUT_CALLBACK,
00344 AXIS2_CLOSE_INPUT_CALLBACK,
00345 void *ctx,
00346 const axis2_char_t *encoding);
00347
00356 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00357 axiom_xml_reader_create_for_memory(const axutil_env_t *env,
00358 void *container,
00359 int size,
00360 const axis2_char_t *encoding,
00361 int type);
00362
00366 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00367 axiom_xml_reader_init();
00368
00372 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00373 axiom_xml_reader_cleanup();
00374
00375
00376 AXIS2_EXTERN int AXIS2_CALL
00377 axiom_xml_reader_next(axiom_xml_reader_t *parser,
00378 const axutil_env_t *env);
00379
00380 AXIS2_EXTERN void AXIS2_CALL
00381 axiom_xml_reader_free(axiom_xml_reader_t *parser,
00382 const axutil_env_t *env);
00383
00384 AXIS2_EXTERN int AXIS2_CALL
00385 axiom_xml_reader_get_attribute_count(axiom_xml_reader_t *parser,
00386 const axutil_env_t *env);
00387
00388 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00389 axiom_xml_reader_get_attribute_name_by_number(axiom_xml_reader_t *parser,
00390 const axutil_env_t *env,
00391 int i);
00392
00393 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00394 axiom_xml_reader_get_attribute_prefix_by_number(axiom_xml_reader_t *parser,
00395 const axutil_env_t *env,
00396 int i);
00397
00398 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00399 axiom_xml_reader_get_attribute_value_by_number(axiom_xml_reader_t *parser,
00400 const axutil_env_t *env,
00401 int i);
00402
00403 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00404 axiom_xml_reader_get_attribute_namespace_by_number(axiom_xml_reader_t *parser,
00405 const axutil_env_t *env,
00406 int i);
00407
00408 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00409 axiom_xml_reader_get_value(axiom_xml_reader_t *parser,
00410 const axutil_env_t *env);
00411
00412 AXIS2_EXTERN int AXIS2_CALL
00413 axiom_xml_reader_get_namespace_count(axiom_xml_reader_t *parser,
00414 const axutil_env_t *env);
00415
00416 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00417 axiom_xml_reader_get_namespace_uri_by_number(axiom_xml_reader_t *parser,
00418 const axutil_env_t *env,
00419 int i);
00420
00421 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00422 axiom_xml_reader_get_namespace_prefix_by_number(axiom_xml_reader_t *parser,
00423 const axutil_env_t *env,
00424 int i);
00425
00426 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00427 axiom_xml_reader_get_prefix(axiom_xml_reader_t *parser,
00428 const axutil_env_t *env);
00429
00430 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00431 axiom_xml_reader_get_name(axiom_xml_reader_t *parser,
00432 const axutil_env_t *env);
00433
00434 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00435 axiom_xml_reader_get_pi_target(axiom_xml_reader_t *parser,
00436 const axutil_env_t *env);
00437
00438 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00439 axiom_xml_reader_get_pi_data(axiom_xml_reader_t *parser,
00440 const axutil_env_t *env);
00441
00442 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00443 axiom_xml_reader_get_dtd(axiom_xml_reader_t *parser,
00444 const axutil_env_t *env);
00445
00446 AXIS2_EXTERN void AXIS2_CALL
00447 axiom_xml_reader_xml_free(axiom_xml_reader_t *parser,
00448 const axutil_env_t *env,
00449 void *data);
00450
00451 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00452 axiom_xml_reader_get_char_set_encoding(axiom_xml_reader_t *parser,
00453 const axutil_env_t *env);
00454
00455 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00456 axiom_xml_reader_get_namespace_uri(axiom_xml_reader_t *parser,
00457 const axutil_env_t *env);
00458
00459 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00460 axiom_xml_reader_get_namespace_uri_by_prefix(axiom_xml_reader_t *parser,
00461 const axutil_env_t *env,
00462 axis2_char_t *prefix);
00463
00467 #ifdef __cplusplus
00468 }
00469 #endif
00470
00471 #endif