source: NonGTP/FCollada/libxml/c14n.h @ 964

Revision 964, 2.5 KB checked in by igarcia, 18 years ago (diff)
Line 
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
23extern "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
56XMLPUBFUN 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
64XMLPUBFUN 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
72XMLPUBFUN 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 */
85typedef int (*xmlC14NIsVisibleCallback) (void* user_data,
86                                         xmlNodePtr node,
87                                         xmlNodePtr parent);
88
89XMLPUBFUN 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
Note: See TracBrowser for help on using the repository browser.