axiom_xml_writer.h

Go to the documentation of this file.
00001 /*
00002  *   Copyright 2004,2005 The Apache Software Foundation.
00003  *
00004  *   Licensed under the Apache License, Version 2.0 (the "License");
00005  *   you may not use this file except in compliance with the License.
00006  *   You may obtain a copy of the License at
00007  *
00008  *       http://www.apache.org/licenses/LICENSE-2.0
00009  *
00010  *   Unless required by applicable law or agreed to in writing, software
00011  *   distributed under the License is distributed on an "AS IS" BASIS,
00012  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  *   See the License for the specific language governing permissions and
00014  *   limitations under the License.
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      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 /********************** start macros *******************************************/
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 /* AXIOM_XML_WRITER_H */

Generated on Thu Oct 26 21:11:23 2006 for Axis2/C by  doxygen 1.4.7