|
|
- /*
- * 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 <aleksey@aleksey.com>
- */
- #ifndef __XML_C14N_H__
- #define __XML_C14N_H__
- #ifdef LIBXML_C14N_ENABLED
- #ifdef LIBXML_OUTPUT_ENABLED
-
- #ifdef __cplusplus
- extern "C" {
- #endif /* __cplusplus */
-
- #include <libxml/xmlversion.h>
- #include <libxml/tree.h>
- #include <libxml/xpath.h>
-
- /*
- * XML Canonicazation
- * http://www.w3.org/TR/xml-c14n
- *
- * Exclusive XML Canonicazation
- * 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 achive this in libxml2 the document MUST be loaded with
- * following global setings:
- *
- * 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, /* Origianal 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 curent 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);
-
- #ifdef __cplusplus
- }
- #endif /* __cplusplus */
-
- #endif /* LIBXML_OUTPUT_ENABLED */
- #endif /* LIBXML_C14N_ENABLED */
- #endif /* __XML_C14N_H__ */
-
|