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>