Viewing file: c14n.h (2.61 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/** * @file * * @brief Provide Canonical XML and Exclusive XML Canonicalization * * the c14n modules provides a * * "Canonical XML" implementation * http://www.w3.org/TR/xml-c14n * * and an * * "Exclusive XML Canonicalization" implementation * http://www.w3.org/TR/xml-exc-c14n
* @copyright See Copyright for the status of this software. * * @author Aleksey Sanin */ #ifndef __XML_C14N_H__ #define __XML_C14N_H__
#include <libxml/xmlversion.h>
#ifdef LIBXML_C14N_ENABLED
#include <libxml/tree.h> #include <libxml/xpath.h>
#ifdef __cplusplus extern "C" { #endif /* __cplusplus */
/* * XML Canonicalization * http://www.w3.org/TR/xml-c14n * * Exclusive XML Canonicalization * http://www.w3.org/TR/xml-exc-c14n * * Canonical form of an XML document could be created if and only if * a) default attributes (if any) are added to all nodes * b) all character and parsed entity references are resolved * In order to achieve this in libxml2 the document MUST be loaded with * following options: XML_PARSE_DTDATTR | XML_PARSE_NOENT */
/** * Predefined values for C14N modes */ typedef enum { /** Original C14N 1.0 spec */ XML_C14N_1_0 = 0, /** Exclusive C14N 1.0 spec */ XML_C14N_EXCLUSIVE_1_0 = 1, /** C14N 1.1 spec */ XML_C14N_1_1 = 2 } xmlC14NMode;
XMLPUBFUN int xmlC14NDocSaveTo (xmlDoc *doc, xmlNodeSet *nodes, int mode, /* a xmlC14NMode */ xmlChar **inclusive_ns_prefixes, int with_comments, xmlOutputBuffer *buf);
XMLPUBFUN int xmlC14NDocDumpMemory (xmlDoc *doc, xmlNodeSet *nodes, int mode, /* a xmlC14NMode */ xmlChar **inclusive_ns_prefixes, int with_comments, xmlChar **doc_txt_ptr);
XMLPUBFUN int xmlC14NDocSave (xmlDoc *doc, xmlNodeSet *nodes, int mode, /* a xmlC14NMode */ xmlChar **inclusive_ns_prefixes, int with_comments, const char* filename, int compression);
/** * This is the core C14N function */ /** * Signature for a C14N callback on visible nodes * * @param user_data user data * @param node the current node * @param parent the parent node * @returns 1 if the node should be included */ typedef int (*xmlC14NIsVisibleCallback) (void* user_data, xmlNode *node, xmlNode *parent);
XMLPUBFUN int xmlC14NExecute (xmlDoc *doc, xmlC14NIsVisibleCallback is_visible_callback, void* user_data, int mode, /* a xmlC14NMode */ xmlChar **inclusive_ns_prefixes, int with_comments, xmlOutputBuffer *buf);
#ifdef __cplusplus } #endif /* __cplusplus */
#endif /* LIBXML_C14N_ENABLED */ #endif /* __XML_C14N_H__ */
|