diff options
Diffstat (limited to 'src/lib/eina/eina_simple_xml_parser.h')
-rw-r--r-- | src/lib/eina/eina_simple_xml_parser.h | 472 |
1 files changed, 223 insertions, 249 deletions
diff --git a/src/lib/eina/eina_simple_xml_parser.h b/src/lib/eina/eina_simple_xml_parser.h index 8f83c1e01a..bd3730b38c 100644 --- a/src/lib/eina/eina_simple_xml_parser.h +++ b/src/lib/eina/eina_simple_xml_parser.h @@ -2,14 +2,14 @@ * Copyright (C) 2011 Gustavo Sverzut Barbieri * Cedric Bail * - * This library is free software; you can redistribute it and/or + * This library is a free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public @@ -27,115 +27,29 @@ #include "eina_inlist.h" /** - * @page eina_simple_xml_parser_example_01_page - * @dontinclude eina_simple_xml_parser_01.c - * - * We are going to parse an XML sample file and print the data to stdout. - * - * Like all examples we start by including Eina: - * @skipline #include - * - * We declare 2 booleans to keep track of tags: - * @skipline tag_login - * @skipline tag_message - * - * Here we declare some variables and initialize eina: - * @until eina_init - * - * We fill buffer with the XML data from chat.xml: - * @until fread - * - * We will use an Eina_Array to store the data: - * @skipline array - * - * Here we call eina_simple_xml_parse(). We pass the buffer with data, its size, - * we ask to strip leading and trailing whitespace, we give the callback - * function and the array to store the formatted data: - * @until _xml_tag_cb - * - * This will loop over the array and print the data using _print callback: - * @skipline foreach - * - * This is the main XML parser callback, it will check for known tags and get - * the corresponding values: - * @skip static - * @until str - * - * We first check for opening tag: - * @skipline type - * - * If we know the tag should have attributes, then we find them using - * eina_simple_xml_tag_attributes_find() and give them to another parsing - * function using eina_simple_xml_attributes_parse(): - * @until _xml_attr_cb - * - * We check for other known tags: - * @until tag_message - * - * We then check data for corresponding tag: - * @until EINA_FALSE - * - * We are doing the formatting in same time and put all the \<post\> children - * in str. - * @until EINA_FALSE - * - * Finally, we store our string in the array: - * @skipline push - * - * This is the callback to parse the attributes, we check for key name and keep - * the value: - * @skip static - * @until snprintf - * - * This is the function that simply print items of the array: - * @until EINA_TRUE - * - * You can see the full source code - * @ref eina_simple_xml_parser_example_01 "here". - */ - -/** - * @page eina_simple_xml_parser_example_01 - * @include eina_simple_xml_parser_01.c - * @example eina_simple_xml_parser_01.c - */ - -/** * @defgroup Eina_Simple_XML_Group Simple_XML + * @ingroup Eina_Tools_Group * - * Simplistic relaxed SAX-like XML parser. + * @brief This is a simplistic relaxed SAX-like XML parser. * - * This parser is far from being compliant with XML standard, but will - * do for most XMLs out there. If you know that your format is simple - * and will not vary in future with strange corner cases, then you can + * This parser is far from being compliant with XML standards, but + * works for most XMLs out there. If you know that your format is simple + * and won't vary in the future with strange corner cases, then you can * use it safely. * - * The parser is SAX like, that is, it will tokenize contents and call - * you back so you can take some action. No contents are allocated + * The parser is SAX like, that is, it tokenizes content and calls + * you back so that you can take some action. No content is allocated * during this parser work and it's not recursive, so you can use it - * with a very large document without worries. + * with a very large document without any issues. * - * It will not validate the document anyhow, neither it will create a + * It does not validate the document anyhow, neither does it create a * tree hierarchy. That's up to you. * * Accordingly to XML, open tags may contain attributes. This parser - * will not tokenize this. If you want you can use + * does not tokenize this. If you want you can use * eina_simple_xml_tag_attributes_find() and then * eina_simple_xml_attributes_parse(). * - * For more information, see - * @ref eina_simple_xml_parser_example_01_page "this example". - */ - -/** - * @addtogroup Eina_Tools_Group Tools - * - * @{ - */ - -/** - * @defgroup Eina_Simple_XML_Group Simple_XML - * * @{ */ @@ -160,6 +74,10 @@ struct _Eina_Simple_XML_Attribute const char *value; }; +/** + * @typedef _Eina_Simple_XML_Node_Type + * @brief Enumeration for a simple XML node type. + */ typedef enum _Eina_Simple_XML_Node_Type { EINA_SIMPLE_XML_NODE_ROOT = 0, @@ -195,23 +113,24 @@ struct _Eina_Simple_XML_Node_Data size_t length; char data[]; }; + /** * @typedef _Eina_Simple_XML_Type - * a simple XML type. + * @brief Enumeration for a simple XML type. */ typedef enum _Eina_Simple_XML_Type { - EINA_SIMPLE_XML_OPEN = 0, /*!< \<tag attribute="value"\> */ - EINA_SIMPLE_XML_OPEN_EMPTY, /*!< \<tag attribute="value" /\> */ - EINA_SIMPLE_XML_CLOSE, /*!< \</tag\> */ - EINA_SIMPLE_XML_DATA, /*!< tag text data */ - EINA_SIMPLE_XML_CDATA, /*!< \<![CDATA[something]]\> */ - EINA_SIMPLE_XML_ERROR, /*!< error contents */ - EINA_SIMPLE_XML_PROCESSING, /*!< \<?xml ... ?\> \<?php .. ?\> */ - EINA_SIMPLE_XML_DOCTYPE, /*!< \<!DOCTYPE html */ - EINA_SIMPLE_XML_COMMENT, /*!< \<!-- something --\> */ - EINA_SIMPLE_XML_IGNORED, /*!< whatever is ignored by parser, like whitespace */ - EINA_SIMPLE_XML_DOCTYPE_CHILD /*!< \<!DOCTYPE_CHILD @since 1.8 */ + EINA_SIMPLE_XML_OPEN = 0, /**< \<tag attribute="value"\> */ + EINA_SIMPLE_XML_OPEN_EMPTY, /**< \<tag attribute="value" /\> */ + EINA_SIMPLE_XML_CLOSE, /**< \</tag\> */ + EINA_SIMPLE_XML_DATA, /**< tag text data */ + EINA_SIMPLE_XML_CDATA, /**< \<![CDATA[something]]\> */ + EINA_SIMPLE_XML_ERROR, /**< Error contents */ + EINA_SIMPLE_XML_PROCESSING, /**< \<?xml ... ?\> \<?php .. ?\> */ + EINA_SIMPLE_XML_DOCTYPE, /**< \<!DOCTYPE html */ + EINA_SIMPLE_XML_COMMENT, /**< \<!-- something --\> */ + EINA_SIMPLE_XML_IGNORED, /**< Whatever is ignored by the parser, like whitespace */ + EINA_SIMPLE_XML_DOCTYPE_CHILD /**< \<!DOCTYPE_CHILD @since 1.8 */ } Eina_Simple_XML_Type; typedef Eina_Bool (*Eina_Simple_XML_Cb)(void *data, Eina_Simple_XML_Type type, const char *content, unsigned offset, unsigned length); @@ -219,25 +138,28 @@ typedef Eina_Bool (*Eina_Simple_XML_Attribute_Cb)(void *data, const char *key, c /** - * Parse a section of XML string text - * - * @param buf the input string. May not contain \0 terminator. - * @param buflen the input string size. - * @param strip whenever this parser should strip leading and trailing - * whitespace. These whitespace will still be issued, but as type - * #EINA_SIMPLE_XML_IGNORED. - * @param func what to call back while parse to do some action. The - * first parameter is the given user @a data, the second is the - * token type, the third is the pointer to content start (it's - * not a NULL terminated string!), the forth is where this - * content is located inside @a buf (does not include tag - * start, for instance "<!DOCTYPE value>" the offset points at - * "value"), the fifth is the size of the content. Whenever this - * function return #EINA_FALSE the parser will abort. @param - * data what to give as context to @a func. - * - * @return #EINA_TRUE on success or #EINA_FALSE if it was aborted by user or - * parsing error. + * @brief Parses a section of the XML string text. + * + * @since_tizen 2.3 + * + * @param[in] buf The input string \n + * May not contain the \0 terminator. + * @param[in] buflen The input string size + * @param[in] strip The boolean value that indicates when this parser should do strip leading and whitespace trailing \n + * This whitespace is still issued, but as type + * #EINA_SIMPLE_XML_IGNORED. + * @param[in] func The function to call back while parse does some action \n + * The first parameter is the given user @a data, the second is the + * token type, the third is the pointer to the content's start (it's + * not a NULL terminated string), the fourth is where this + * content is located, that is @a buf (does not include tag + * start, for instance "<!DOCTYPE value>" the offset points at + * "value"), the fifth is the size of the content \n + * Whenever this function returns @c EINA_FALSE the parser aborts. + * @param[in] data The data to give as context to @a func + * + * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE if it is aborted by the user or a + * parsing error occurs */ EAPI Eina_Bool eina_simple_xml_parse(const char *buf, unsigned buflen, Eina_Bool strip, @@ -245,253 +167,305 @@ EAPI Eina_Bool eina_simple_xml_parse(const char *buf, unsigned buflen, /** - * Given the contents of a tag, find where the attributes start. + * @brief Finds where the attributes start from given the contents of a tag are provided. + * + * @since_tizen 2.3 * - * @param buf the input string. May not contain \0 terminator. - * @param buflen the input string size. - * @return pointer to the start of attributes, it can be used - * to feed eina_simple_xml_attributes_parse(). @c NULL is returned - * if no attributes were found. + * @remarks The tag contents are returned by eina_simple_xml_parse() when + * type is #EINA_SIMPLE_XML_OPEN or #EINA_SIMPLE_XML_OPEN_EMPTY. * - * The tag contents is returned by eina_simple_xml_parse() when - * type is #EINA_SIMPLE_XML_OPEN or #EINA_SIMPLE_XML_OPEN_EMPTY. + * @param[in] buf The input string \n + * May not contain \0 terminator. + * @param[in] buflen The input string size + * @return A pointer to the start of the attributes, it can be used + * to feed eina_simple_xml_attributes_parse() \n + * @c NULL is returned if no attributes are found. * */ EAPI const char * eina_simple_xml_tag_attributes_find(const char *buf, unsigned buflen); /** - * Given a buffer with xml attributes, parse them to key=value pairs. - * - * @param buf the input string. May not contain \0 terminator. - * @param buflen the input string size. - * @param func what to call back while parse to do some action. The - * first parameter is the given user @a data, the second is the - * key (null-terminated) and the last is the value (null - * terminated). These strings should not be modified and - * reference is just valid until the function return. - * @param data data to pass to the callback function. - * - * @return #EINA_TRUE on success or #EINA_FALSE if it was aborted by user or - * parsing error. + * @brief Parses a buffer with XML attributes to key=value pairs. + * + * @since_tizen 2.3 + * + * @param[in] buf The input string \n + * May not contain \0 terminator. + * @param[in] buflen The input string size + * @param[in] func The function to call back while parse does some action \n + * The first parameter is the given user @a data, the second is the + * key (null-terminated) and the last is the value (null + * terminated) \n + * These strings should not be modified and the + * reference is just valid till the function returns + * @param[in] data The data to pass to the callback function + * + * @return @c EINA_TRUE on success, otherwise @c EINA_FALSE if it is aborted by the user or a + * parsing error occurs */ EAPI Eina_Bool eina_simple_xml_attributes_parse(const char *buf, unsigned buflen, Eina_Simple_XML_Attribute_Cb func, const void *data); /** - * Create (and append) new attribute to tag. + * @brief Creates (and appends) a new attribute to the tag. * - * @param parent if provided, will be set in the resulting structure - * as well as the attribute will be appended to attributes list. - * @param key Null-terminated string. Must not be @c NULL. - * @param value Null-terminated string. If @c NULL, the empty string will be used. + * @since_tizen 2.3 * - * @return Newly allocated memory or @c NULL on error. This memory should be - * released with eina_simple_xml_attribute_free() or indirectly + * @param[in] parent If provided, this is set in the resulting structure + * and the attribute is appended to the attributes list + * @param[in] key The null-terminated string \n + * Must not be @c NULL. + * @param[in] value The null-terminated string \n + * If @c NULL, the empty string is used. + * + * @return The newly allocated memory, otherwise @c NULL on error \n + * This memory should be released directly with eina_simple_xml_attribute_free() or indirectly * with eina_simple_xml_node_tag_free(). */ EAPI Eina_Simple_XML_Attribute * eina_simple_xml_attribute_new(Eina_Simple_XML_Node_Tag *parent, const char *key, const char *value); /** - * Remove attribute from parent and delete it. + * @brief Removes an attribute from the parent and deletes it. + * + * @since_tizen 2.3 * - * @param attr attribute to release memory. + * @param[in] attr The attribute to release memory of */ EAPI void eina_simple_xml_attribute_free(Eina_Simple_XML_Attribute *attr); /** - * Create new tag. If parent is provided, it is automatically appended. + * @brief Creates a new tag. If @a parent is provided, it is automatically appended. + * + * @since_tizen 2.3 * - * @param parent if provided, will be set in the resulting structure - * as well as the tag will be appended to children list. - * @param name Null-terminated string. Must not be @c NULL. + * @param[in] parent If provided, this is set in the resulting structure + * and the tag is appended to the children list + * @param[in] name The null-terminated string \n + * Must not be @c NULL. * - * @return Newly allocated memory or @c NULL on error. This memory should be - * released with eina_simple_xml_node_tag_free() or indirectly - * with eina_simple_xml_node_tag_free() of the parent. + * @return The newly allocated memory, otherwise @c NULL on error \n + * This memory of the parent should be released directly with eina_simple_xml_node_tag_free() or indirectly + * with eina_simple_xml_node_tag_free(). */ EAPI Eina_Simple_XML_Node_Tag * eina_simple_xml_node_tag_new(Eina_Simple_XML_Node_Tag *parent, const char *name); /** - * Remove tag from parent and delete it. + * @brief Removes a tag from the parent and deletes it. + * + * @since_tizen 2.3 * - * @param tag to release memory. + * @param[in] tag The tag to release memory of */ EAPI void eina_simple_xml_node_tag_free(Eina_Simple_XML_Node_Tag *tag); /** - * Create new data. If parent is provided, it is automatically appended. + * @brief Creates new data. If @a parent is provided, it is automatically appended. * - * @param parent if provided, will be set in the resulting structure - * as well as the data will be appended to children list. - * @param contents String to be used. Must not be @c NULL. - * @param length size in bytes of @a contents. + * @since_tizen 2.3 * - * @return Newly allocated memory or NULL on error. This memory should be - * released with eina_simple_xml_node_data_free() or indirectly - * with eina_simple_xml_node_tag_free() of the parent. + * @param[in] parent If provided, this is set in the resulting structure + * and the data is appended to the children list + * @param[in] contents The string to be used \n + * Must not be @c NULL. + * @param[in] length size in bytes of @a contents + * + * @return The newly allocated memory, otherwise @c NULL on error \n + * This memory of the parent should be released directly with eina_simple_xml_node_data_free() or indirectly + * with eina_simple_xml_node_tag_free(). */ EAPI Eina_Simple_XML_Node_Data * eina_simple_xml_node_data_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** - * Remove data from parent and delete it. + * @brief Removes data from the parent and deletes it. + * + * @since_tizen 2.3 * - * @param node to release memory. + * @param[in] node The data to release memory of */ EAPI void eina_simple_xml_node_data_free(Eina_Simple_XML_Node_Data *node); /** - * Create new cdata. If parent is provided, it is automatically appended. + * @brief Creates new cdata. If @a parent is provided, it is automatically appended. * - * @param parent if provided, will be set in the resulting structure - * as well as the cdata will be appended to children list. - * @param contents String to be used. Must not be @c NULL. - * @param length size in bytes of @a content. + * @since_tizen 2.3 * - * @return Newly allocated memory or @c NULL on error. This memory should be - * released with eina_simple_xml_node_cdata_free() or indirectly - * with eina_simple_xml_node_tag_free() of the parent. + * @param[in] parent If provided, this is set in the resulting structure + * and the cdata is appended to the children list + * @param[in] contents The string to be used \n + * Must not be @c NULL. + * @param[in] length size in bytes of @a contents + * + * @return The newly allocated memory, otherwise @c NULL on error \n + * This memory of the parent should be released directly with eina_simple_xml_node_cdata_free() or indirectly + * with eina_simple_xml_node_tag_free(). */ EAPI Eina_Simple_XML_Node_CData * eina_simple_xml_node_cdata_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** - * Remove cdata from parent and delete it. + * @brief Removes cdata from the parent and deletes it. * - * @param node to release memory. + * @since_tizen 2.3 + * + * @param[in] node The cdata to release memory of */ EAPI void eina_simple_xml_node_cdata_free(Eina_Simple_XML_Node_Data *node); /** - * Create new doctype child. If parent is provided, it is automatically appended. + * @brief Creates a new doctype child. If @a parent is provided, it is automatically appended. * - * @param parent if provided, will be set in the resulting structure - * as well as the doctype child will be appended to children list. - * @param contents String to be used. Must not be @c NULL. - * @param length size in bytes of @a content. + * @since 1.8 * - * @return Newly allocated memory or @c NULL on error. This memory should be - * released with eina_simple_xml_node_doctype_child_free() or indirectly - * with eina_simple_xml_node_tag_free() of the parent. + * @since_tizen 2.3 + * + * @param[in] parent If provided, this is set in the resulting structure + * and the doctype child is appended to the children list + * @param[in] contents The string to be used \n + * Must not be @c NULL. + * @param[in] length size in bytes of @a contents + * + * @return The newly allocated memory, otherwise @c NULL on error \n + * This memory of the parent should be released directly with eina_simple_xml_node_doctype_child_free() or indirectly + * with eina_simple_xml_node_tag_free(). * - * @since 1.8 */ EAPI Eina_Simple_XML_Node_Doctype_Child * eina_simple_xml_node_doctype_child_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** - * Remove doctype child from parent and delete it. - * - * @param node to release memory. + * @brief Removes the doctype child from the parent and deletes it. * * @since 1.8 + * + * @since_tizen 2.3 + * + * @param[in] node The doctype child to release memory of + * */ EAPI void eina_simple_xml_node_doctype_child_free(Eina_Simple_XML_Node_Data *node); /** - * Create new processing. If parent is provided, it is automatically appended. + * @brief Creates new processing. If @a parent is provided, it is automatically appended. + * + * @since_tizen 2.3 * - * @param parent if provided, will be set in the resulting structure - * as well as the processing will be appended to children list. - * @param contents String to be used. Must not be @c NULL. - * @param length size in bytes of @a contents. + * @param[in] parent If provided, this is set in the resulting structure + * and the processing is appended to the children list + * @param[in] contents The string to be used \n + * Must not be @c NULL. + * @param[in] length size in bytes of @a contents * - * @return Newly allocated memory or @c NULL on error. This memory should be - * released with eina_simple_xml_node_processing_free() or indirectly - * with eina_simple_xml_node_tag_free() of the parent. + * @return The newly allocated memory, otherwise @c NULL on error \n + * This memory of the parent should be released directly with eina_simple_xml_node_processing_free() or indirectly + * with eina_simple_xml_node_tag_free(). */ EAPI Eina_Simple_XML_Node_Processing * eina_simple_xml_node_processing_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** - * Remove processing from parent and delete it. + * @brief Removes processing from the parent and deletes it. * - * @param node processing to release memory. + * @since_tizen 2.3 + * + * @param[in] node The processing to release memory of */ EAPI void eina_simple_xml_node_processing_free(Eina_Simple_XML_Node_Data *node); /** - * Create new doctype. If parent is provided, it is automatically appended. + * @brief Creates a new doctype. If @a parent is provided, it is automatically appended. + * + * @since_tizen 2.3 * - * @param parent if provided, will be set in the resulting structure - * as well as the doctype will be appended to children list. - * @param contents String to be used. Must not be @c NULL. - * @param length size in bytes of @a contents. + * @param[in] parent If provided, this is set in the resulting structure + * and the doctype is appended to the children list + * @param[in] contents The string to be used \n + * Must not be @c NULL. + * @param[in] length size in bytes of @a contents * - * @return Newly allocated memory or @c NULL on error. This memory should be - * released with eina_simple_xml_node_doctype_free() or indirectly - * with eina_simple_xml_node_tag_free() of the parent. + * @return The newly allocated memory, otherwise @c NULL on error \n + * This memory of the parent should be released directly with eina_simple_xml_node_doctype_free() or indirectly + * with eina_simple_xml_node_tag_free(). */ EAPI Eina_Simple_XML_Node_Doctype * eina_simple_xml_node_doctype_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** - * Remove doctype from parent and delete it. + * @brief Removes the doctype from the parent and deletes it. + * + * @since_tizen 2.3 * - * @param node doctype to release memory. + * @param[in] node The doctype to release memory of */ EAPI void eina_simple_xml_node_doctype_free(Eina_Simple_XML_Node_Data *node); /** - * Create new comment. If parent is provided, it is automatically appended. + * @brief Creates a new comment. If @a parent is provided, it is automatically appended. * - * @param parent if provided, will be set in the resulting structure - * as well as the comment will be appended to children list. - * @param contents String to be used. Must not be @c NULL. - * @param length size in bytes of @a contents. + * @since_tizen 2.3 * - * @return Newly allocated memory or @c NULL on error. This memory should be - * released with eina_simple_xml_node_comment_free() or indirectly - * with eina_simple_xml_node_tag_free() of the parent. + * @param[in] parent If provided, this is set in the resulting structure + * and the comment is appended to the children list + * @param[in] contents The string to be used \n + * Must not be @c NULL. + * @param[in] length size in bytes of @a contents + * + * @return The newly allocated memory, otherwise @c NULL on error \n + * This memory of the parent should be released directly with eina_simple_xml_node_comment_free() or indirectly + * with eina_simple_xml_node_tag_free(). */ EAPI Eina_Simple_XML_Node_Comment * eina_simple_xml_node_comment_new(Eina_Simple_XML_Node_Tag *parent, const char *contents, size_t length); /** - * Remove comment from parent and delete it. + * @brief Removes a comment from the parent and deletes it. * - * @param node comment to release memory. + * @since_tizen 2.3 + * + * @param[in] node The comment to release memory of */ EAPI void eina_simple_xml_node_comment_free(Eina_Simple_XML_Node_Data *node); /** - * Load a XML node tree based on the given string. + * @brief Loads an XML node tree based on the given string. + * + * @since_tizen 2.3 * - * @param buf the input string. May not contain \0 terminator. - * @param buflen the input string size. - * @param strip whenever this parser should strip leading and trailing - * whitespace. + * @param[in] buf The input string \n + * May not contain \0 terminator. + * @param[in] buflen The input string size + * @param[in] strip The boolean value that indicates when this parser should do + * strip leading and whitespace trailing * - * @return Document root with children tags, or @c NULL on errors. - * Document with errors may return partial tree instead of @c NULL, - * we'll do our best to avoid returning nothing. + * @return The document root with children tags, otherwise @c NULL on errors \n + * The document with errors may return a partial tree instead of @c NULL, + * we are going to do our best to avoid returning nothing. */ EAPI Eina_Simple_XML_Node_Root * eina_simple_xml_node_load(const char *buf, unsigned buflen, Eina_Bool strip); /** - * Free node tree build with eina_simple_xml_node_load() + * @brief Frees the node tree built with eina_simple_xml_node_load(). + * + * @since_tizen 2.3 * - * @param root memory returned by eina_simple_xml_node_load() + * @param[in] root The memory returned by eina_simple_xml_node_load() */ EAPI void eina_simple_xml_node_root_free(Eina_Simple_XML_Node_Root *root); /** - * Converts the node tree under the given element to a XML string. + * @brief Converts the node tree under the given element to an XML string. * - * @param node the base node to convert. - * @param indent Indentation string, or @c NULL to disable it. + * @since_tizen 2.3 * - * @return @c NULL on errors or a newly allocated string on success. + * @param[in] node The base node to convert + * @param[in] indent The indentation string, otherwise @c NULL to disable it + * + * @return @c NULL on errors, otherwise a newly allocated string on success */ EAPI char * eina_simple_xml_node_dump(Eina_Simple_XML_Node *node, const char *indent); - -/** - * @} - */ - /** * @} */ |