File:  [ELWIX - Embedded LightWeight unIX -] / gpl / axl / src / axl_dtd.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Wed Jun 8 07:09:12 2011 UTC (13 years, 1 month ago) by misho
Branches: axl, MAIN
CVS tags: HEAD, AXL0_6_7, AXL0_6_1
3th party - XML

    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>