Annotation of gpl/axl/src/axl_dtd.h, revision 1.1.1.1

1.1       misho       1: /*
                      2:  *  LibAxl:  Another XML library
                      3:  *  Copyright (C) 2006 Advanced Software Production Line, S.L.
                      4:  *
                      5:  *  This program is free software; you can redistribute it and/or
                      6:  *  modify it under the terms of the GNU Lesser General Public License
                      7:  *  as published by the Free Software Foundation; either version 2.1 of
                      8:  *  the License, or (at your option) any later version.
                      9:  *
                     10:  *  This program is distributed in the hope that it will be useful,
                     11:  *  but WITHOUT ANY WARRANTY; without even the implied warranty of 
                     12:  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
                     13:  *  GNU Lesser General Public License for more details.
                     14:  *
                     15:  *  You should have received a copy of the GNU Lesser General Public
                     16:  *  License along with this program; if not, write to the Free
                     17:  *  Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
                     18:  *  02111-1307 USA
                     19:  *  
                     20:  *  You may find a copy of the license under this software is released
                     21:  *  at COPYING file. This is LGPL software: you are welcome to
                     22:  *  develop proprietary applications using this library without any
                     23:  *  royalty or fee but returning back any change, improvement or
                     24:  *  addition in the form of source code, project image, documentation
                     25:  *  patches, etc. 
                     26:  *
                     27:  *  For commercial support on build XML enabled solutions contact us:
                     28:  *          
                     29:  *      Postal address:
                     30:  *         Advanced Software Production Line, S.L.
                     31:  *         Edificio Alius A, Oficina 102,
                     32:  *         C/ Antonio Suarez Nº 10,
                     33:  *         Alcalá de Henares 28802 Madrid
                     34:  *         Spain
                     35:  *
                     36:  *      Email address:
                     37:  *         info@aspl.es - http://www.aspl.es/xml
                     38:  */
                     39: #ifndef __AXL_DTD_H__
                     40: #define __AXL_DTD_H__
                     41: 
                     42: #include <axl_decl.h>
                     43: 
                     44: BEGIN_C_DECLS
                     45: 
                     46: /** 
                     47:  * \addtogroup axl_dtd_module
                     48:  * @{
                     49:  */
                     50: 
                     51: axlDtd             * axl_dtd_parse            (const char * entity, 
                     52:                                               int          entity_size,
                     53:                                               axlError ** error);
                     54: 
                     55: axlDtd             * axl_dtd_parse_from_file  (const char * file_path,
                     56:                                               axlError ** error);
                     57: 
                     58: axl_bool             axl_dtd_validate         (axlDoc * doc, 
                     59:                                               axlDtd * dtd,
                     60:                                               axlError ** error);
                     61: 
                     62: axl_bool             axl_dtd_are_equal        (axlDtd * dtd,
                     63:                                               axlDtd * dtd2);
                     64: 
                     65: axlDtdElement      * axl_dtd_get_root         (axlDtd * dtd); 
                     66: 
                     67: axlDtdElement      * axl_dtd_get_element      (axlDtd * dtd, 
                     68:                                               const char * name);
                     69: 
                     70: char               * axl_dtd_get_element_name (axlDtdElement * element);
                     71: 
                     72: AxlDtdElementType    axl_dtd_get_element_type (axlDtdElement * element);
                     73: 
                     74: axlDtdElementList  * axl_dtd_get_item_list    (axlDtdElement * element);
                     75: 
                     76: axl_bool             axl_dtd_element_is_toplevel (axlDtd * dtd, axlDtdElement * element);
                     77: 
                     78: int                  axl_dtd_item_list_count  (axlDtdElementList * itemList);
                     79: 
                     80: AxlDtdNestedType     axl_dtd_item_list_type   (axlDtdElementList * itemList);
                     81: 
                     82: AxlDtdTimes          axl_dtd_item_list_repeat (axlDtdElementList * itemList); 
                     83: 
                     84: axlDtdElementListNode * axl_dtd_item_list_get_node (axlDtdElementList * itemList, 
                     85:                                                    int position);
                     86: 
                     87: NodeType             axl_dtd_item_node_get_type (axlDtdElementListNode * node);
                     88: 
                     89: axlDtdElementList  * axl_dtd_item_node_get_list (axlDtdElementListNode * node);
                     90: 
                     91: char               * axl_dtd_item_node_get_value (axlDtdElementListNode * node);
                     92: 
                     93: AxlDtdTimes          axl_dtd_item_node_get_repeat (axlDtdElementListNode * node);
                     94: 
                     95: axl_bool             axl_dtd_entity_exists    (axlDtd            * dtd, 
                     96:                                               const char        * name,
                     97:                                               axlDtdEntityType    type);
                     98: 
                     99: char               * axl_dtd_entity_value     (axlDtd            * dtd, 
                    100:                                               const char        * name,
                    101:                                               axlDtdEntityType    type);
                    102: 
                    103: axlDtdAttribute    * axl_dtd_get_attr         (axlDtd * dtd,
                    104:                                               const char * nodeName);
                    105: 
                    106: int                  axl_dtd_get_attr_contraints (axlDtd * dtd,
                    107:                                                  const char * nodeName);
                    108: 
                    109: void                 axl_dtd_free             (axlDtd * dtd);
                    110: 
                    111: void                 axl_dtd_element_free     (axlDtdElement * element);
                    112: 
                    113: void                 axl_dtd_item_list_free   (axlDtdElementList * list);
                    114: 
                    115: axl_bool             axl_dtd_check_entity_ref_and_expand  (axlDtdEntityResolver   resolver, 
                    116:                                                           axlPointer             data,
                    117:                                                           axlStream            * stream, 
                    118:                                                           const           char * prefix,
                    119:                                                           axlError            ** error);
                    120: 
                    121: 
                    122: /* DON'T USE THIS FUNCTIONS, PROTOTYPES DECLARATIONS */
                    123: axl_bool     __axl_dtd_validate_item_list (axlDtdElementList  * itemList, 
                    124:                                           axlNode            * parent, 
                    125:                                           int                * child_pos,
                    126:                                           axlError          ** error,
                    127:                                           axl_bool                 top_level);
                    128: 
                    129: 
                    130: /* @} */
                    131: 
                    132: END_C_DECLS
                    133: 
                    134: #endif

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>