| |
| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| #ifndef GUTHTHILA_H |
| #define GUTHTHILA_H |
| |
| #include <guththila_defines.h> |
| #include <guththila_token.h> |
| #include <guththila_reader.h> |
| #include <guththila_xml_writer.h> |
| #include <guththila_attribute.h> |
| #include <guththila_namespace.h> |
| #include <guththila_buffer.h> |
| #include <guththila_stack.h> |
| #include <guththila_error.h> |
| |
| #include <axutil_utils.h> |
| |
| /* |
| All the functions in this library does not check weather the given arguments are NULL. |
| It is the responsblity of the user to check weather the arguments contain NULL values. |
| */ |
| EXTERN_C_START() enum guththila_status |
| { |
| S_0 = 0, |
| S_1, |
| S_2, |
| S_3 |
| }; |
| |
| enum guththila_UTF16_endianess |
| { |
| None = 1, |
| LE, |
| BE |
| }; |
| |
| typedef enum guththila_type |
| { |
| type_file_name = 0, |
| type_memory_buffer, |
| type_reader, |
| type_io |
| } guththila_type_t; |
| |
| enum guththila_event_types |
| { |
| GUTHTHILA_START_DOCUMENT =0, |
| GUTHTHILA_END_ELEMENT, |
| GUTHTHILA_CHARACTER, |
| GUTHTHILA_ENTITY_REFERANCE, |
| GUTHTHILA_COMMENT, |
| GUTHTHILA_SPACE, |
| GUTHTHILA_START_ELEMENT, |
| GUTHTHILA_EMPTY_ELEMENT |
| }; |
| |
| typedef struct guththila_s |
| { |
| |
| guththila_tok_list_t tokens; |
| |
| guththila_buffer_t buffer; |
| |
| guththila_reader_t *reader; |
| |
| guththila_token_t *prefix; |
| |
| guththila_token_t *name; |
| |
| guththila_token_t *value; |
| |
| guththila_stack_t elem; |
| |
| guththila_stack_t attrib; |
| |
| guththila_stack_t namesp; |
| |
| int is_whitespace; |
| |
| int is_char; |
| |
| int unicode_state; |
| |
| int status; |
| |
| int guththila_event; |
| |
| size_t next; |
| |
| int last_start; |
| |
| guththila_token_t *temp_prefix; |
| |
| guththila_token_t *temp_name; |
| |
| guththila_token_t *temp_tok; |
| } guththila_t; |
| |
| |
| typedef struct guththila_elem_namesp_s |
| { |
| guththila_namespace_t *namesp; |
| int no; |
| int size; |
| } guththila_elem_namesp_t; |
| |
| typedef struct guththila_element_s |
| { |
| guththila_token_t *name; |
| |
| guththila_token_t *prefix; |
| |
| int is_namesp; |
| } guththila_element_t; |
| |
| GUTHTHILA_EXPORT int GUTHTHILA_CALL |
| guththila_init(guththila_t * m, void *reader, |
| const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_t * GUTHTHILA_CALL |
| guththila_create(void *reader, const axutil_env_t *env); |
| |
| GUTHTHILA_EXPORT void GUTHTHILA_CALL |
| guththila_free(guththila_t * m, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT int GUTHTHILA_CALL |
| guththila_un_init(guththila_t * m, const axutil_env_t * env); |
| |
| typedef void(GUTHTHILA_CALL * guththila_error_func)(void *arg, |
| const guththila_char_t *msg, |
| guththila_error_level level, |
| void *locator); |
| |
| /* |
| Public functions for reading XML documents |
| */ |
| GUTHTHILA_EXPORT int GUTHTHILA_CALL |
| guththila_next(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT int GUTHTHILA_CALL |
| guththila_get_attribute_count(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t * GUTHTHILA_CALL |
| guththila_get_attribute_name(guththila_t * p, guththila_attr_t * att, |
| const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t * GUTHTHILA_CALL |
| guththila_get_attribute_value(guththila_t * p, |
| guththila_attr_t * att, |
| const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_attribute_prefix(guththila_t * p, |
| guththila_attr_t * att, |
| const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_attr_t *GUTHTHILA_CALL |
| guththila_get_attribute(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_attribute_name_by_number(guththila_t * p, int i, |
| const axutil_env_t *env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_attribute_value_by_number(guththila_t * p, int i, |
| const axutil_env_t *env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_attribute_prefix_by_number(guththila_t * p, int i, |
| const axutil_env_t *env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_name(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_prefix(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_value(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_namespace_t *GUTHTHILA_CALL |
| guththila_get_namespace(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT int GUTHTHILA_CALL |
| guththila_get_namespace_count(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t * GUTHTHILA_CALL |
| guththila_get_namespace_uri(guththila_t * p, guththila_namespace_t * ns, |
| const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_namespace_prefix(guththila_t * p, guththila_namespace_t * ns, |
| const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_namespace_prefix_by_number(guththila_t * p, int i, |
| const axutil_env_t *env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_namespace_uri_by_number(guththila_t * p, int i, |
| const axutil_env_t *env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_attribute_namespace_by_number(guththila_t *p, int i, |
| const axutil_env_t *env); |
| |
| GUTHTHILA_EXPORT guththila_char_t *GUTHTHILA_CALL |
| guththila_get_encoding(guththila_t * p, const axutil_env_t * env); |
| |
| GUTHTHILA_EXPORT void GUTHTHILA_CALL |
| guththila_set_error_handler(guththila_t * m, guththila_error_func, |
| const axutil_env_t * env); |
| EXTERN_C_END() |
| #endif |
| |