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
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034
00035 typedef struct axiom_xml_reader_ops axiom_xml_reader_ops_t;
00036 typedef struct axiom_xml_reader axiom_xml_reader_t;
00037
00051 typedef enum axiom_xml_reader_event_types
00052 {
00053 AXIOM_XML_READER_START_DOCUMENT = 0,
00054 AXIOM_XML_READER_START_ELEMENT,
00055 AXIOM_XML_READER_END_ELEMENT,
00056 AXIOM_XML_READER_SPACE,
00057 AXIOM_XML_READER_EMPTY_ELEMENT,
00058 AXIOM_XML_READER_CHARACTER,
00059 AXIOM_XML_READER_ENTITY_REFERENCE,
00060 AXIOM_XML_READER_COMMENT,
00061 AXIOM_XML_READER_PROCESSING_INSTRUCTION,
00062 AXIOM_XML_READER_CDATA,
00063 AXIOM_XML_READER_DOCUMENT_TYPE
00064 } axiom_xml_reader_event_types;
00065
00071 struct axiom_xml_reader_ops
00072 {
00073
00083 int(
00084 AXIS2_CALL
00085 * next)(
00086 axiom_xml_reader_t * parser,
00087 const axutil_env_t * env);
00088
00096 void(
00097 AXIS2_CALL
00098 * free)(
00099 axiom_xml_reader_t * parser,
00100 const axutil_env_t * env);
00101
00109 int(
00110 AXIS2_CALL
00111 * get_attribute_count)(
00112 axiom_xml_reader_t * parser,
00113 const axutil_env_t * env);
00114
00124 axis2_char_t *(
00125 AXIS2_CALL
00126 * get_attribute_name_by_number)(
00127 axiom_xml_reader_t * parser,
00128 const axutil_env_t * env,
00129 int i);
00130
00141 axis2_char_t *(
00142 AXIS2_CALL
00143 * get_attribute_prefix_by_number)(
00144 axiom_xml_reader_t * parser,
00145 const axutil_env_t * env,
00146 int i);
00147
00158 axis2_char_t *(
00159 AXIS2_CALL
00160 * get_attribute_value_by_number)(
00161 axiom_xml_reader_t * parser,
00162 const axutil_env_t * env,
00163 int i);
00164
00175 axis2_char_t *(
00176 AXIS2_CALL
00177 * get_attribute_namespace_by_number)(
00178 axiom_xml_reader_t * parser,
00179 const axutil_env_t * env,
00180 int i);
00181
00188 axis2_char_t *(
00189 AXIS2_CALL
00190 * get_value)(
00191 axiom_xml_reader_t * parser,
00192 const axutil_env_t * env);
00193
00200 int(
00201 AXIS2_CALL
00202 * get_namespace_count)(
00203 axiom_xml_reader_t * parser,
00204 const axutil_env_t * env);
00205
00215 axis2_char_t *(
00216 AXIS2_CALL
00217 * get_namespace_uri_by_number)(
00218 axiom_xml_reader_t * parser,
00219 const axutil_env_t * env,
00220 int i);
00221
00231 axis2_char_t *(
00232 AXIS2_CALL
00233 * get_namespace_prefix_by_number)(
00234 axiom_xml_reader_t * parser,
00235 const axutil_env_t * env,
00236 int i);
00237
00245 axis2_char_t *(
00246 AXIS2_CALL
00247 * get_prefix)(
00248 axiom_xml_reader_t * parser,
00249 const axutil_env_t * env);
00250
00258 axis2_char_t *(
00259 AXIS2_CALL
00260 * get_name)(
00261 axiom_xml_reader_t * parser,
00262 const axutil_env_t * env);
00263
00271 axis2_char_t *(
00272 AXIS2_CALL
00273 * get_pi_target)(
00274 axiom_xml_reader_t * parser,
00275 const axutil_env_t * env);
00276
00284 axis2_char_t *(
00285 AXIS2_CALL
00286 * get_pi_data)(
00287 axiom_xml_reader_t * parser,
00288 const axutil_env_t * env);
00289
00297 axis2_char_t *(
00298 AXIS2_CALL
00299 * get_dtd)(
00300 axiom_xml_reader_t * parser,
00301 const axutil_env_t * env);
00302
00313 void(
00314 AXIS2_CALL
00315 * xml_free)(
00316 axiom_xml_reader_t * parser,
00317 const axutil_env_t * env,
00318 void *data);
00319
00327 axis2_char_t *(
00328 AXIS2_CALL
00329 * get_char_set_encoding)(
00330 axiom_xml_reader_t * parser,
00331 const axutil_env_t * env);
00332
00334 axis2_char_t *(
00335 AXIS2_CALL
00336 * get_namespace_uri)(
00337 axiom_xml_reader_t * parser,
00338 const axutil_env_t * env);
00339
00340 axis2_char_t *(
00341 AXIS2_CALL
00342 * get_namespace_uri_by_prefix)(
00343 axiom_xml_reader_t * parser,
00344 const axutil_env_t * env,
00345 axis2_char_t * prefix);
00346 };
00347
00352 struct axiom_xml_reader
00353 {
00354 const axiom_xml_reader_ops_t *ops;
00355 };
00356
00365 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00366 axiom_xml_reader_create_for_file(
00367 const axutil_env_t * env,
00368 char *filename,
00369 const axis2_char_t * encoding);
00370
00388 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00389 axiom_xml_reader_create_for_io(
00390 const axutil_env_t * env,
00391 AXIS2_READ_INPUT_CALLBACK,
00392 AXIS2_CLOSE_INPUT_CALLBACK,
00393 void *ctx,
00394 const axis2_char_t * encoding);
00395
00406 AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00407 axiom_xml_reader_create_for_memory(
00408 const axutil_env_t * env,
00409 void *container,
00410 int size,
00411 const axis2_char_t * encoding,
00412 int type);
00413
00417 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00418 axiom_xml_reader_init(
00419 );
00420
00424 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00425 axiom_xml_reader_cleanup(
00426 );
00427
00428 AXIS2_EXTERN int AXIS2_CALL
00429 axiom_xml_reader_next(
00430 axiom_xml_reader_t * parser,
00431 const axutil_env_t * env);
00432
00433 AXIS2_EXTERN void AXIS2_CALL
00434 axiom_xml_reader_free(
00435 axiom_xml_reader_t * parser,
00436 const axutil_env_t * env);
00437
00438 AXIS2_EXTERN int AXIS2_CALL
00439 axiom_xml_reader_get_attribute_count(
00440 axiom_xml_reader_t * parser,
00441 const axutil_env_t * env);
00442
00443 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00444
00445 axiom_xml_reader_get_attribute_name_by_number(
00446 axiom_xml_reader_t * parser,
00447 const axutil_env_t * env,
00448 int i);
00449
00450 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00451
00452 axiom_xml_reader_get_attribute_prefix_by_number(
00453 axiom_xml_reader_t * parser,
00454 const axutil_env_t * env,
00455 int i);
00456
00457 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00458
00459 axiom_xml_reader_get_attribute_value_by_number(
00460 axiom_xml_reader_t * parser,
00461 const axutil_env_t * env,
00462 int i);
00463
00464 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00465
00466 axiom_xml_reader_get_attribute_namespace_by_number(
00467 axiom_xml_reader_t * parser,
00468 const axutil_env_t * env,
00469 int i);
00470
00471 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00472 axiom_xml_reader_get_value(
00473 axiom_xml_reader_t * parser,
00474 const axutil_env_t * env);
00475
00476 AXIS2_EXTERN int AXIS2_CALL
00477 axiom_xml_reader_get_namespace_count(
00478 axiom_xml_reader_t * parser,
00479 const axutil_env_t * env);
00480
00481 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00482
00483 axiom_xml_reader_get_namespace_uri_by_number(
00484 axiom_xml_reader_t * parser,
00485 const axutil_env_t * env,
00486 int i);
00487
00488 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00489
00490 axiom_xml_reader_get_namespace_prefix_by_number(
00491 axiom_xml_reader_t * parser,
00492 const axutil_env_t * env,
00493 int i);
00494
00495 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00496 axiom_xml_reader_get_prefix(
00497 axiom_xml_reader_t * parser,
00498 const axutil_env_t * env);
00499
00500 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00501 axiom_xml_reader_get_name(
00502 axiom_xml_reader_t * parser,
00503 const axutil_env_t * env);
00504
00505 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00506 axiom_xml_reader_get_pi_target(
00507 axiom_xml_reader_t * parser,
00508 const axutil_env_t * env);
00509
00510 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00511 axiom_xml_reader_get_pi_data(
00512 axiom_xml_reader_t * parser,
00513 const axutil_env_t * env);
00514
00515 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00516 axiom_xml_reader_get_dtd(
00517 axiom_xml_reader_t * parser,
00518 const axutil_env_t * env);
00519
00520 AXIS2_EXTERN void AXIS2_CALL
00521 axiom_xml_reader_xml_free(
00522 axiom_xml_reader_t * parser,
00523 const axutil_env_t * env,
00524 void *data);
00525
00526 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00527
00528 axiom_xml_reader_get_char_set_encoding(
00529 axiom_xml_reader_t * parser,
00530 const axutil_env_t * env);
00531
00532 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00533 axiom_xml_reader_get_namespace_uri(
00534 axiom_xml_reader_t * parser,
00535 const axutil_env_t * env);
00536
00537 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00538
00539 axiom_xml_reader_get_namespace_uri_by_prefix(
00540 axiom_xml_reader_t * parser,
00541 const axutil_env_t * env,
00542 axis2_char_t * prefix);
00543
00546 #ifdef __cplusplus
00547 }
00548 #endif
00549
00550 #endif