Annotation of embedaddon/libxml2/include/libxml/c14n.h, revision 1.1.1.2

1.1       misho       1: /*
                      2:  * Summary: Provide Canonical XML and Exclusive XML Canonicalization
                      3:  * Description: the c14n modules provides a
                      4:  *
                      5:  * "Canonical XML" implementation
                      6:  * http://www.w3.org/TR/xml-c14n
                      7:  *
                      8:  * and an
                      9:  *
                     10:  * "Exclusive XML Canonicalization" implementation
                     11:  * http://www.w3.org/TR/xml-exc-c14n
                     12: 
                     13:  * Copy: See Copyright for the status of this software.
                     14:  *
                     15:  * Author: Aleksey Sanin <aleksey@aleksey.com>
                     16:  */
                     17: #ifndef __XML_C14N_H__
                     18: #define __XML_C14N_H__
                     19: #ifdef LIBXML_C14N_ENABLED
                     20: #ifdef LIBXML_OUTPUT_ENABLED
                     21: 
                     22: #ifdef __cplusplus
                     23: extern "C" {
                     24: #endif /* __cplusplus */
                     25: 
                     26: #include <libxml/xmlversion.h>
                     27: #include <libxml/tree.h>
                     28: #include <libxml/xpath.h>
                     29: 
                     30: /*
                     31:  * XML Canonicazation
                     32:  * http://www.w3.org/TR/xml-c14n
                     33:  *
                     34:  * Exclusive XML Canonicazation
                     35:  * http://www.w3.org/TR/xml-exc-c14n
                     36:  *
                     37:  * Canonical form of an XML document could be created if and only if
                     38:  *  a) default attributes (if any) are added to all nodes
                     39:  *  b) all character and parsed entity references are resolved
                     40:  * In order to achive this in libxml2 the document MUST be loaded with
                     41:  * following global setings:
                     42:  *
                     43:  *    xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
                     44:  *    xmlSubstituteEntitiesDefault(1);
                     45:  *
                     46:  * or corresponding parser context setting:
                     47:  *    xmlParserCtxtPtr ctxt;
                     48:  *
                     49:  *    ...
                     50:  *    ctxt->loadsubset = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
                     51:  *    ctxt->replaceEntities = 1;
                     52:  *    ...
                     53:  */
                     54: 
                     55: /*
                     56:  * xmlC14NMode:
1.1.1.2 ! misho      57:  *
1.1       misho      58:  * Predefined values for C14N modes
                     59:  *
                     60:  */
                     61: typedef enum {
                     62:     XML_C14N_1_0            = 0,    /* Origianal C14N 1.0 spec */
                     63:     XML_C14N_EXCLUSIVE_1_0  = 1,    /* Exclusive C14N 1.0 spec */
                     64:     XML_C14N_1_1            = 2     /* C14N 1.1 spec */
                     65: } xmlC14NMode;
                     66: 
                     67: XMLPUBFUN int XMLCALL
                     68:                xmlC14NDocSaveTo        (xmlDocPtr doc,
                     69:                                         xmlNodeSetPtr nodes,
                     70:                                         int mode, /* a xmlC14NMode */
                     71:                                         xmlChar **inclusive_ns_prefixes,
                     72:                                         int with_comments,
                     73:                                         xmlOutputBufferPtr buf);
                     74: 
                     75: XMLPUBFUN int XMLCALL
                     76:                xmlC14NDocDumpMemory    (xmlDocPtr doc,
                     77:                                         xmlNodeSetPtr nodes,
                     78:                                         int mode, /* a xmlC14NMode */
                     79:                                         xmlChar **inclusive_ns_prefixes,
                     80:                                         int with_comments,
                     81:                                         xmlChar **doc_txt_ptr);
                     82: 
                     83: XMLPUBFUN int XMLCALL
                     84:                xmlC14NDocSave          (xmlDocPtr doc,
                     85:                                         xmlNodeSetPtr nodes,
                     86:                                         int mode, /* a xmlC14NMode */
                     87:                                         xmlChar **inclusive_ns_prefixes,
                     88:                                         int with_comments,
                     89:                                         const char* filename,
                     90:                                         int compression);
                     91: 
                     92: 
                     93: /**
                     94:  * This is the core C14N function
                     95:  */
                     96: /**
                     97:  * xmlC14NIsVisibleCallback:
                     98:  * @user_data: user data
                     99:  * @node: the curent node
                    100:  * @parent: the parent node
                    101:  *
                    102:  * Signature for a C14N callback on visible nodes
                    103:  *
                    104:  * Returns 1 if the node should be included
                    105:  */
                    106: typedef int (*xmlC14NIsVisibleCallback)        (void* user_data,
                    107:                                         xmlNodePtr node,
                    108:                                         xmlNodePtr parent);
                    109: 
                    110: XMLPUBFUN int XMLCALL
                    111:                xmlC14NExecute          (xmlDocPtr doc,
                    112:                                         xmlC14NIsVisibleCallback is_visible_callback,
                    113:                                         void* user_data,
                    114:                                         int mode, /* a xmlC14NMode */
                    115:                                         xmlChar **inclusive_ns_prefixes,
                    116:                                         int with_comments,
                    117:                                         xmlOutputBufferPtr buf);
                    118: 
                    119: #ifdef __cplusplus
                    120: }
                    121: #endif /* __cplusplus */
                    122: 
                    123: #endif /* LIBXML_OUTPUT_ENABLED */
                    124: #endif /* LIBXML_C14N_ENABLED */
                    125: #endif /* __XML_C14N_H__ */
                    126: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>