axiom_xml_reader.h

Go to the documentation of this file.
00001 
00002 /*
00003  *   Copyright 2004,2005 The Apache Software Foundation.
00004  *
00005  *   Licensed under the Apache License, Version 2.0 (the "License");
00006  *   you may not use this file except in compliance with the License.
00007  *   You may obtain a copy of the License at
00008  *
00009  *       http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  *   Unless required by applicable law or agreed to in writing, software
00012  *   distributed under the License is distributed on an "AS IS" BASIS,
00013  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  *   See the License for the specific language governing permissions and
00015  *   limitations under the License.
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 #include <axiom_defines.h>
00030 
00031 #ifdef __cplusplus
00032 extern "C"
00033 {
00034 #endif
00035 
00036     typedef struct axiom_xml_reader_ops axiom_xml_reader_ops_t;
00037     typedef struct axiom_xml_reader axiom_xml_reader_t;
00038 
00052     typedef enum axiom_xml_reader_event_types
00053     {
00054         AXIOM_XML_READER_START_DOCUMENT = 0,
00055         AXIOM_XML_READER_START_ELEMENT,
00056         AXIOM_XML_READER_END_ELEMENT,
00057         AXIOM_XML_READER_SPACE,
00058         AXIOM_XML_READER_EMPTY_ELEMENT,
00059         AXIOM_XML_READER_CHARACTER,
00060         AXIOM_XML_READER_ENTITY_REFERENCE,
00061         AXIOM_XML_READER_COMMENT,
00062         AXIOM_XML_READER_PROCESSING_INSTRUCTION,
00063         AXIOM_XML_READER_CDATA,
00064         AXIOM_XML_READER_DOCUMENT_TYPE
00065     } axiom_xml_reader_event_types;
00066 
00072     struct axiom_xml_reader_ops
00073     {
00074 
00084         int(
00085             AXIS2_CALL
00086             * next)(
00087                 axiom_xml_reader_t * parser,
00088                 const axutil_env_t * env);
00089 
00097         void(
00098             AXIS2_CALL
00099             * free)(
00100                 axiom_xml_reader_t * parser,
00101                 const axutil_env_t * env);
00102 
00110         int(
00111             AXIS2_CALL
00112             * get_attribute_count)(
00113                 axiom_xml_reader_t * parser,
00114                 const axutil_env_t * env);
00115 
00125         axis2_char_t *(
00126             AXIS2_CALL
00127             * get_attribute_name_by_number)(
00128                 axiom_xml_reader_t * parser,
00129                 const axutil_env_t * env,
00130                 int i);
00131 
00142         axis2_char_t *(
00143             AXIS2_CALL
00144             * get_attribute_prefix_by_number)(
00145                 axiom_xml_reader_t * parser,
00146                 const axutil_env_t * env,
00147                 int i);
00148 
00159         axis2_char_t *(
00160             AXIS2_CALL
00161             * get_attribute_value_by_number)(
00162                 axiom_xml_reader_t * parser,
00163                 const axutil_env_t * env,
00164                 int i);
00165 
00176         axis2_char_t *(
00177             AXIS2_CALL
00178             * get_attribute_namespace_by_number)(
00179                 axiom_xml_reader_t * parser,
00180                 const axutil_env_t * env,
00181                 int i);
00182 
00189         axis2_char_t *(
00190             AXIS2_CALL
00191             * get_value)(
00192                 axiom_xml_reader_t * parser,
00193                 const axutil_env_t * env);
00194 
00201         int(
00202             AXIS2_CALL
00203             * get_namespace_count)(
00204                 axiom_xml_reader_t * parser,
00205                 const axutil_env_t * env);
00206 
00216         axis2_char_t *(
00217             AXIS2_CALL
00218             * get_namespace_uri_by_number)(
00219                 axiom_xml_reader_t * parser,
00220                 const axutil_env_t * env,
00221                 int i);
00222 
00232         axis2_char_t *(
00233             AXIS2_CALL
00234             * get_namespace_prefix_by_number)(
00235                 axiom_xml_reader_t * parser,
00236                 const axutil_env_t * env,
00237                 int i);
00238 
00246         axis2_char_t *(
00247             AXIS2_CALL
00248             * get_prefix)(
00249                 axiom_xml_reader_t * parser,
00250                 const axutil_env_t * env);
00251 
00259         axis2_char_t *(
00260             AXIS2_CALL
00261             * get_name)(
00262                 axiom_xml_reader_t * parser,
00263                 const axutil_env_t * env);
00264 
00272         axis2_char_t *(
00273             AXIS2_CALL
00274             * get_pi_target)(
00275                 axiom_xml_reader_t * parser,
00276                 const axutil_env_t * env);
00277 
00285         axis2_char_t *(
00286             AXIS2_CALL
00287             * get_pi_data)(
00288                 axiom_xml_reader_t * parser,
00289                 const axutil_env_t * env);
00290 
00298         axis2_char_t *(
00299             AXIS2_CALL
00300             * get_dtd)(
00301                 axiom_xml_reader_t * parser,
00302                 const axutil_env_t * env);
00303 
00314         void(
00315             AXIS2_CALL
00316             * xml_free)(
00317                 axiom_xml_reader_t * parser,
00318                 const axutil_env_t * env,
00319                 void *data);
00320 
00328         axis2_char_t *(
00329             AXIS2_CALL
00330             * get_char_set_encoding)(
00331                 axiom_xml_reader_t * parser,
00332                 const axutil_env_t * env);
00333 
00335         axis2_char_t *(
00336             AXIS2_CALL
00337             * get_namespace_uri)(
00338                 axiom_xml_reader_t * parser,
00339                 const axutil_env_t * env);
00340 
00341         axis2_char_t *(
00342             AXIS2_CALL
00343             * get_namespace_uri_by_prefix)(
00344                 axiom_xml_reader_t * parser,
00345                 const axutil_env_t * env,
00346                 axis2_char_t * prefix);
00347     };
00348 
00353     struct axiom_xml_reader
00354     {
00355         const axiom_xml_reader_ops_t *ops;
00356     };
00357 
00366     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00367     axiom_xml_reader_create_for_file(
00368         const axutil_env_t * env,
00369         char *filename,
00370         const axis2_char_t * encoding);
00371 
00389     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00390     axiom_xml_reader_create_for_io(
00391         const axutil_env_t * env,
00392         AXIS2_READ_INPUT_CALLBACK,
00393         AXIS2_CLOSE_INPUT_CALLBACK,
00394         void *ctx,
00395         const axis2_char_t * encoding);
00396 
00407     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00408     axiom_xml_reader_create_for_memory(
00409         const axutil_env_t * env,
00410         void *container,
00411         int size,
00412         const axis2_char_t * encoding,
00413         int type);
00414 
00419     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00420     axiom_xml_reader_init(void
00421     );
00422 
00427     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00428     axiom_xml_reader_cleanup(void
00429     );
00430 
00439     AXIS2_EXTERN int AXIS2_CALL
00440     axiom_xml_reader_next(
00441         axiom_xml_reader_t * parser,
00442         const axutil_env_t * env);
00443 
00450     AXIS2_EXTERN void AXIS2_CALL
00451     axiom_xml_reader_free(
00452         axiom_xml_reader_t * parser,
00453         const axutil_env_t * env);
00454 
00462     AXIS2_EXTERN int AXIS2_CALL
00463     axiom_xml_reader_get_attribute_count(
00464         axiom_xml_reader_t * parser,
00465         const axutil_env_t * env);
00466 
00473     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00474     axiom_xml_reader_get_attribute_name_by_number(
00475         axiom_xml_reader_t * parser,
00476         const axutil_env_t * env,
00477         int i);
00478 
00485     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00486     axiom_xml_reader_get_attribute_prefix_by_number(
00487         axiom_xml_reader_t * parser,
00488         const axutil_env_t * env,
00489         int i);
00490 
00497     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00498     axiom_xml_reader_get_attribute_value_by_number(
00499         axiom_xml_reader_t * parser,
00500         const axutil_env_t * env,
00501         int i);
00502 
00509     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00510     axiom_xml_reader_get_attribute_namespace_by_number(
00511         axiom_xml_reader_t * parser,
00512         const axutil_env_t * env,
00513         int i);
00514 
00521     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00522     axiom_xml_reader_get_value(
00523         axiom_xml_reader_t * parser,
00524         const axutil_env_t * env);
00525 
00532     AXIS2_EXTERN int AXIS2_CALL
00533     axiom_xml_reader_get_namespace_count(
00534         axiom_xml_reader_t * parser,
00535         const axutil_env_t * env);
00536 
00543     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00544     axiom_xml_reader_get_namespace_uri_by_number(
00545         axiom_xml_reader_t * parser,
00546         const axutil_env_t * env,
00547         int i);
00548 
00555     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00556     axiom_xml_reader_get_namespace_prefix_by_number(
00557         axiom_xml_reader_t * parser,
00558         const axutil_env_t * env,
00559         int i);
00560 
00567     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00568     axiom_xml_reader_get_prefix(
00569         axiom_xml_reader_t * parser,
00570         const axutil_env_t * env);
00571 
00578     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00579     axiom_xml_reader_get_name(
00580         axiom_xml_reader_t * parser,
00581         const axutil_env_t * env);
00582 
00589     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00590     axiom_xml_reader_get_pi_target(
00591         axiom_xml_reader_t * parser,
00592         const axutil_env_t * env);
00593 
00600     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00601     axiom_xml_reader_get_pi_data(
00602         axiom_xml_reader_t * parser,
00603         const axutil_env_t * env);
00604 
00611     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00612     axiom_xml_reader_get_dtd(
00613         axiom_xml_reader_t * parser,
00614         const axutil_env_t * env);
00615 
00622     AXIS2_EXTERN void AXIS2_CALL
00623     axiom_xml_reader_xml_free(
00624         axiom_xml_reader_t * parser,
00625         const axutil_env_t * env,
00626         void *data);
00627 
00635     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00636     axiom_xml_reader_get_char_set_encoding(
00637         axiom_xml_reader_t * parser,
00638         const axutil_env_t * env);
00639 
00646     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00647     axiom_xml_reader_get_namespace_uri(
00648         axiom_xml_reader_t * parser,
00649         const axutil_env_t * env);
00650 
00658     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00659     axiom_xml_reader_get_namespace_uri_by_prefix(
00660         axiom_xml_reader_t * parser,
00661         const axutil_env_t * env,
00662         axis2_char_t * prefix);
00663 
00666 #ifdef __cplusplus
00667 }
00668 #endif
00669 
00670 #endif                          /* AXIOM_XML_READER_H */
00671 
00672 
00673 
00674 
00675 
00676 
00677 
00678 
00679 
00680 
00681 
00682 
00683 
00684 

Generated on Fri Apr 17 11:49:42 2009 for Axis2/C by  doxygen 1.5.3