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 <axis2_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 AXIS2_DECLARE_DATA struct axiom_xml_writer_ops
00050 {
00059 axis2_status_t (AXIS2_CALL *
00060 free)(axiom_xml_writer_t *writer,
00061 const axis2_env_t *env);
00071 axis2_status_t (AXIS2_CALL *
00072 write_start_element)(axiom_xml_writer_t *writer,
00073 const axis2_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 axis2_env_t *env);
00097 axis2_status_t (AXIS2_CALL *
00098 write_start_element_with_namespace)(axiom_xml_writer_t *writer,
00099 const axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_env_t *env);
00179 axis2_status_t (AXIS2_CALL *
00180 write_end_document)(axiom_xml_writer_t *writer,
00181 const axis2_env_t *env);
00191 axis2_status_t (AXIS2_CALL *
00192 write_attribute)(axiom_xml_writer_t *writer,
00193 const axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_env_t *env);
00341
00342
00350 axis2_status_t (AXIS2_CALL *
00351 write_start_document_with_version)(axiom_xml_writer_t *writer,
00352 const axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_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 axis2_env_t *env);
00436
00437 int (AXIS2_CALL *
00438 get_type)(axiom_xml_writer_t *writer,
00439 const axis2_env_t *env);
00440 };
00441
00447 struct axiom_xml_writer
00448 {
00449 axiom_xml_writer_ops_t *ops;
00450 };
00451
00456 AXIS2_EXTERN axiom_xml_writer_t * AXIS2_CALL
00457 axiom_xml_writer_create(const axis2_env_t *env,
00458 axis2_char_t *filename,
00459 axis2_char_t *encoding,
00460 int is_prefix_default,
00461 int compression);
00462
00463 AXIS2_EXTERN axiom_xml_writer_t * AXIS2_CALL
00464 axiom_xml_writer_create_for_memory(const axis2_env_t *env,
00465 axis2_char_t *encoding,
00466 int is_prefix_default,
00467 int compression,
00468 int type);
00469
00470
00471
00472 #define AXIOM_XML_WRITER_FREE(writer, env) \
00473 ((writer)->ops->free(writer,env))
00474
00475 #define AXIOM_XML_WRITER_WRITE_START_ELEMENT(writer, env, localname) \
00476 ((writer)->ops->write_start_element(writer, env, localname))
00477
00478 #define AXIOM_XML_WRITER_END_START_ELEMENT(writer, env) \
00479 ((writer)->ops->end_start_element(writer,env))
00480
00481
00482 #define AXIOM_XML_WRITER_WRITE_START_ELEMENT_WITH_NAMESPACE(\
00483 writer, env, localname, namespace_uri)\
00484 ((writer)->ops->write_start_element_with_namespace(\
00485 writer, env, localname, namespace_uri))
00486
00487 #define AXIOM_XML_WRITER_WRITE_START_ELEMENT_WITH_NAMESPACE_PREFIX(\
00488 writer, env, localname, namespace_uri, prefix) \
00489 ((writer)->ops->write_start_element_with_namespace_prefix(\
00490 writer,env,localname,namespace_uri,prefix))
00491
00492
00493 #define AXIOM_XML_WRITER_WRITE_EMPTY_ELEMENT(writer,env,localname) \
00494 ((writer)->ops->write_empty_element(writer,env,localname))
00495
00496 #define AXIOM_XML_WRITER_WRITE_EMPTY_ELEMENT_WITH_NAMESPACE(\
00497 writer, env,localname,namespace_uri) \
00498 ((writer)->ops->write_empty_element_with_namespace(writer,env,localname,namespace_uri))
00499
00500 #define AXIOM_XML_WRITER_WRITE_EMPTY_ELEMENT_WITH_NAMESPACE_PREFIX(\
00501 writer, env, localname, namespace_uri, prefix) \
00502 ((writer)->ops->write_empty_element_with_namespace_prefix(\
00503 writer,env,localname,namespace_uri, prefix))
00504
00505 #define AXIOM_XML_WRITER_WRITE_END_ELEMENT(writer, env) \
00506 ((writer)->ops->write_end_element(writer,env))
00507
00508
00509 #define AXIOM_XML_WRITER_WRITE_END_DOCUMENT(writer, env) \
00510 ((writer)->ops->write_end_document(writer,env))
00511
00512 #define AXIOM_XML_WRITER_WRITE_ATTRIBUTE(writer, env, localname, value) \
00513 ((writer)->ops->write_attribute(writer,env, localname, value))
00514
00515 #define AXIOM_XML_WRITER_WRITE_ATTRIBUTE_WITH_NAMESPACE(\
00516 writer, env, localname, value, namespace_uri) \
00517 ((writer)->ops->write_attribute_with_namespace(\
00518 writer,env, localname, value,namespace_uri))
00519
00520 #define AXIOM_XML_WRITER_WRITE_ATTRIBUTE_WITH_NAMESPACE_PREFIX(\
00521 writer, env, localname, value, namespace_uri, prefix) \
00522 ((writer)->ops->write_attribute_with_namespace_prefix(\
00523 writer,env, localname, value,namespace_uri, prefix))
00524
00525 #define AXIOM_XML_WRITER_WRITE_NAMESPACE(writer, env, prefix , namespace_uri) \
00526 ((writer)->ops->write_namespace(writer, env, prefix, namespace_uri))
00527
00528 #define AXIOM_XML_WRITER_WRITE_DEFAULT_NAMESPACE(writer, env, namespace_uri) \
00529 ((writer)->ops->write_default_namespace(writer, env, namespace_uri))
00530
00531 #define AXIOM_XML_WRITER_WRITE_COMMENT(writer, env, value) \
00532 ((writer)->ops->write_comment(writer, env, value))
00533
00534 #define AXIOM_XML_WRITER_WRITE_PROCESSING_INSTRUCTION(writer, env, target) \
00535 ((writer)->ops->write_processing_instruction(writer, env, target))
00536
00537 #define AXIOM_XML_WRITER_WRITE_PROCESSING_INSTRUCTION_DATA(writer, env, target, data) \
00538 ((writer)->ops->write_processing_instruction_data(writer, env, target, data))
00539
00540 #define AXIOM_XML_WRITER_WRITE_CDATA(writer, env, data) \
00541 ((writer)->ops->write_cdata(writer, env, data))
00542
00543 #define AXIOM_XML_WRITER_WRITE_DTD(writer, env, dtd) \
00544 ((writer)->ops->write_cdata(writer, env, dtd))
00545
00546 #define AXIOM_XML_WRITER_WRITE_ENTITY_REF(writer, env, entity_ref) \
00547 ((writer)->ops->write_entity_ref(writer, env, entity_ref))
00548
00549 #define AXIOM_XML_WRITER_WRITE_START_DOCUMENT(writer, env) \
00550 ((writer)->ops->write_start_document(writer,env))
00551
00552 #define AXIOM_XML_WRITER_WRITE_START_DOCUMENT_WITH_VERSION(writer, env, version) \
00553 ((writer)->ops->write_start_document_with_version(writer, env, version))
00554
00555 #define AXIOM_XML_WRITER_WRITE_START_DOCUMENT_WITH_VERSION_ENCODING(\
00556 writer, env, version, encoding) \
00557 ((writer)->ops->write_start_document_with_version_encoding(\
00558 writer, env, version, encoding))
00559
00560 #define AXIOM_XML_WRITER_WRITE_CHARACTERS(writer, env, text) \
00561 ((writer)->ops->write_characters(writer, env, text))
00562
00563 #define AXIOM_XML_WRITER_GET_PREFIX(writer, env, uri) \
00564 ((writer)->ops->get_prefix(writer, env, uri))
00565
00566 #define AXIOM_XML_WRITER_SET_PREFIX(writer, env, prefix, uri) \
00567 ((writer)->ops->set_prefix(writer, env, prefix, uri))
00568
00569 #define AXIOM_XML_WRITER_SET_DEFAULT_PREFIX(writer, env, uri) \
00570 ((writer)->ops->set_default_prefix(writer, env, uri))
00571
00572 #define AXIOM_XML_WRITER_WRITE_ENCODED(writer, env, text, in_attr) \
00573 ((writer)->ops->write_encoded(writer, env, text, in_attr))
00574
00575 #define AXIOM_XML_WRITER_GET_XML(writer, env) \
00576 ((writer)->ops->get_xml(writer, env))
00577
00578 #define AXIOM_XML_WRITER_GET_TYPE(writer, env) \
00579 ((writer)->ops->get_type(writer, env))
00580
00584 #ifdef __cplusplus
00585 }
00586 #endif
00587
00588 #endif