Spaces:
Sleeping
Sleeping
/* | |
* Summary: Provide Canonical XML and Exclusive XML Canonicalization | |
* Description: 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 | |
* Copy: See Copyright for the status of this software. | |
* | |
* Author: Aleksey Sanin <[email protected]> | |
*/ | |
extern "C" { | |
/* | |
* 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 global settings: | |
* | |
* xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; | |
* xmlSubstituteEntitiesDefault(1); | |
* | |
* or corresponding parser context setting: | |
* xmlParserCtxtPtr ctxt; | |
* | |
* ... | |
* ctxt->loadsubset = XML_DETECT_IDS | XML_COMPLETE_ATTRS; | |
* ctxt->replaceEntities = 1; | |
* ... | |
*/ | |
/* | |
* xmlC14NMode: | |
* | |
* Predefined values for C14N modes | |
* | |
*/ | |
typedef enum { | |
XML_C14N_1_0 = 0, /* Original C14N 1.0 spec */ | |
XML_C14N_EXCLUSIVE_1_0 = 1, /* Exclusive C14N 1.0 spec */ | |
XML_C14N_1_1 = 2 /* C14N 1.1 spec */ | |
} xmlC14NMode; | |
XMLPUBFUN int XMLCALL | |
xmlC14NDocSaveTo (xmlDocPtr doc, | |
xmlNodeSetPtr nodes, | |
int mode, /* a xmlC14NMode */ | |
xmlChar **inclusive_ns_prefixes, | |
int with_comments, | |
xmlOutputBufferPtr buf); | |
XMLPUBFUN int XMLCALL | |
xmlC14NDocDumpMemory (xmlDocPtr doc, | |
xmlNodeSetPtr nodes, | |
int mode, /* a xmlC14NMode */ | |
xmlChar **inclusive_ns_prefixes, | |
int with_comments, | |
xmlChar **doc_txt_ptr); | |
XMLPUBFUN int XMLCALL | |
xmlC14NDocSave (xmlDocPtr doc, | |
xmlNodeSetPtr nodes, | |
int mode, /* a xmlC14NMode */ | |
xmlChar **inclusive_ns_prefixes, | |
int with_comments, | |
const char* filename, | |
int compression); | |
/** | |
* This is the core C14N function | |
*/ | |
/** | |
* xmlC14NIsVisibleCallback: | |
* @user_data: user data | |
* @node: the current node | |
* @parent: the parent node | |
* | |
* Signature for a C14N callback on visible nodes | |
* | |
* Returns 1 if the node should be included | |
*/ | |
typedef int (*xmlC14NIsVisibleCallback) (void* user_data, | |
xmlNodePtr node, | |
xmlNodePtr parent); | |
XMLPUBFUN int XMLCALL | |
xmlC14NExecute (xmlDocPtr doc, | |
xmlC14NIsVisibleCallback is_visible_callback, | |
void* user_data, | |
int mode, /* a xmlC14NMode */ | |
xmlChar **inclusive_ns_prefixes, | |
int with_comments, | |
xmlOutputBufferPtr buf); | |
} | |