Return to xml.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / strongswan / src / manager |
1.1 ! misho 1: /* ! 2: * Copyright (C) 2007 Martin Willi ! 3: * HSR Hochschule fuer Technik Rapperswil ! 4: * ! 5: * This program is free software; you can redistribute it and/or modify it ! 6: * under the terms of the GNU General Public License as published by the ! 7: * Free Software Foundation; either version 2 of the License, or (at your ! 8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>. ! 9: * ! 10: * This program is distributed in the hope that it will be useful, but ! 11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ! 12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ! 13: * for more details. ! 14: */ ! 15: ! 16: /** ! 17: * @defgroup xml xml ! 18: * @{ @ingroup manager ! 19: */ ! 20: ! 21: #ifndef XML_H_ ! 22: #define XML_H_ ! 23: ! 24: #include <collections/enumerator.h> ! 25: ! 26: typedef struct xml_t xml_t; ! 27: ! 28: /** ! 29: * Simple enumerator based XML parser. ! 30: * ! 31: * An xml_t is a single node of the XML tree, but also serves as root node ! 32: * and therefore the document. ! 33: * This object has no destructor, the tree gets destroyed when all enumerator ! 34: * instances get destroyed. ! 35: */ ! 36: struct xml_t { ! 37: ! 38: /** ! 39: * Create an enumerator over all children. ! 40: * ! 41: * Enumerated values must not be manipulated or freed. ! 42: * ! 43: * @return enumerator over (xml_t* child, char *name, char *value) ! 44: */ ! 45: enumerator_t* (*children)(xml_t *this); ! 46: ! 47: /** ! 48: * Get an attribute value by its name. ! 49: * ! 50: * @param name name of the attribute ! 51: * @return attribute value, NULL if not found ! 52: */ ! 53: char *(*get_attribute)(xml_t *this, char *name); ! 54: }; ! 55: ! 56: /** ! 57: * Create a xml instance. ! 58: */ ! 59: xml_t *xml_create(char *xml); ! 60: ! 61: #endif /** XML_H_ @}*/