axiom_xml_reader.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_READER_H
00019 #define AXIOM_XML_READER_H
00020 
00026 #include <axutil_env.h>
00027 #include <axutil_utils.h>
00028 
00029 #ifdef __cplusplus
00030 extern "C"
00031 {
00032 #endif
00033 
00034     typedef struct axiom_xml_reader_ops axiom_xml_reader_ops_t;
00035     typedef struct axiom_xml_reader axiom_xml_reader_t;
00036 
00050     typedef enum axiom_xml_reader_event_types
00051     {
00052         AXIOM_XML_READER_START_DOCUMENT = 0,
00053         AXIOM_XML_READER_START_ELEMENT,
00054         AXIOM_XML_READER_END_ELEMENT,
00055         AXIOM_XML_READER_SPACE,
00056         AXIOM_XML_READER_EMPTY_ELEMENT,
00057         AXIOM_XML_READER_CHARACTER,
00058         AXIOM_XML_READER_ENTITY_REFERENCE,
00059         AXIOM_XML_READER_COMMENT,
00060         AXIOM_XML_READER_PROCESSING_INSTRUCTION,
00061         AXIOM_XML_READER_CDATA,
00062         AXIOM_XML_READER_DOCUMENT_TYPE
00063     }axiom_xml_reader_event_types;
00064 
00070     struct axiom_xml_reader_ops
00071     {
00081         int(AXIS2_CALL *
00082             next)(axiom_xml_reader_t *parser,
00083                 const axutil_env_t *env);
00084 
00092         void (AXIS2_CALL *
00093         free)(axiom_xml_reader_t *parser,
00094                 const axutil_env_t *env);
00102         int(AXIS2_CALL *
00103             get_attribute_count)(axiom_xml_reader_t *parser,
00104                 const axutil_env_t *env);
00105 
00106 
00116         axis2_char_t*(AXIS2_CALL *
00117             get_attribute_name_by_number)(axiom_xml_reader_t *parser,
00118                 const axutil_env_t *env,
00119                 int i);
00120 
00131         axis2_char_t*(AXIS2_CALL *
00132             get_attribute_prefix_by_number)(axiom_xml_reader_t *parser,
00133                 const axutil_env_t *env,
00134                 int i);
00135 
00146         axis2_char_t*(AXIS2_CALL *
00147             get_attribute_value_by_number)(axiom_xml_reader_t *parser,
00148                  const axutil_env_t *env,
00149                  int i);
00150 
00161         axis2_char_t*(AXIS2_CALL *
00162             get_attribute_namespace_by_number)(axiom_xml_reader_t *parser,
00163                  const axutil_env_t *env,
00164                  int i);
00165 
00172         axis2_char_t*(AXIS2_CALL *
00173             get_value)(axiom_xml_reader_t *parser,
00174                  const axutil_env_t *env);
00175 
00182         int(AXIS2_CALL *
00183             get_namespace_count)(axiom_xml_reader_t *parser,
00184                 const axutil_env_t *env);
00194         axis2_char_t*(AXIS2_CALL *
00195             get_namespace_uri_by_number)(axiom_xml_reader_t *parser,
00196                  const axutil_env_t *env,
00197                  int i);
00207         axis2_char_t*(AXIS2_CALL *
00208             get_namespace_prefix_by_number)(axiom_xml_reader_t *parser,
00209                  const axutil_env_t *env,
00210                  int i);
00211 
00219         axis2_char_t*(AXIS2_CALL *
00220             get_prefix)(axiom_xml_reader_t *parser,
00221                  const axutil_env_t *env);
00222 
00230         axis2_char_t*(AXIS2_CALL *
00231             get_name)(axiom_xml_reader_t *parser,
00232                  const axutil_env_t *env);
00233 
00241         axis2_char_t*(AXIS2_CALL *
00242              get_pi_target)(axiom_xml_reader_t *parser,
00243                   const axutil_env_t *env);
00244 
00252         axis2_char_t*(AXIS2_CALL *
00253             get_pi_data)(axiom_xml_reader_t *parser,
00254                  const axutil_env_t *env);
00255 
00263         axis2_char_t*(AXIS2_CALL *
00264             get_dtd)(axiom_xml_reader_t *parser,
00265                  const axutil_env_t *env);
00266 
00277         void(AXIS2_CALL *
00278             xml_free)(axiom_xml_reader_t *parser,
00279                  const axutil_env_t *env,
00280                  void *data);
00281 
00289         axis2_char_t*(AXIS2_CALL *
00290             get_char_set_encoding)(axiom_xml_reader_t *parser,
00291                  const axutil_env_t *env);
00292 
00294         axis2_char_t*(AXIS2_CALL *
00295             get_namespace_uri)(axiom_xml_reader_t *parser,
00296                  const axutil_env_t *env);
00297 
00298         axis2_char_t*(AXIS2_CALL *
00299             get_namespace_uri_by_prefix)(axiom_xml_reader_t *parser,
00300                  const axutil_env_t *env,
00301                  axis2_char_t *prefix);
00302     };
00303 
00308     struct axiom_xml_reader
00309     {
00310         const axiom_xml_reader_ops_t *ops;
00311     };
00312 
00321     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00322     axiom_xml_reader_create_for_file(const axutil_env_t *env,
00323         char *filename,
00324         const axis2_char_t *encoding);
00325 
00341     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00342     axiom_xml_reader_create_for_io(const axutil_env_t *env,
00343         AXIS2_READ_INPUT_CALLBACK,
00344         AXIS2_CLOSE_INPUT_CALLBACK,
00345         void *ctx,
00346         const axis2_char_t *encoding);
00347 
00356     AXIS2_EXTERN axiom_xml_reader_t *AXIS2_CALL
00357     axiom_xml_reader_create_for_memory(const axutil_env_t *env,
00358         void *container,
00359         int size,
00360         const axis2_char_t *encoding,
00361         int type);
00362 
00366     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00367     axiom_xml_reader_init();
00368 
00372     AXIS2_EXTERN axis2_status_t AXIS2_CALL
00373     axiom_xml_reader_cleanup();
00374 
00375 
00376 AXIS2_EXTERN int AXIS2_CALL
00377 axiom_xml_reader_next(axiom_xml_reader_t *parser,
00378     const axutil_env_t *env);
00379 
00380 AXIS2_EXTERN void AXIS2_CALL 
00381 axiom_xml_reader_free(axiom_xml_reader_t *parser,
00382     const axutil_env_t *env);
00383 
00384 AXIS2_EXTERN int AXIS2_CALL
00385 axiom_xml_reader_get_attribute_count(axiom_xml_reader_t *parser,
00386     const axutil_env_t *env);
00387 
00388 AXIS2_EXTERN axis2_char_t *AXIS2_CALL
00389 axiom_xml_reader_get_attribute_name_by_number(axiom_xml_reader_t *parser,
00390     const axutil_env_t *env,
00391     int i);
00392 
00393 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00394 axiom_xml_reader_get_attribute_prefix_by_number(axiom_xml_reader_t *parser,
00395     const axutil_env_t *env,
00396     int i);
00397 
00398 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00399 axiom_xml_reader_get_attribute_value_by_number(axiom_xml_reader_t *parser,
00400      const axutil_env_t *env,
00401      int i);
00402 
00403 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00404 axiom_xml_reader_get_attribute_namespace_by_number(axiom_xml_reader_t *parser,
00405      const axutil_env_t *env,
00406      int i);
00407 
00408 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00409 axiom_xml_reader_get_value(axiom_xml_reader_t *parser,
00410      const axutil_env_t *env);
00411 
00412 AXIS2_EXTERN int AXIS2_CALL 
00413 axiom_xml_reader_get_namespace_count(axiom_xml_reader_t *parser,
00414     const axutil_env_t *env);
00415 
00416 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00417 axiom_xml_reader_get_namespace_uri_by_number(axiom_xml_reader_t *parser,
00418      const axutil_env_t *env,
00419      int i);
00420 
00421 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00422 axiom_xml_reader_get_namespace_prefix_by_number(axiom_xml_reader_t *parser,
00423      const axutil_env_t *env,
00424      int i);
00425 
00426 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00427 axiom_xml_reader_get_prefix(axiom_xml_reader_t *parser,
00428      const axutil_env_t *env);
00429 
00430 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00431 axiom_xml_reader_get_name(axiom_xml_reader_t *parser,
00432      const axutil_env_t *env);
00433 
00434 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00435 axiom_xml_reader_get_pi_target(axiom_xml_reader_t *parser,
00436       const axutil_env_t *env);
00437 
00438 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00439 axiom_xml_reader_get_pi_data(axiom_xml_reader_t *parser,
00440      const axutil_env_t *env);
00441 
00442 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00443 axiom_xml_reader_get_dtd(axiom_xml_reader_t *parser,
00444      const axutil_env_t *env);
00445 
00446 AXIS2_EXTERN void AXIS2_CALL 
00447 axiom_xml_reader_xml_free(axiom_xml_reader_t *parser,
00448      const axutil_env_t *env,
00449      void *data);
00450 
00451 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00452 axiom_xml_reader_get_char_set_encoding(axiom_xml_reader_t *parser,
00453      const axutil_env_t *env);
00454 
00455 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00456 axiom_xml_reader_get_namespace_uri(axiom_xml_reader_t *parser,
00457      const axutil_env_t *env);
00458 
00459 AXIS2_EXTERN axis2_char_t *AXIS2_CALL 
00460 axiom_xml_reader_get_namespace_uri_by_prefix(axiom_xml_reader_t *parser,
00461      const axutil_env_t *env,
00462      axis2_char_t *prefix);
00463 
00467 #ifdef __cplusplus
00468 }
00469 #endif
00470 
00471 #endif  /* AXIOM_XML_READER_H */

Generated on Thu May 3 12:31:01 2007 for Axis2/C by  doxygen 1.4.6