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

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:
        !            57:  * 
        !            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>