Annotation of embedaddon/libxml2/include/libxml/c14n.h, revision 1.1
1.1 ! misho 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: * xmlC14NMode:
! 57: *
! 58: * Predefined values for C14N modes
! 59: *
! 60: */
! 61: typedef enum {
! 62: XML_C14N_1_0 = 0, /* Origianal C14N 1.0 spec */
! 63: XML_C14N_EXCLUSIVE_1_0 = 1, /* Exclusive C14N 1.0 spec */
! 64: XML_C14N_1_1 = 2 /* C14N 1.1 spec */
! 65: } xmlC14NMode;
! 66:
! 67: XMLPUBFUN int XMLCALL
! 68: xmlC14NDocSaveTo (xmlDocPtr doc,
! 69: xmlNodeSetPtr nodes,
! 70: int mode, /* a xmlC14NMode */
! 71: xmlChar **inclusive_ns_prefixes,
! 72: int with_comments,
! 73: xmlOutputBufferPtr buf);
! 74:
! 75: XMLPUBFUN int XMLCALL
! 76: xmlC14NDocDumpMemory (xmlDocPtr doc,
! 77: xmlNodeSetPtr nodes,
! 78: int mode, /* a xmlC14NMode */
! 79: xmlChar **inclusive_ns_prefixes,
! 80: int with_comments,
! 81: xmlChar **doc_txt_ptr);
! 82:
! 83: XMLPUBFUN int XMLCALL
! 84: xmlC14NDocSave (xmlDocPtr doc,
! 85: xmlNodeSetPtr nodes,
! 86: int mode, /* a xmlC14NMode */
! 87: xmlChar **inclusive_ns_prefixes,
! 88: int with_comments,
! 89: const char* filename,
! 90: int compression);
! 91:
! 92:
! 93: /**
! 94: * This is the core C14N function
! 95: */
! 96: /**
! 97: * xmlC14NIsVisibleCallback:
! 98: * @user_data: user data
! 99: * @node: the curent node
! 100: * @parent: the parent node
! 101: *
! 102: * Signature for a C14N callback on visible nodes
! 103: *
! 104: * Returns 1 if the node should be included
! 105: */
! 106: typedef int (*xmlC14NIsVisibleCallback) (void* user_data,
! 107: xmlNodePtr node,
! 108: xmlNodePtr parent);
! 109:
! 110: XMLPUBFUN int XMLCALL
! 111: xmlC14NExecute (xmlDocPtr doc,
! 112: xmlC14NIsVisibleCallback is_visible_callback,
! 113: void* user_data,
! 114: int mode, /* a xmlC14NMode */
! 115: xmlChar **inclusive_ns_prefixes,
! 116: int with_comments,
! 117: xmlOutputBufferPtr buf);
! 118:
! 119: #ifdef __cplusplus
! 120: }
! 121: #endif /* __cplusplus */
! 122:
! 123: #endif /* LIBXML_OUTPUT_ENABLED */
! 124: #endif /* LIBXML_C14N_ENABLED */
! 125: #endif /* __XML_C14N_H__ */
! 126:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>