00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef AXIOM_XML_WRITER_H
00020 #define AXIOM_XML_WRITER_H
00021
00027 #include <axutil_env.h>
00028
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033
00034 typedef struct axiom_xml_writer_ops axiom_xml_writer_ops_t;
00035 typedef struct axiom_xml_writer axiom_xml_writer_t;
00036
00048 struct axiom_xml_writer_ops
00049 {
00050
00059 void(
00060 AXIS2_CALL
00061 * free)(
00062 axiom_xml_writer_t * writer,
00063 const axutil_env_t * env);
00064
00074 axis2_status_t(
00075 AXIS2_CALL
00076 * write_start_element)(
00077 axiom_xml_writer_t * writer,
00078 const axutil_env_t * env,
00079 axis2_char_t * localname);
00080
00090 axis2_status_t(
00091 AXIS2_CALL
00092 * end_start_element)(
00093 axiom_xml_writer_t * writer,
00094 const axutil_env_t * env);
00095
00106 axis2_status_t(
00107 AXIS2_CALL
00108 * write_start_element_with_namespace)(
00109 axiom_xml_writer_t * writer,
00110 const axutil_env_t * env,
00111 axis2_char_t * localname,
00112 axis2_char_t * namespace_uri);
00113
00124 axis2_status_t(
00125 AXIS2_CALL
00126 * write_start_element_with_namespace_prefix)(
00127 axiom_xml_writer_t * writer,
00128 const axutil_env_t * env,
00129 axis2_char_t * localname,
00130 axis2_char_t * namespace_uri,
00131 axis2_char_t * prefix);
00132
00141 axis2_status_t(
00142 AXIS2_CALL
00143 * write_empty_element)(
00144 axiom_xml_writer_t * writer,
00145 const axutil_env_t * env,
00146 axis2_char_t * localname);
00147
00158 axis2_status_t(
00159 AXIS2_CALL
00160 * write_empty_element_with_namespace)(
00161 axiom_xml_writer_t * writer,
00162 const axutil_env_t * env,
00163 axis2_char_t * localname,
00164 axis2_char_t * namespace_uri);
00165
00176 axis2_status_t(
00177 AXIS2_CALL
00178 * write_empty_element_with_namespace_prefix)(
00179 axiom_xml_writer_t * writer,
00180 const axutil_env_t * env,
00181 axis2_char_t * localname,
00182 axis2_char_t * namespace_uri,
00183 axis2_char_t * prefix);
00184
00192 axis2_status_t(
00193 AXIS2_CALL
00194 * write_end_element)(
00195 axiom_xml_writer_t * writer,
00196 const axutil_env_t * env);
00197
00205 axis2_status_t(
00206 AXIS2_CALL
00207 * write_end_document)(
00208 axiom_xml_writer_t * writer,
00209 const axutil_env_t * env);
00210
00220 axis2_status_t(
00221 AXIS2_CALL
00222 * write_attribute)(
00223 axiom_xml_writer_t * writer,
00224 const axutil_env_t * env,
00225 axis2_char_t * localname,
00226 axis2_char_t * value);
00227
00237 axis2_status_t(
00238 AXIS2_CALL
00239 * write_attribute_with_namespace)(
00240 axiom_xml_writer_t * writer,
00241 const axutil_env_t * env,
00242 axis2_char_t * localname,
00243 axis2_char_t * value,
00244 axis2_char_t * namespace_uri);
00245
00254 axis2_status_t(
00255 AXIS2_CALL
00256 * write_attribute_with_namespace_prefix)(
00257 axiom_xml_writer_t * writer,
00258 const axutil_env_t * env,
00259 axis2_char_t * localname,
00260 axis2_char_t * value,
00261 axis2_char_t * namespace_uri,
00262 axis2_char_t * prefix);
00263
00273 axis2_status_t(
00274 AXIS2_CALL
00275 * write_namespace)(
00276 axiom_xml_writer_t * writer,
00277 const axutil_env_t * env,
00278 axis2_char_t * prefix,
00279 axis2_char_t * namespace_uri);
00280
00289 axis2_status_t(
00290 AXIS2_CALL
00291 * write_default_namespace)(
00292 axiom_xml_writer_t * writer,
00293 const axutil_env_t * env,
00294 axis2_char_t * namespace_uri);
00295
00304 axis2_status_t(
00305 AXIS2_CALL
00306 * write_comment)(
00307 axiom_xml_writer_t * writer,
00308 const axutil_env_t * env,
00309 axis2_char_t * value);
00310
00319 axis2_status_t(
00320 AXIS2_CALL
00321 * write_processing_instruction)(
00322 axiom_xml_writer_t * writer,
00323 const axutil_env_t * env,
00324 axis2_char_t * target);
00325
00335 axis2_status_t(
00336 AXIS2_CALL
00337 * write_processing_instruction_data)(
00338 axiom_xml_writer_t * writer,
00339 const axutil_env_t * env,
00340 axis2_char_t * target,
00341 axis2_char_t * data);
00342
00350 axis2_status_t(
00351 AXIS2_CALL
00352 * write_cdata)(
00353 axiom_xml_writer_t * writer,
00354 const axutil_env_t * env,
00355 axis2_char_t * data);
00356
00364 axis2_status_t(
00365 AXIS2_CALL
00366 * write_dtd)(
00367 axiom_xml_writer_t * writer,
00368 const axutil_env_t * env,
00369 axis2_char_t * dtd);
00370
00378 axis2_status_t(
00379 AXIS2_CALL
00380 * write_entity_ref)(
00381 axiom_xml_writer_t * writer,
00382 const axutil_env_t * env,
00383 axis2_char_t * name);
00384
00391 axis2_status_t(
00392 AXIS2_CALL
00393 * write_start_document)(
00394 axiom_xml_writer_t * writer,
00395 const axutil_env_t * env);
00396
00404 axis2_status_t(
00405 AXIS2_CALL
00406 * write_start_document_with_version)(
00407 axiom_xml_writer_t * writer,
00408 const axutil_env_t * env,
00409 axis2_char_t * version);
00410
00419 axis2_status_t(
00420 AXIS2_CALL
00421 * write_start_document_with_version_encoding)(
00422 axiom_xml_writer_t * writer,
00423 const axutil_env_t * env,
00424 axis2_char_t * version,
00425 axis2_char_t * encoding);
00426
00434 axis2_status_t(
00435 AXIS2_CALL
00436 * write_characters)(
00437 axiom_xml_writer_t * writer,
00438 const axutil_env_t * env,
00439 axis2_char_t * text);
00440
00448 axis2_char_t *(
00449 AXIS2_CALL
00450 * get_prefix)(
00451 axiom_xml_writer_t * writer,
00452 const axutil_env_t * env,
00453 axis2_char_t * uri);
00454
00463 axis2_status_t(
00464 AXIS2_CALL
00465 * set_prefix)(
00466 axiom_xml_writer_t * writer,
00467 const axutil_env_t * env,
00468 axis2_char_t * prefix,
00469 axis2_char_t * uri);
00470
00478 axis2_status_t(
00479 AXIS2_CALL
00480 * set_default_prefix)(
00481 axiom_xml_writer_t * writer,
00482 const axutil_env_t * env,
00483 axis2_char_t * uri);
00484
00493 axis2_status_t(
00494 AXIS2_CALL
00495 * write_encoded)(
00496 axiom_xml_writer_t * writer,
00497 const axutil_env_t * env,
00498 axis2_char_t * text,
00499 int in_attr);
00500
00501 void *(
00502 AXIS2_CALL
00503 * get_xml)(
00504 axiom_xml_writer_t * writer,
00505 const axutil_env_t * env);
00506
00507 unsigned int(
00508 AXIS2_CALL
00509 * get_xml_size)(
00510 axiom_xml_writer_t * writer,
00511 const axutil_env_t * env);
00512
00513 int(
00514 AXIS2_CALL
00515 * get_type)(
00516 axiom_xml_writer_t * writer,
00517 const axutil_env_t * env);
00518
00519 axis2_status_t(
00520 AXIS2_CALL
00521 * write_raw)(
00522 axiom_xml_writer_t * writer,
00523 const axutil_env_t * env,
00524 axis2_char_t * content);
00525 axis2_status_t(
00526 AXIS2_CALL
00527 * flush)(
00528 axiom_xml_writer_t * writer,
00529 const axutil_env_t * env);
00530
00531 };
00532
00538 struct axiom_xml_writer
00539 {
00540 const axiom_xml_writer_ops_t *ops;
00541 };
00542
00547 AXIS2_EXTERN axiom_xml_writer_t *AXIS2_CALL
00548 axiom_xml_writer_create(
00549 const axutil_env_t * env,
00550 axis2_char_t * filename,
00551 axis2_char_t * encoding,
00552 int is_prefix_default,
00553 int compression);
00554
00555 AXIS2_EXTERN axiom_xml_writer_t *AXIS2_CALL
00556
00557 axiom_xml_writer_create_for_memory(
00558 const axutil_env_t * env,
00559 axis2_char_t * encoding,
00560 int is_prefix_default,
00561 int compression,
00562 int type);
00563
00564 AXIS2_EXTERN void AXIS2_CALL
00565 axiom_xml_writer_free(
00566 axiom_xml_writer_t * writer,
00567 const axutil_env_t * env);
00568
00569 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00570
00571 axiom_xml_writer_write_start_element(
00572 axiom_xml_writer_t * writer,
00573 const axutil_env_t * env,
00574 axis2_char_t * localname);
00575
00576 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00577
00578 axiom_xml_writer_end_start_element(
00579 axiom_xml_writer_t * writer,
00580 const axutil_env_t * env);
00581
00582 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00583
00584 axiom_xml_writer_write_start_element_with_namespace(
00585 axiom_xml_writer_t * writer,
00586 const axutil_env_t * env,
00587 axis2_char_t * localname,
00588 axis2_char_t * namespace_uri);
00589
00590 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00591
00592 axiom_xml_writer_write_start_element_with_namespace_prefix(
00593 axiom_xml_writer_t * writer,
00594 const axutil_env_t * env,
00595 axis2_char_t * localname,
00596 axis2_char_t * namespace_uri,
00597 axis2_char_t * prefix);
00598
00599 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00600
00601 axiom_xml_writer_write_empty_element(
00602 axiom_xml_writer_t * writer,
00603 const axutil_env_t * env,
00604 axis2_char_t * localname);
00605
00606 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00607
00608 axiom_xml_writer_write_empty_element_with_namespace(
00609 axiom_xml_writer_t * writer,
00610 const axutil_env_t * env,
00611 axis2_char_t * localname,
00612 axis2_char_t * namespace_uri);
00613
00614 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00615
00616 axiom_xml_writer_write_empty_element_with_namespace_prefix(
00617 axiom_xml_writer_t * writer,
00618 const axutil_env_t * env,
00619 axis2_char_t * localname,
00620 axis2_char_t * namespace_uri,
00621 axis2_char_t * prefix);
00622
00623 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00624
00625 axiom_xml_writer_write_end_element(
00626 axiom_xml_writer_t * writer,
00627 const axutil_env_t * env);
00628
00629 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00630
00631 axiom_xml_writer_write_end_document(
00632 axiom_xml_writer_t * writer,
00633 const axutil_env_t * env);
00634
00635 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00636 axiom_xml_writer_write_attribute(
00637 axiom_xml_writer_t * writer,
00638 const axutil_env_t * env,
00639 axis2_char_t * localname,
00640 axis2_char_t * value);
00641
00642 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00643
00644 axiom_xml_writer_write_attribute_with_namespace(
00645 axiom_xml_writer_t * writer,
00646 const axutil_env_t * env,
00647 axis2_char_t * localname,
00648 axis2_char_t * value,
00649 axis2_char_t * namespace_uri);
00650
00651 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00652
00653 axiom_xml_writer_write_attribute_with_namespace_prefix(
00654 axiom_xml_writer_t * writer,
00655 const axutil_env_t * env,
00656 axis2_char_t * localname,
00657 axis2_char_t * value,
00658 axis2_char_t * namespace_uri,
00659 axis2_char_t * prefix);
00660
00661 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00662 axiom_xml_writer_write_namespace(
00663 axiom_xml_writer_t * writer,
00664 const axutil_env_t * env,
00665 axis2_char_t * prefix,
00666 axis2_char_t * namespace_uri);
00667
00668 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00669
00670 axiom_xml_writer_write_default_namespace(
00671 axiom_xml_writer_t * writer,
00672 const axutil_env_t * env,
00673 axis2_char_t * namespace_uri);
00674
00675 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00676 axiom_xml_writer_write_comment(
00677 axiom_xml_writer_t * writer,
00678 const axutil_env_t * env,
00679 axis2_char_t * value);
00680
00681 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00682
00683 axiom_xml_writer_write_processing_instruction(
00684 axiom_xml_writer_t * writer,
00685 const axutil_env_t * env,
00686 axis2_char_t * target);
00687
00688 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00689
00690 axiom_xml_writer_write_processing_instruction_data(
00691 axiom_xml_writer_t * writer,
00692 const axutil_env_t * env,
00693 axis2_char_t * target,
00694 axis2_char_t * data);
00695
00696 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00697 axiom_xml_writer_write_cdata(
00698 axiom_xml_writer_t * writer,
00699 const axutil_env_t * env,
00700 axis2_char_t * data);
00701
00702 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00703 axiom_xml_writer_write_dtd(
00704 axiom_xml_writer_t * writer,
00705 const axutil_env_t * env,
00706 axis2_char_t * dtd);
00707
00708 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00709 axiom_xml_writer_write_entity_ref(
00710 axiom_xml_writer_t * writer,
00711 const axutil_env_t * env,
00712 axis2_char_t * name);
00713
00714 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00715
00716 axiom_xml_writer_write_start_document(
00717 axiom_xml_writer_t * writer,
00718 const axutil_env_t * env);
00719
00720 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00721
00722 axiom_xml_writer_write_start_document_with_version(
00723 axiom_xml_writer_t * writer,
00724 const axutil_env_t * env,
00725 axis2_char_t * version);
00726
00727 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00728
00729 axiom_xml_writer_write_start_document_with_version_encoding(
00730 axiom_xml_writer_t * writer,
00731 const axutil_env_t * env,
00732 axis2_char_t * version,
00733 axis2_char_t * encoding);
00734
00735 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00736 axiom_xml_writer_write_characters(
00737 axiom_xml_writer_t * writer,
00738 const axutil_env_t * env,
00739 axis2_char_t * text);
00740
00741 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00742 axiom_xml_writer_get_prefix(
00743 axiom_xml_writer_t * writer,
00744 const axutil_env_t * env,
00745 axis2_char_t * uri);
00746
00747 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00748 axiom_xml_writer_set_prefix(
00749 axiom_xml_writer_t * writer,
00750 const axutil_env_t * env,
00751 axis2_char_t * prefix,
00752 axis2_char_t * uri);
00753
00754 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00755
00756 axiom_xml_writer_set_default_prefix(
00757 axiom_xml_writer_t * writer,
00758 const axutil_env_t * env,
00759 axis2_char_t * uri);
00760
00761 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00762 axiom_xml_writer_write_encoded(
00763 axiom_xml_writer_t * writer,
00764 const axutil_env_t * env,
00765 axis2_char_t * text,
00766 int in_attr);
00767
00768 AXIS2_EXTERN void *AXIS2_CALL
00769 axiom_xml_writer_get_xml(
00770 axiom_xml_writer_t * writer,
00771 const axutil_env_t * env);
00772
00773 AXIS2_EXTERN unsigned int AXIS2_CALL
00774 axiom_xml_writer_get_xml_size(
00775 axiom_xml_writer_t * writer,
00776 const axutil_env_t * env);
00777
00778 AXIS2_EXTERN int AXIS2_CALL
00779 axiom_xml_writer_get_type(
00780 axiom_xml_writer_t * writer,
00781 const axutil_env_t * env);
00782
00783 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00784 axiom_xml_writer_write_raw(
00785 axiom_xml_writer_t * writer,
00786 const axutil_env_t * env,
00787 axis2_char_t * content);
00788
00789 AXIS2_EXTERN axis2_status_t AXIS2_CALL
00790 axiom_xml_writer_flush(
00791 axiom_xml_writer_t * writer,
00792 const axutil_env_t * env);
00793
00796 #ifdef __cplusplus
00797 }
00798 #endif
00799
00800 #endif