summaryrefslogtreecommitdiff
path: root/src/lib/eina/eina_simple_xml_parser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/eina/eina_simple_xml_parser.h')
-rw-r--r--src/lib/eina/eina_simple_xml_parser.h472
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);
-
-/**
- * @}
- */
-
/**
* @}
*/