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 
00418     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00419     axiom_xml_reader_init(
00420     );
00421 
00425     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00426     axiom_xml_reader_cleanup(
00427     );
00428 
00437     AXIS2_EXTERN int AXIS2_CALL
00438     axiom_xml_reader_next(
00439         axiom_xml_reader_t * parser,
00440         const axutil_env_t * env);
00441 
00448     AXIS2_EXTERN void AXIS2_CALL
00449     axiom_xml_reader_free(
00450         axiom_xml_reader_t * parser,
00451         const axutil_env_t * env);
00452 
00460     AXIS2_EXTERN int AXIS2_CALL
00461     axiom_xml_reader_get_attribute_count(
00462         axiom_xml_reader_t * parser,
00463         const axutil_env_t * env);
00464 
00471     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00472     axiom_xml_reader_get_attribute_name_by_number(
00473         axiom_xml_reader_t * parser,
00474         const axutil_env_t * env,
00475         int i);
00476 
00483     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00484     axiom_xml_reader_get_attribute_prefix_by_number(
00485         axiom_xml_reader_t * parser,
00486         const axutil_env_t * env,
00487         int i);
00488 
00495     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00496     axiom_xml_reader_get_attribute_value_by_number(
00497         axiom_xml_reader_t * parser,
00498         const axutil_env_t * env,
00499         int i);
00500 
00507     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00508     axiom_xml_reader_get_attribute_namespace_by_number(
00509         axiom_xml_reader_t * parser,
00510         const axutil_env_t * env,
00511         int i);
00512 
00519     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00520     axiom_xml_reader_get_value(
00521         axiom_xml_reader_t * parser,
00522         const axutil_env_t * env);
00523 
00530     AXIS2_EXTERN int AXIS2_CALL
00531     axiom_xml_reader_get_namespace_count(
00532         axiom_xml_reader_t * parser,
00533         const axutil_env_t * env);
00534 
00541     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00542     axiom_xml_reader_get_namespace_uri_by_number(
00543         axiom_xml_reader_t * parser,
00544         const axutil_env_t * env,
00545         int i);
00546 
00553     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00554     axiom_xml_reader_get_namespace_prefix_by_number(
00555         axiom_xml_reader_t * parser,
00556         const axutil_env_t * env,
00557         int i);
00558 
00565     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00566     axiom_xml_reader_get_prefix(
00567         axiom_xml_reader_t * parser,
00568         const axutil_env_t * env);
00569 
00576     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00577     axiom_xml_reader_get_name(
00578         axiom_xml_reader_t * parser,
00579         const axutil_env_t * env);
00580 
00587     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00588     axiom_xml_reader_get_pi_target(
00589         axiom_xml_reader_t * parser,
00590         const axutil_env_t * env);
00591 
00598     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00599     axiom_xml_reader_get_pi_data(
00600         axiom_xml_reader_t * parser,
00601         const axutil_env_t * env);
00602 
00609     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00610     axiom_xml_reader_get_dtd(
00611         axiom_xml_reader_t * parser,
00612         const axutil_env_t * env);
00613 
00620     AXIS2_EXTERN void AXIS2_CALL
00621     axiom_xml_reader_xml_free(
00622         axiom_xml_reader_t * parser,
00623         const axutil_env_t * env,
00624         void *data);
00625 
00633     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00634     axiom_xml_reader_get_char_set_encoding(
00635         axiom_xml_reader_t * parser,
00636         const axutil_env_t * env);
00637 
00644     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00645     axiom_xml_reader_get_namespace_uri(
00646         axiom_xml_reader_t * parser,
00647         const axutil_env_t * env);
00648 
00656     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00657     axiom_xml_reader_get_namespace_uri_by_prefix(
00658         axiom_xml_reader_t * parser,
00659         const axutil_env_t * env,
00660         axis2_char_t * prefix);
00661 
00664 #ifdef __cplusplus
00665 }
00666 #endif
00667 
00668 #endif                          /* AXIOM_XML_READER_H */
00669 
00670 
00671 
00672 
00673 
00674 
00675 
00676 
00677 
00678 
00679 
00680 
00681 
00682 

Generated on Sat May 3 10:44:33 2008 for Axis2/C by  doxygen 1.5.5