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 
00030 #ifdef __cplusplus
00031 extern "C"
00032 {
00033 #endif
00034 
00035     typedef struct axiom_xml_reader_ops axiom_xml_reader_ops_t;
00036     typedef struct axiom_xml_reader axiom_xml_reader_t;
00037 
00051     typedef enum axiom_xml_reader_event_types
00052     {
00053         AXIOM_XML_READER_START_DOCUMENT = 0,
00054         AXIOM_XML_READER_START_ELEMENT,
00055         AXIOM_XML_READER_END_ELEMENT,
00056         AXIOM_XML_READER_SPACE,
00057         AXIOM_XML_READER_EMPTY_ELEMENT,
00058         AXIOM_XML_READER_CHARACTER,
00059         AXIOM_XML_READER_ENTITY_REFERENCE,
00060         AXIOM_XML_READER_COMMENT,
00061         AXIOM_XML_READER_PROCESSING_INSTRUCTION,
00062         AXIOM_XML_READER_CDATA,
00063         AXIOM_XML_READER_DOCUMENT_TYPE
00064     } axiom_xml_reader_event_types;
00065 
00071     struct axiom_xml_reader_ops
00072     {
00073 
00083         int(
00084             AXIS2_CALL
00085             * next)(
00086                 axiom_xml_reader_t * parser,
00087                 const axutil_env_t * env);
00088 
00096         void(
00097             AXIS2_CALL
00098             * free)(
00099                 axiom_xml_reader_t * parser,
00100                 const axutil_env_t * env);
00101 
00109         int(
00110             AXIS2_CALL
00111             * get_attribute_count)(
00112                 axiom_xml_reader_t * parser,
00113                 const axutil_env_t * env);
00114 
00124         axis2_char_t *(
00125             AXIS2_CALL
00126             * get_attribute_name_by_number)(
00127                 axiom_xml_reader_t * parser,
00128                 const axutil_env_t * env,
00129                 int i);
00130 
00141         axis2_char_t *(
00142             AXIS2_CALL
00143             * get_attribute_prefix_by_number)(
00144                 axiom_xml_reader_t * parser,
00145                 const axutil_env_t * env,
00146                 int i);
00147 
00158         axis2_char_t *(
00159             AXIS2_CALL
00160             * get_attribute_value_by_number)(
00161                 axiom_xml_reader_t * parser,
00162                 const axutil_env_t * env,
00163                 int i);
00164 
00175         axis2_char_t *(
00176             AXIS2_CALL
00177             * get_attribute_namespace_by_number)(
00178                 axiom_xml_reader_t * parser,
00179                 const axutil_env_t * env,
00180                 int i);
00181 
00188         axis2_char_t *(
00189             AXIS2_CALL
00190             * get_value)(
00191                 axiom_xml_reader_t * parser,
00192                 const axutil_env_t * env);
00193 
00200         int(
00201             AXIS2_CALL
00202             * get_namespace_count)(
00203                 axiom_xml_reader_t * parser,
00204                 const axutil_env_t * env);
00205 
00215         axis2_char_t *(
00216             AXIS2_CALL
00217             * get_namespace_uri_by_number)(
00218                 axiom_xml_reader_t * parser,
00219                 const axutil_env_t * env,
00220                 int i);
00221 
00231         axis2_char_t *(
00232             AXIS2_CALL
00233             * get_namespace_prefix_by_number)(
00234                 axiom_xml_reader_t * parser,
00235                 const axutil_env_t * env,
00236                 int i);
00237 
00245         axis2_char_t *(
00246             AXIS2_CALL
00247             * get_prefix)(
00248                 axiom_xml_reader_t * parser,
00249                 const axutil_env_t * env);
00250 
00258         axis2_char_t *(
00259             AXIS2_CALL
00260             * get_name)(
00261                 axiom_xml_reader_t * parser,
00262                 const axutil_env_t * env);
00263 
00271         axis2_char_t *(
00272             AXIS2_CALL
00273             * get_pi_target)(
00274                 axiom_xml_reader_t * parser,
00275                 const axutil_env_t * env);
00276 
00284         axis2_char_t *(
00285             AXIS2_CALL
00286             * get_pi_data)(
00287                 axiom_xml_reader_t * parser,
00288                 const axutil_env_t * env);
00289 
00297         axis2_char_t *(
00298             AXIS2_CALL
00299             * get_dtd)(
00300                 axiom_xml_reader_t * parser,
00301                 const axutil_env_t * env);
00302 
00313         void(
00314             AXIS2_CALL
00315             * xml_free)(
00316                 axiom_xml_reader_t * parser,
00317                 const axutil_env_t * env,
00318                 void *data);
00319 
00327         axis2_char_t *(
00328             AXIS2_CALL
00329             * get_char_set_encoding)(
00330                 axiom_xml_reader_t * parser,
00331                 const axutil_env_t * env);
00332 
00334         axis2_char_t *(
00335             AXIS2_CALL
00336             * get_namespace_uri)(
00337                 axiom_xml_reader_t * parser,
00338                 const axutil_env_t * env);
00339 
00340         axis2_char_t *(
00341             AXIS2_CALL
00342             * get_namespace_uri_by_prefix)(
00343                 axiom_xml_reader_t * parser,
00344                 const axutil_env_t * env,
00345                 axis2_char_t * prefix);
00346     };
00347 
00352     struct axiom_xml_reader
00353     {
00354         const axiom_xml_reader_ops_t *ops;
00355     };
00356 
00365     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00366     axiom_xml_reader_create_for_file(
00367         const axutil_env_t * env,
00368         char *filename,
00369         const axis2_char_t * encoding);
00370 
00388     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00389     axiom_xml_reader_create_for_io(
00390         const axutil_env_t * env,
00391         AXIS2_READ_INPUT_CALLBACK,
00392         AXIS2_CLOSE_INPUT_CALLBACK,
00393         void *ctx,
00394         const axis2_char_t * encoding);
00395 
00406     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00407     axiom_xml_reader_create_for_memory(
00408         const axutil_env_t * env,
00409         void *container,
00410         int size,
00411         const axis2_char_t * encoding,
00412         int type);
00413 
00417     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00418     axiom_xml_reader_init(
00419     );
00420 
00424     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00425     axiom_xml_reader_cleanup(
00426     );
00427 
00428     AXIS2_EXTERN int AXIS2_CALL
00429     axiom_xml_reader_next(
00430         axiom_xml_reader_t * parser,
00431         const axutil_env_t * env);
00432 
00433     AXIS2_EXTERN void AXIS2_CALL
00434     axiom_xml_reader_free(
00435         axiom_xml_reader_t * parser,
00436         const axutil_env_t * env);
00437 
00438     AXIS2_EXTERN int AXIS2_CALL
00439     axiom_xml_reader_get_attribute_count(
00440         axiom_xml_reader_t * parser,
00441         const axutil_env_t * env);
00442 
00443     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00444 
00445     axiom_xml_reader_get_attribute_name_by_number(
00446         axiom_xml_reader_t * parser,
00447         const axutil_env_t * env,
00448         int i);
00449 
00450     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00451 
00452     axiom_xml_reader_get_attribute_prefix_by_number(
00453         axiom_xml_reader_t * parser,
00454         const axutil_env_t * env,
00455         int i);
00456 
00457     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00458 
00459     axiom_xml_reader_get_attribute_value_by_number(
00460         axiom_xml_reader_t * parser,
00461         const axutil_env_t * env,
00462         int i);
00463 
00464     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00465 
00466     axiom_xml_reader_get_attribute_namespace_by_number(
00467         axiom_xml_reader_t * parser,
00468         const axutil_env_t * env,
00469         int i);
00470 
00471     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00472     axiom_xml_reader_get_value(
00473         axiom_xml_reader_t * parser,
00474         const axutil_env_t * env);
00475 
00476     AXIS2_EXTERN int AXIS2_CALL
00477     axiom_xml_reader_get_namespace_count(
00478         axiom_xml_reader_t * parser,
00479         const axutil_env_t * env);
00480 
00481     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00482 
00483     axiom_xml_reader_get_namespace_uri_by_number(
00484         axiom_xml_reader_t * parser,
00485         const axutil_env_t * env,
00486         int i);
00487 
00488     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00489 
00490     axiom_xml_reader_get_namespace_prefix_by_number(
00491         axiom_xml_reader_t * parser,
00492         const axutil_env_t * env,
00493         int i);
00494 
00495     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00496     axiom_xml_reader_get_prefix(
00497         axiom_xml_reader_t * parser,
00498         const axutil_env_t * env);
00499 
00500     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00501     axiom_xml_reader_get_name(
00502         axiom_xml_reader_t * parser,
00503         const axutil_env_t * env);
00504 
00505     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00506     axiom_xml_reader_get_pi_target(
00507         axiom_xml_reader_t * parser,
00508         const axutil_env_t * env);
00509 
00510     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00511     axiom_xml_reader_get_pi_data(
00512         axiom_xml_reader_t * parser,
00513         const axutil_env_t * env);
00514 
00515     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00516     axiom_xml_reader_get_dtd(
00517         axiom_xml_reader_t * parser,
00518         const axutil_env_t * env);
00519 
00520     AXIS2_EXTERN void AXIS2_CALL
00521     axiom_xml_reader_xml_free(
00522         axiom_xml_reader_t * parser,
00523         const axutil_env_t * env,
00524         void *data);
00525 
00526     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00527 
00528     axiom_xml_reader_get_char_set_encoding(
00529         axiom_xml_reader_t * parser,
00530         const axutil_env_t * env);
00531 
00532     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00533     axiom_xml_reader_get_namespace_uri(
00534         axiom_xml_reader_t * parser,
00535         const axutil_env_t * env);
00536 
00537     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00538 
00539     axiom_xml_reader_get_namespace_uri_by_prefix(
00540         axiom_xml_reader_t * parser,
00541         const axutil_env_t * env,
00542         axis2_char_t * prefix);
00543 
00546 #ifdef __cplusplus
00547 }
00548 #endif
00549 
00550 #endif                          /* AXIOM_XML_READER_H */

Generated on Wed Feb 27 19:43:03 2008 for Axis2/C by  doxygen 1.5.5