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