00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef AXIOM_XML_WRITER_H
00019 #define AXIOM_XML_WRITER_H
00020
00026 #include <axutil_env.h>
00027
00028 #ifdef __cplusplus
00029 extern "C"
00030 {
00031 #endif
00032
00033 typedef struct axiom_xml_writer_ops axiom_xml_writer_ops_t;
00034 typedef struct axiom_xml_writer axiom_xml_writer_t;
00035
00049 struct axiom_xml_writer_ops
00050 {
00059 void (AXIS2_CALL *
00060 free)(axiom_xml_writer_t *writer,
00061 const axutil_env_t *env);
00071 axis2_status_t(AXIS2_CALL *
00072 write_start_element)(axiom_xml_writer_t *writer,
00073 const axutil_env_t *env,
00074 axis2_char_t *localname);
00084 axis2_status_t(AXIS2_CALL *
00085 end_start_element)(axiom_xml_writer_t *writer,
00086 const axutil_env_t *env);
00097 axis2_status_t(AXIS2_CALL *
00098 write_start_element_with_namespace)(axiom_xml_writer_t *writer,
00099 const axutil_env_t *env,
00100 axis2_char_t *localname,
00101 axis2_char_t *namespace_uri);
00102
00113 axis2_status_t(AXIS2_CALL *
00114 write_start_element_with_namespace_prefix)(axiom_xml_writer_t *writer,
00115 const axutil_env_t *env,
00116 axis2_char_t *localname,
00117 axis2_char_t *namespace_uri,
00118 axis2_char_t *prefix);
00127 axis2_status_t(AXIS2_CALL *
00128 write_empty_element)(axiom_xml_writer_t *writer,
00129 const axutil_env_t *env,
00130 axis2_char_t *localname);
00141 axis2_status_t(AXIS2_CALL *
00142 write_empty_element_with_namespace)(axiom_xml_writer_t *writer,
00143 const axutil_env_t *env,
00144 axis2_char_t *localname,
00145 axis2_char_t *namespace_uri);
00156 axis2_status_t(AXIS2_CALL *
00157 write_empty_element_with_namespace_prefix)(axiom_xml_writer_t *writer,
00158 const axutil_env_t *env,
00159 axis2_char_t *localname,
00160 axis2_char_t *namespace_uri,
00161 axis2_char_t *prefix);
00169 axis2_status_t(AXIS2_CALL *
00170 write_end_element)(axiom_xml_writer_t *writer,
00171 const axutil_env_t *env);
00179 axis2_status_t(AXIS2_CALL *
00180 write_end_document)(axiom_xml_writer_t *writer,
00181 const axutil_env_t *env);
00191 axis2_status_t(AXIS2_CALL *
00192 write_attribute)(axiom_xml_writer_t *writer,
00193 const axutil_env_t *env,
00194 axis2_char_t *localname,
00195 axis2_char_t *value);
00205 axis2_status_t(AXIS2_CALL *
00206 write_attribute_with_namespace)(axiom_xml_writer_t *writer,
00207 const axutil_env_t *env,
00208 axis2_char_t *localname,
00209 axis2_char_t *value,
00210 axis2_char_t *namespace_uri);
00219 axis2_status_t(AXIS2_CALL *
00220 write_attribute_with_namespace_prefix)(axiom_xml_writer_t *writer,
00221 const axutil_env_t *env,
00222 axis2_char_t *localname,
00223 axis2_char_t *value,
00224 axis2_char_t *namespace_uri,
00225 axis2_char_t *prefix);
00235 axis2_status_t(AXIS2_CALL *
00236 write_namespace)(axiom_xml_writer_t *writer,
00237 const axutil_env_t *env,
00238 axis2_char_t *prefix,
00239 axis2_char_t *namespace_uri);
00248 axis2_status_t(AXIS2_CALL *
00249 write_default_namespace)(axiom_xml_writer_t *writer,
00250 const axutil_env_t *env,
00251 axis2_char_t *namespace_uri);
00261 axis2_status_t(AXIS2_CALL *
00262 write_comment)(axiom_xml_writer_t *writer,
00263 const axutil_env_t *env,
00264 axis2_char_t *value);
00274 axis2_status_t(AXIS2_CALL *
00275 write_processing_instruction)(axiom_xml_writer_t *writer,
00276 const axutil_env_t *env,
00277 axis2_char_t *target);
00278
00288 axis2_status_t(AXIS2_CALL *
00289 write_processing_instruction_data)(axiom_xml_writer_t *writer,
00290 const axutil_env_t *env,
00291 axis2_char_t *target,
00292 axis2_char_t *data);
00293
00301 axis2_status_t(AXIS2_CALL *
00302 write_cdata)(axiom_xml_writer_t *writer,
00303 const axutil_env_t *env,
00304 axis2_char_t *data);
00305
00306
00314 axis2_status_t(AXIS2_CALL *
00315 write_dtd)(axiom_xml_writer_t *writer,
00316 const axutil_env_t *env,
00317 axis2_char_t *dtd);
00318
00319
00327 axis2_status_t(AXIS2_CALL *
00328 write_entity_ref)(axiom_xml_writer_t *writer,
00329 const axutil_env_t *env,
00330 axis2_char_t *name);
00331
00338 axis2_status_t(AXIS2_CALL *
00339 write_start_document)(axiom_xml_writer_t *writer,
00340 const axutil_env_t *env);
00341
00342
00350 axis2_status_t(AXIS2_CALL *
00351 write_start_document_with_version)(axiom_xml_writer_t *writer,
00352 const axutil_env_t *env,
00353 axis2_char_t *version);
00354
00363 axis2_status_t(AXIS2_CALL *
00364 write_start_document_with_version_encoding)(axiom_xml_writer_t *writer,
00365 const axutil_env_t *env,
00366 axis2_char_t *version,
00367 axis2_char_t *encoding);
00368
00376 axis2_status_t(AXIS2_CALL *
00377 write_characters)(axiom_xml_writer_t *writer,
00378 const axutil_env_t *env,
00379 axis2_char_t *text);
00380
00388 axis2_char_t*(AXIS2_CALL *
00389 get_prefix)(axiom_xml_writer_t *writer,
00390 const axutil_env_t *env,
00391 axis2_char_t *uri);
00392
00401 axis2_status_t(AXIS2_CALL *
00402 set_prefix)(axiom_xml_writer_t *writer,
00403 const axutil_env_t *env,
00404 axis2_char_t *prefix,
00405 axis2_char_t *uri);
00406
00414 axis2_status_t(AXIS2_CALL *
00415 set_default_prefix)(axiom_xml_writer_t *writer,
00416 const axutil_env_t *env,
00417 axis2_char_t *uri);
00418
00427 axis2_status_t(AXIS2_CALL *
00428 write_encoded)(axiom_xml_writer_t *writer,
00429 const axutil_env_t *env,
00430 axis2_char_t *text,
00431 int in_attr);
00432
00433 void*(AXIS2_CALL *
00434 get_xml)(axiom_xml_writer_t *writer,
00435 const axutil_env_t *env);
00436
00437 unsigned int(AXIS2_CALL *
00438 get_xml_size)(axiom_xml_writer_t *writer,
00439 const axutil_env_t *env);
00440
00441 int(AXIS2_CALL *
00442 get_type)(axiom_xml_writer_t *writer,
00443 const axutil_env_t *env);
00444
00445 axis2_status_t(AXIS2_CALL *
00446 write_raw)(axiom_xml_writer_t *writer,
00447 const axutil_env_t *env,
00448 axis2_char_t *content);
00449 axis2_status_t (AXIS2_CALL *
00450 flush)(axiom_xml_writer_t *writer,
00451 const axutil_env_t *env);
00452
00453 };
00454
00460 struct axiom_xml_writer
00461 {
00462 const axiom_xml_writer_ops_t *ops;
00463 };
00464
00469 AXIS2_EXTERN axiom_xml_writer_t * AXIS2_CALL
00470 axiom_xml_writer_create(const axutil_env_t *env,
00471 axis2_char_t *filename,
00472 axis2_char_t *encoding,
00473 int is_prefix_default,
00474 int compression);
00475
00476 AXIS2_EXTERN axiom_xml_writer_t * AXIS2_CALL
00477 axiom_xml_writer_create_for_memory(const axutil_env_t *env,
00478 axis2_char_t *encoding,
00479 int is_prefix_default,
00480 int compression,
00481 int type);
00482
00483 AXIS2_EXTERN void AXIS2_CALL
00484 axiom_xml_writer_free(axiom_xml_writer_t *writer,
00485 const axutil_env_t *env);
00486
00487 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00488 axiom_xml_writer_write_start_element(axiom_xml_writer_t *writer,
00489 const axutil_env_t *env,
00490 axis2_char_t *localname);
00491
00492 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00493 axiom_xml_writer_end_start_element(axiom_xml_writer_t *writer,
00494 const axutil_env_t *env);
00495
00496 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00497 axiom_xml_writer_write_start_element_with_namespace(axiom_xml_writer_t *writer,
00498 const axutil_env_t *env,
00499 axis2_char_t *localname,
00500 axis2_char_t *namespace_uri);
00501
00502 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00503 axiom_xml_writer_write_start_element_with_namespace_prefix(axiom_xml_writer_t *writer,
00504 const axutil_env_t *env,
00505 axis2_char_t *localname,
00506 axis2_char_t *namespace_uri,
00507 axis2_char_t *prefix);
00508
00509 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00510 axiom_xml_writer_write_empty_element(axiom_xml_writer_t *writer,
00511 const axutil_env_t *env,
00512 axis2_char_t *localname);
00513
00514 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00515 axiom_xml_writer_write_empty_element_with_namespace(axiom_xml_writer_t *writer,
00516 const axutil_env_t *env,
00517 axis2_char_t *localname,
00518 axis2_char_t *namespace_uri);
00519
00520 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00521 axiom_xml_writer_write_empty_element_with_namespace_prefix(axiom_xml_writer_t *writer,
00522 const axutil_env_t *env,
00523 axis2_char_t *localname,
00524 axis2_char_t *namespace_uri,
00525 axis2_char_t *prefix);
00526
00527 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00528 axiom_xml_writer_write_end_element(axiom_xml_writer_t *writer,
00529 const axutil_env_t *env);
00530
00531 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00532 axiom_xml_writer_write_end_document(axiom_xml_writer_t *writer,
00533 const axutil_env_t *env);
00534
00535 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00536 axiom_xml_writer_write_attribute(axiom_xml_writer_t *writer,
00537 const axutil_env_t *env,
00538 axis2_char_t *localname,
00539 axis2_char_t *value);
00540
00541 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00542 axiom_xml_writer_write_attribute_with_namespace(axiom_xml_writer_t *writer,
00543 const axutil_env_t *env,
00544 axis2_char_t *localname,
00545 axis2_char_t *value,
00546 axis2_char_t *namespace_uri);
00547
00548 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00549 axiom_xml_writer_write_attribute_with_namespace_prefix(axiom_xml_writer_t *writer,
00550 const axutil_env_t *env,
00551 axis2_char_t *localname,
00552 axis2_char_t *value,
00553 axis2_char_t *namespace_uri,
00554 axis2_char_t *prefix);
00555
00556 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00557 axiom_xml_writer_write_namespace(axiom_xml_writer_t *writer,
00558 const axutil_env_t *env,
00559 axis2_char_t *prefix,
00560 axis2_char_t *namespace_uri);
00561
00562 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00563 axiom_xml_writer_write_default_namespace(axiom_xml_writer_t *writer,
00564 const axutil_env_t *env,
00565 axis2_char_t *namespace_uri);
00566
00567 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00568 axiom_xml_writer_write_comment(axiom_xml_writer_t *writer,
00569 const axutil_env_t *env,
00570 axis2_char_t *value);
00571
00572 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00573 axiom_xml_writer_write_processing_instruction(axiom_xml_writer_t *writer,
00574 const axutil_env_t *env,
00575 axis2_char_t *target);
00576
00577 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00578 axiom_xml_writer_write_processing_instruction_data(axiom_xml_writer_t *writer,
00579 const axutil_env_t *env,
00580 axis2_char_t *target,
00581 axis2_char_t *data);
00582
00583 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00584 axiom_xml_writer_write_cdata(axiom_xml_writer_t *writer,
00585 const axutil_env_t *env,
00586 axis2_char_t *data);
00587
00588 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00589 axiom_xml_writer_write_dtd(axiom_xml_writer_t *writer,
00590 const axutil_env_t *env,
00591 axis2_char_t *dtd);
00592
00593 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00594 axiom_xml_writer_write_entity_ref(axiom_xml_writer_t *writer,
00595 const axutil_env_t *env,
00596 axis2_char_t *name);
00597
00598 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00599 axiom_xml_writer_write_start_document(axiom_xml_writer_t *writer,
00600 const axutil_env_t *env);
00601
00602 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00603 axiom_xml_writer_write_start_document_with_version(axiom_xml_writer_t *writer,
00604 const axutil_env_t *env,
00605 axis2_char_t *version);
00606
00607 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00608 axiom_xml_writer_write_start_document_with_version_encoding(axiom_xml_writer_t *writer,
00609 const axutil_env_t *env,
00610 axis2_char_t *version,
00611 axis2_char_t *encoding);
00612
00613 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00614 axiom_xml_writer_write_characters(axiom_xml_writer_t *writer,
00615 const axutil_env_t *env,
00616 axis2_char_t *text);
00617
00618 AXIS2_EXTERN axis2_char_t* AXIS2_CALL
00619 axiom_xml_writer_get_prefix(axiom_xml_writer_t *writer,
00620 const axutil_env_t *env,
00621 axis2_char_t *uri);
00622
00623 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00624 axiom_xml_writer_set_prefix(axiom_xml_writer_t *writer,
00625 const axutil_env_t *env,
00626 axis2_char_t *prefix,
00627 axis2_char_t *uri);
00628
00629 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00630 axiom_xml_writer_set_default_prefix(axiom_xml_writer_t *writer,
00631 const axutil_env_t *env,
00632 axis2_char_t *uri);
00633
00634 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00635 axiom_xml_writer_write_encoded(axiom_xml_writer_t *writer,
00636 const axutil_env_t *env,
00637 axis2_char_t *text,
00638 int in_attr);
00639
00640 AXIS2_EXTERN void* AXIS2_CALL
00641 axiom_xml_writer_get_xml(axiom_xml_writer_t *writer,
00642 const axutil_env_t *env);
00643
00644 AXIS2_EXTERN unsigned int AXIS2_CALL
00645 axiom_xml_writer_get_xml_size(axiom_xml_writer_t *writer,
00646 const axutil_env_t *env);
00647
00648 AXIS2_EXTERN int AXIS2_CALL
00649 axiom_xml_writer_get_type(axiom_xml_writer_t *writer,
00650 const axutil_env_t *env);
00651
00652 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00653 axiom_xml_writer_write_raw(axiom_xml_writer_t *writer,
00654 const axutil_env_t *env,
00655 axis2_char_t *content);
00656
00657 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00658 axiom_xml_writer_flush(axiom_xml_writer_t *writer,
00659 const axutil_env_t *env);
00660
00664 #ifdef __cplusplus
00665 }
00666 #endif
00667
00668 #endif