ÿØÿàJFIFÿþ ÿÛC       ÿÛC ÿÀÿÄÿÄ"#QrÿÄÿÄ&1!A"2qQaáÿÚ ?Øy,æ/3JæÝ¹È߲؋5êXw²±ÉyˆR”¾I0ó2—PI¾IÌÚiMö¯–þrìN&"KgX:Šíµ•nTJnLK„…@!‰-ý ùúmë;ºgµŒ&ó±hw’¯Õ@”Ü— 9ñ-ë.²1<yà‚¹ïQÐU„ہ?.’¦èûbß±©Ö«Âw*VŒ) `$‰bØÔŸ’ëXÖ-ËTÜíGÚ3ð«g Ÿ§¯—Jx„–’U/ÂÅv_s(Hÿ@TñJÑãõçn­‚!ÈgfbÓc­:él[ðQe 9ÀPLbÃãCµm[5¿ç'ªjglå‡Ûí_§Úõl-;"PkÞÞÁQâ¼_Ñ^¢SŸx?"¸¦ùY騐ÒOÈ q’`~~ÚtËU¹CڒêV  I1Áß_ÿÙ/** * @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 #ifdef LIBXML_C14N_ENABLED #include #include #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__ */