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 
00367     axiom_xml_reader_create_for_file(
00368         const axutil_env_t * env,
00369         char *filename,
00370         const axis2_char_t * encoding);
00371 
00387     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00388 
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 
00404     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00405 
00406     axiom_xml_reader_create_for_memory(
00407         const axutil_env_t * env,
00408         void *container,
00409         int size,
00410         const axis2_char_t * encoding,
00411         int type);
00412 
00416     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00417     axiom_xml_reader_init(
00418     );
00419 
00423     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00424     axiom_xml_reader_cleanup(
00425     );
00426 
00427     AXIS2_EXTERN int AXIS2_CALL
00428     axiom_xml_reader_next(
00429         axiom_xml_reader_t * parser,
00430         const axutil_env_t * env);
00431 
00432     AXIS2_EXTERN void AXIS2_CALL
00433     axiom_xml_reader_free(
00434         axiom_xml_reader_t * parser,
00435         const axutil_env_t * env);
00436 
00437     AXIS2_EXTERN int AXIS2_CALL
00438     axiom_xml_reader_get_attribute_count(
00439         axiom_xml_reader_t * parser,
00440         const axutil_env_t * env);
00441 
00442     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00443 
00444     axiom_xml_reader_get_attribute_name_by_number(
00445         axiom_xml_reader_t * parser,
00446         const axutil_env_t * env,
00447         int i);
00448 
00449     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00450 
00451     axiom_xml_reader_get_attribute_prefix_by_number(
00452         axiom_xml_reader_t * parser,
00453         const axutil_env_t * env,
00454         int i);
00455 
00456     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00457 
00458     axiom_xml_reader_get_attribute_value_by_number(
00459         axiom_xml_reader_t * parser,
00460         const axutil_env_t * env,
00461         int i);
00462 
00463     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00464 
00465     axiom_xml_reader_get_attribute_namespace_by_number(
00466         axiom_xml_reader_t * parser,
00467         const axutil_env_t * env,
00468         int i);
00469 
00470     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00471     axiom_xml_reader_get_value(
00472         axiom_xml_reader_t * parser,
00473         const axutil_env_t * env);
00474 
00475     AXIS2_EXTERN int AXIS2_CALL
00476     axiom_xml_reader_get_namespace_count(
00477         axiom_xml_reader_t * parser,
00478         const axutil_env_t * env);
00479 
00480     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00481 
00482     axiom_xml_reader_get_namespace_uri_by_number(
00483         axiom_xml_reader_t * parser,
00484         const axutil_env_t * env,
00485         int i);
00486 
00487     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00488 
00489     axiom_xml_reader_get_namespace_prefix_by_number(
00490         axiom_xml_reader_t * parser,
00491         const axutil_env_t * env,
00492         int i);
00493 
00494     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00495     axiom_xml_reader_get_prefix(
00496         axiom_xml_reader_t * parser,
00497         const axutil_env_t * env);
00498 
00499     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00500     axiom_xml_reader_get_name(
00501         axiom_xml_reader_t * parser,
00502         const axutil_env_t * env);
00503 
00504     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00505     axiom_xml_reader_get_pi_target(
00506         axiom_xml_reader_t * parser,
00507         const axutil_env_t * env);
00508 
00509     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00510     axiom_xml_reader_get_pi_data(
00511         axiom_xml_reader_t * parser,
00512         const axutil_env_t * env);
00513 
00514     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00515     axiom_xml_reader_get_dtd(
00516         axiom_xml_reader_t * parser,
00517         const axutil_env_t * env);
00518 
00519     AXIS2_EXTERN void AXIS2_CALL
00520     axiom_xml_reader_xml_free(
00521         axiom_xml_reader_t * parser,
00522         const axutil_env_t * env,
00523         void *data);
00524 
00525     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00526 
00527     axiom_xml_reader_get_char_set_encoding(
00528         axiom_xml_reader_t * parser,
00529         const axutil_env_t * env);
00530 
00531     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00532     axiom_xml_reader_get_namespace_uri(
00533         axiom_xml_reader_t * parser,
00534         const axutil_env_t * env);
00535 
00536     AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00537 
00538     axiom_xml_reader_get_namespace_uri_by_prefix(
00539         axiom_xml_reader_t * parser,
00540         const axutil_env_t * env,
00541         axis2_char_t * prefix);
00542 
00545 #ifdef __cplusplus
00546 }
00547 #endif
00548 
00549 #endif                          /* AXIOM_XML_READER_H */

Generated on Tue Jan 8 01:23:15 2008 for Axis2/C by  doxygen 1.5.1