Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hhhrrrttt222111
GitHub Repository: hhhrrrttt222111/Dorkify
Path: blob/master/venv/Lib/site-packages/lxml/includes/libxml/c14n.h
811 views
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 <[email protected]>
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
127
128