⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wbxml_elt.h

📁 WAP Binary XML 简单地说
💻 H
字号:
/* * libwbxml, the WBXML Library. * Copyright (C) 2002-2005 Aymerick Jehanne <aymerick@jehanne.org> *  * This library is 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 * Lesser General Public License for more details. *  * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA *  * LGPL v2.1: http://www.gnu.org/copyleft/lesser.txt *  * Contact: libwbxml@aymerick.com * Home: http://libwbxml.aymerick.com */ /** * @file wbxml_elt.h * @ingroup wbxml_elt * * @author Aymerick Jehanne <libwbxml@aymerick.com> * @date 03/02/22 * * @brief WBXML Elements */#ifndef WBXML_ELT_H#define WBXML_ELT_H#ifdef __cplusplusextern "C" {#endif /* __cplusplus *//** @addtogroup wbxml_elt  *  @{  *//** * @brief WBXML Value Type */typedef enum WBXMLValueType_e {    WBXML_VALUE_TOKEN = 0, /**< WBXML Token value */    WBXML_VALUE_LITERAL    /**< WBXML Literal value */} WBXMLValueType;/** @brief WBXML Tag structure */typedef struct WBXMLTag_s {    WBXMLValueType type;   /**< Tag Type (Token or Literal) */    union {        const WBXMLTagEntry *token;   /**< Token Tag (MUST be const structure, ie from wbxml_tables.c) */        WBXMLBuffer         *literal; /**< Literal Tag (MUST be dynamically allocated WBXMLBuffer) */    } u;} WBXMLTag;/** @brief WBXML Attribute Name structure */typedef struct WBXMLAttributeName_s {    WBXMLValueType type;   /**< Attribute Name Type (Token or Literal) */    union {        const WBXMLAttrEntry *token;   /**< Token Attribute Name (MUST be const structure, ie from wbxml_tables.c) */        WBXMLBuffer          *literal; /**< Literal Attribute Name (MUST be dynamically allocated WBXMLBuffer) */    } u;} WBXMLAttributeName;/**  * @brief WBXML Attribute structure  * @note The 'value' part contain the FULL attribute value *  For example, with the attribute: url="http://127.0.0.1/" *  If the 'name' part is this: *      - name->u.token->wbxmlCodePage: 0x00 *      - name->u.token->wbxmlToken : 0x4b *      - name->u.token->xmlName : "url" *      - name->u.token->xmlValue: "http://" * *  Then, 'value' is still: "http://127.0.0.1/" * *  Of course (in this example) it should be better to have the wbxmlToken 0x4a ("url" / NULL). So you mustn't take into *  account the 'xmlValue' field for 'name' to get the Attribute Value of this Attribute. */typedef struct WBXMLAttribute_s {    WBXMLAttributeName *name;  /**< Attribute Name */    WBXMLBuffer        *value; /**< Full Attribute Value */} WBXMLAttribute;/**************************************************** *    WBXML Elt Functions *//* WBXMLTag *//** * @brief Create a Tag structure * @param type WBXML Value Type * @return The newly created Tag, or NULL if not enough memory */WBXML_DECLARE(WBXMLTag *) wbxml_tag_create(WBXMLValueType type);/** * @brief Additional function to create directly a Token Tag structure * @param value The WBXMLTagEntry value * @return The newly created Tag, or NULL if not enough memory */WBXML_DECLARE(WBXMLTag *) wbxml_tag_create_token(const WBXMLTagEntry *value);/** * @brief Additional function to create directly a Literal Tag structure * @param value The Literal value * @return The newly created Tag, or NULL if not enough memory */WBXML_DECLARE(WBXMLTag *) wbxml_tag_create_literal(WB_UTINY *value);/** * @brief Destroy a Tag structure * @param tag The Tag structure to destroy */WBXML_DECLARE(void) wbxml_tag_destroy(WBXMLTag *tag);/** * @brief Duplicate a Tag structure * @param tag The Tag structure to duplicate * @return The duplicated Tag structure, or NULL if not enough memory */WBXML_DECLARE(WBXMLTag *) wbxml_tag_duplicate(WBXMLTag *tag);/** * @brief Get the XML Name of a WBXML Tag * @param tag The WBXML Tag * @return The XML Name, or "unknown" if not found */WBXML_DECLARE(const WB_UTINY *) wbxml_tag_get_xml_name(WBXMLTag *tag);/* WBXMLAttributeName *//** * @brief Create an Attribute Name structure * @param type WBXML Value Type * @return The newly created Attribute Name, or NULL if not enough memory */WBXML_DECLARE(WBXMLAttributeName *) wbxml_attribute_name_create(WBXMLValueType type);/** * @brief Additional function to create directly a Token Attribute Name structure * @param value The WBXMLTagEntry value * @return The newly created Attribute Name, or NULL if not enough memory */WBXML_DECLARE(WBXMLAttributeName *) wbxml_attribute_name_create_token(const WBXMLAttrEntry *value);/** * @brief Additional function to create directly a Literal Attribute Name structure * @param value The Literal value * @return The newly created Attribute Name, or NULL if not enough memory */WBXML_DECLARE(WBXMLAttributeName *) wbxml_attribute_name_create_literal(WB_UTINY *value);/** * @brief Destroy an Attribute Name structure * @param name The Attribute Name structure to destroy */WBXML_DECLARE(void) wbxml_attribute_name_destroy(WBXMLAttributeName *name);/** * @brief Duplicate a Attribute Name structure * @param name The Attribute Name structure to duplicate * @return The duplicated Attribute Name structure, or NULL if not enough memory */WBXML_DECLARE(WBXMLAttributeName *) wbxml_attribute_name_duplicate(WBXMLAttributeName *name);/** * @brief Get the XML Name of a WBXML Attribute Name * @param name The WBXML Attribute Name * @return The XML Name, or "unknown" if not found */WBXML_DECLARE(const WB_UTINY *) wbxml_attribute_name_get_xml_name(WBXMLAttributeName *name);/* WBXMLAttribute *//** * @brief Create an Attribute structure * @return The newly created Attribute, or NULL if not enough memory */WBXML_DECLARE(WBXMLAttribute *) wbxml_attribute_create(void);/** * @brief Destroy an Attribute structure * @param attr The Attribute structure to destroy */WBXML_DECLARE(void) wbxml_attribute_destroy(WBXMLAttribute *attr);/** * @brief Destroy an Attribute structure (used for wbxml_list_destroy()) * @param attr The Attribute structure to destroy */WBXML_DECLARE_NONSTD(void) wbxml_attribute_destroy_item(void *attr);/** * @brief Duplicate an Attribute structure * @param attr The Attribute structure to duplicate * @return The duplicated Attribute, or NULL if not enough memory */WBXML_DECLARE(WBXMLAttribute *) wbxml_attribute_duplicate(WBXMLAttribute *attr);/** * @brief Get the XML Attribute Name of a WBXML Attribute * @param attr The WBXML Attribute * @return The XML Attribute Name, or "unknown" if not found */WBXML_DECLARE(const WB_UTINY *) wbxml_attribute_get_xml_name(WBXMLAttribute *attr);/** * @brief Get the XML Attribute Value of a WBXML Attribute * @param attr The WBXML Attribute * @return The XML Attribute Value, or "" if none */WBXML_DECLARE(const WB_UTINY *) wbxml_attribute_get_xml_value(WBXMLAttribute *attr);/** @} */#ifdef __cplusplus}#endif /* __cplusplus */#endif /* WBXML_ELT_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -