00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIOM_XML_READER_H
00020 #define AXIOM_XML_READER_H
00021
00027 #include <axutil_env.h>
00028 #include <axutil_utils.h>
00029 #include <axiom_defines.h>
00030
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035
00036 typedef struct axiom_xml_reader_ops axiom_xml_reader_ops_t;
00037 typedef struct axiom_xml_reader axiom_xml_reader_t;
00038
00052 typedef enum axiom_xml_reader_event_types
00053 {
00054 AXIOM_XML_READER_START_DOCUMENT = 0,
00055 AXIOM_XML_READER_START_ELEMENT,
00056 AXIOM_XML_READER_END_ELEMENT,
00057 AXIOM_XML_READER_SPACE,
00058 AXIOM_XML_READER_EMPTY_ELEMENT,
00059 AXIOM_XML_READER_CHARACTER,
00060 AXIOM_XML_READER_ENTITY_REFERENCE,
00061 AXIOM_XML_READER_COMMENT,
00062 AXIOM_XML_READER_PROCESSING_INSTRUCTION,
00063 AXIOM_XML_READER_CDATA,
00064 AXIOM_XML_READER_DOCUMENT_TYPE
00065 } axiom_xml_reader_event_types;
00066
00072 struct axiom_xml_reader_ops
00073 {
00074
00084 int(
00085 AXIS2_CALL
00086 * next)(
00087 axiom_xml_reader_t * parser,
00088 const axutil_env_t * env);
00089
00097 void(
00098 AXIS2_CALL
00099 * free)(
00100 axiom_xml_reader_t * parser,
00101 const axutil_env_t * env);
00102
00110 int(
00111 AXIS2_CALL
00112 * get_attribute_count)(
00113 axiom_xml_reader_t * parser,
00114 const axutil_env_t * env);
00115
00125 axis2_char_t *(
00126 AXIS2_CALL
00127 * get_attribute_name_by_number)(
00128 axiom_xml_reader_t * parser,
00129 const axutil_env_t * env,
00130 int i);
00131
00142 axis2_char_t *(
00143 AXIS2_CALL
00144 * get_attribute_prefix_by_number)(
00145 axiom_xml_reader_t * parser,
00146 const axutil_env_t * env,
00147 int i);
00148
00159 axis2_char_t *(
00160 AXIS2_CALL
00161 * get_attribute_value_by_number)(
00162 axiom_xml_reader_t * parser,
00163 const axutil_env_t * env,
00164 int i);
00165
00176 axis2_char_t *(
00177 AXIS2_CALL
00178 * get_attribute_namespace_by_number)(
00179 axiom_xml_reader_t * parser,
00180 const axutil_env_t * env,
00181 int i);
00182
00189 axis2_char_t *(
00190 AXIS2_CALL
00191 * get_value)(
00192 axiom_xml_reader_t * parser,
00193 const axutil_env_t * env);
00194
00201 int(
00202 AXIS2_CALL
00203 * get_namespace_count)(
00204 axiom_xml_reader_t * parser,
00205 const axutil_env_t * env);
00206
00216 axis2_char_t *(
00217 AXIS2_CALL
00218 * get_namespace_uri_by_number)(
00219 axiom_xml_reader_t * parser,
00220 const axutil_env_t * env,
00221 int i);
00222
00232 axis2_char_t *(
00233 AXIS2_CALL
00234 * get_namespace_prefix_by_number)(
00235 axiom_xml_reader_t * parser,
00236 const axutil_env_t * env,
00237 int i);
00238
00246 axis2_char_t *(
00247 AXIS2_CALL
00248 * get_prefix)(
00249 axiom_xml_reader_t * parser,
00250 const axutil_env_t * env);
00251
00259 axis2_char_t *(
00260 AXIS2_CALL
00261 * get_name)(
00262 axiom_xml_reader_t * parser,
00263 const axutil_env_t * env);
00264
00272 axis2_char_t *(
00273 AXIS2_CALL
00274 * get_pi_target)(
00275 axiom_xml_reader_t * parser,
00276 const axutil_env_t * env);
00277
00285 axis2_char_t *(
00286 AXIS2_CALL
00287 * get_pi_data)(
00288 axiom_xml_reader_t * parser,
00289 const axutil_env_t * env);
00290
00298 axis2_char_t *(
00299 AXIS2_CALL
00300 * get_dtd)(
00301 axiom_xml_reader_t * parser,
00302 const axutil_env_t * env);
00303
00314 void(
00315 AXIS2_CALL
00316 * xml_free)(
00317 axiom_xml_reader_t * parser,
00318 const axutil_env_t * env,
00319 void *data);
00320
00328 axis2_char_t *(
00329 AXIS2_CALL
00330 * get_char_set_encoding)(
00331 axiom_xml_reader_t * parser,
00332 const axutil_env_t * env);
00333
00335 axis2_char_t *(
00336 AXIS2_CALL
00337 * get_namespace_uri)(
00338 axiom_xml_reader_t * parser,
00339 const axutil_env_t * env);
00340
00341 axis2_char_t *(
00342 AXIS2_CALL
00343 * get_namespace_uri_by_prefix)(
00344 axiom_xml_reader_t * parser,
00345 const axutil_env_t * env,
00346 axis2_char_t * prefix);
00347 };
00348
00353 struct axiom_xml_reader
00354 {
00355 const axiom_xml_reader_ops_t *ops;
00356 };
00357
00366 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00367 axiom_xml_reader_create_for_file(
00368 const axutil_env_t * env,
00369 char *filename,
00370 const axis2_char_t * encoding);
00371
00389 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00390 axiom_xml_reader_create_for_io(
00391 const axutil_env_t * env,
00392 AXIS2_READ_INPUT_CALLBACK,
00393 AXIS2_CLOSE_INPUT_CALLBACK,
00394 void *ctx,
00395 const axis2_char_t * encoding);
00396
00407 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00408 axiom_xml_reader_create_for_memory(
00409 const axutil_env_t * env,
00410 void *container,
00411 int size,
00412 const axis2_char_t * encoding,
00413 int type);
00414
00418 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00419 axiom_xml_reader_init(
00420 );
00421
00425 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00426 axiom_xml_reader_cleanup(
00427 );
00428
00437 AXIS2_EXTERN int AXIS2_CALL
00438 axiom_xml_reader_next(
00439 axiom_xml_reader_t * parser,
00440 const axutil_env_t * env);
00441
00448 AXIS2_EXTERN void AXIS2_CALL
00449 axiom_xml_reader_free(
00450 axiom_xml_reader_t * parser,
00451 const axutil_env_t * env);
00452
00460 AXIS2_EXTERN int AXIS2_CALL
00461 axiom_xml_reader_get_attribute_count(
00462 axiom_xml_reader_t * parser,
00463 const axutil_env_t * env);
00464
00471 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00472 axiom_xml_reader_get_attribute_name_by_number(
00473 axiom_xml_reader_t * parser,
00474 const axutil_env_t * env,
00475 int i);
00476
00483 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00484 axiom_xml_reader_get_attribute_prefix_by_number(
00485 axiom_xml_reader_t * parser,
00486 const axutil_env_t * env,
00487 int i);
00488
00495 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00496 axiom_xml_reader_get_attribute_value_by_number(
00497 axiom_xml_reader_t * parser,
00498 const axutil_env_t * env,
00499 int i);
00500
00507 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00508 axiom_xml_reader_get_attribute_namespace_by_number(
00509 axiom_xml_reader_t * parser,
00510 const axutil_env_t * env,
00511 int i);
00512
00519 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00520 axiom_xml_reader_get_value(
00521 axiom_xml_reader_t * parser,
00522 const axutil_env_t * env);
00523
00530 AXIS2_EXTERN int AXIS2_CALL
00531 axiom_xml_reader_get_namespace_count(
00532 axiom_xml_reader_t * parser,
00533 const axutil_env_t * env);
00534
00541 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00542 axiom_xml_reader_get_namespace_uri_by_number(
00543 axiom_xml_reader_t * parser,
00544 const axutil_env_t * env,
00545 int i);
00546
00553 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00554 axiom_xml_reader_get_namespace_prefix_by_number(
00555 axiom_xml_reader_t * parser,
00556 const axutil_env_t * env,
00557 int i);
00558
00565 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00566 axiom_xml_reader_get_prefix(
00567 axiom_xml_reader_t * parser,
00568 const axutil_env_t * env);
00569
00576 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00577 axiom_xml_reader_get_name(
00578 axiom_xml_reader_t * parser,
00579 const axutil_env_t * env);
00580
00587 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00588 axiom_xml_reader_get_pi_target(
00589 axiom_xml_reader_t * parser,
00590 const axutil_env_t * env);
00591
00598 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00599 axiom_xml_reader_get_pi_data(
00600 axiom_xml_reader_t * parser,
00601 const axutil_env_t * env);
00602
00609 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00610 axiom_xml_reader_get_dtd(
00611 axiom_xml_reader_t * parser,
00612 const axutil_env_t * env);
00613
00620 AXIS2_EXTERN void AXIS2_CALL
00621 axiom_xml_reader_xml_free(
00622 axiom_xml_reader_t * parser,
00623 const axutil_env_t * env,
00624 void *data);
00625
00633 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00634 axiom_xml_reader_get_char_set_encoding(
00635 axiom_xml_reader_t * parser,
00636 const axutil_env_t * env);
00637
00644 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00645 axiom_xml_reader_get_namespace_uri(
00646 axiom_xml_reader_t * parser,
00647 const axutil_env_t * env);
00648
00656 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00657 axiom_xml_reader_get_namespace_uri_by_prefix(
00658 axiom_xml_reader_t * parser,
00659 const axutil_env_t * env,
00660 axis2_char_t * prefix);
00661
00664 #ifdef __cplusplus
00665 }
00666 #endif
00667
00668 #endif
00669
00670
00671
00672
00673
00674
00675
00676
00677
00678
00679
00680
00681
00682