imgtools/imgcheck/libxml/c14n.h
changeset 0 044383f39525
equal deleted inserted replaced
-1:000000000000 0:044383f39525
       
     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 XMLPUBFUN int XMLCALL 		
       
    57 		xmlC14NDocSaveTo	(xmlDocPtr doc,
       
    58 					 xmlNodeSetPtr nodes,
       
    59 					 int exclusive,
       
    60 					 xmlChar **inclusive_ns_prefixes,
       
    61 					 int with_comments, 
       
    62 					 xmlOutputBufferPtr buf);
       
    63 
       
    64 XMLPUBFUN int XMLCALL
       
    65 		xmlC14NDocDumpMemory	(xmlDocPtr doc,
       
    66 					 xmlNodeSetPtr nodes,
       
    67 					 int exclusive,
       
    68 					 xmlChar **inclusive_ns_prefixes,
       
    69 					 int with_comments, 
       
    70 					 xmlChar **doc_txt_ptr);
       
    71 
       
    72 XMLPUBFUN int XMLCALL
       
    73 		xmlC14NDocSave		(xmlDocPtr doc,
       
    74 					 xmlNodeSetPtr nodes,
       
    75 					 int exclusive,
       
    76 					 xmlChar **inclusive_ns_prefixes,
       
    77 					 int with_comments, 
       
    78 					 const char* filename,
       
    79 					 int compression);
       
    80 
       
    81 
       
    82 /**
       
    83  * This is the core C14N function
       
    84  */
       
    85 typedef int (*xmlC14NIsVisibleCallback)	(void* user_data, 
       
    86 					 xmlNodePtr node,
       
    87 					 xmlNodePtr parent);
       
    88 
       
    89 XMLPUBFUN int XMLCALL
       
    90 		xmlC14NExecute		(xmlDocPtr doc,
       
    91 					 xmlC14NIsVisibleCallback is_visible_callback,
       
    92 					 void* user_data,				 
       
    93 					 int exclusive,
       
    94 					 xmlChar **inclusive_ns_prefixes,
       
    95 					 int with_comments, 
       
    96 					 xmlOutputBufferPtr buf);
       
    97 
       
    98 #ifdef __cplusplus
       
    99 }
       
   100 #endif /* __cplusplus */
       
   101 
       
   102 #endif /* LIBXML_OUTPUT_ENABLED */
       
   103 #endif /* LIBXML_C14N_ENABLED */
       
   104 #endif /* __XML_C14N_H__ */
       
   105