xref: /aosp_15_r20/external/libxml2/python/libxml_wrap.h (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker #include <Python.h>
2*7c568831SAndroid Build Coastguard Worker #include <libxml/tree.h>
3*7c568831SAndroid Build Coastguard Worker #include <libxml/parser.h>
4*7c568831SAndroid Build Coastguard Worker #include <libxml/parserInternals.h>
5*7c568831SAndroid Build Coastguard Worker #include <libxml/catalog.h>
6*7c568831SAndroid Build Coastguard Worker #include <libxml/threads.h>
7*7c568831SAndroid Build Coastguard Worker #include <libxml/nanohttp.h>
8*7c568831SAndroid Build Coastguard Worker #include <libxml/uri.h>
9*7c568831SAndroid Build Coastguard Worker #include <libxml/xpath.h>
10*7c568831SAndroid Build Coastguard Worker #include <libxml/xpathInternals.h>
11*7c568831SAndroid Build Coastguard Worker #include <libxml/debugXML.h>
12*7c568831SAndroid Build Coastguard Worker #include <libxml/HTMLparser.h>
13*7c568831SAndroid Build Coastguard Worker #include <libxml/HTMLtree.h>
14*7c568831SAndroid Build Coastguard Worker #include <libxml/xinclude.h>
15*7c568831SAndroid Build Coastguard Worker #include <libxml/xpointer.h>
16*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlunicode.h>
17*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlregexp.h>
18*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlautomata.h>
19*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlreader.h>
20*7c568831SAndroid Build Coastguard Worker #include <libxml/globals.h>
21*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlsave.h>
22*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SCHEMAS_ENABLED
23*7c568831SAndroid Build Coastguard Worker #include <libxml/relaxng.h>
24*7c568831SAndroid Build Coastguard Worker #include <libxml/xmlschemas.h>
25*7c568831SAndroid Build Coastguard Worker #endif
26*7c568831SAndroid Build Coastguard Worker 
27*7c568831SAndroid Build Coastguard Worker /*
28*7c568831SAndroid Build Coastguard Worker  * for older versions of Python, we don't use PyBytes, but keep PyString
29*7c568831SAndroid Build Coastguard Worker  * and don't use Capsule but CObjects
30*7c568831SAndroid Build Coastguard Worker  */
31*7c568831SAndroid Build Coastguard Worker #if PY_VERSION_HEX < 0x02070000
32*7c568831SAndroid Build Coastguard Worker #ifndef PyBytes_Check
33*7c568831SAndroid Build Coastguard Worker #define PyBytes_Check PyString_Check
34*7c568831SAndroid Build Coastguard Worker #define PyBytes_Size PyString_Size
35*7c568831SAndroid Build Coastguard Worker #define PyBytes_AsString PyString_AsString
36*7c568831SAndroid Build Coastguard Worker #define PyBytes_AS_STRING PyString_AS_STRING
37*7c568831SAndroid Build Coastguard Worker #define PyBytes_GET_SIZE PyString_GET_SIZE
38*7c568831SAndroid Build Coastguard Worker #endif
39*7c568831SAndroid Build Coastguard Worker #ifndef PyCapsule_New
40*7c568831SAndroid Build Coastguard Worker #define PyCapsule_New PyCObject_FromVoidPtrAndDesc
41*7c568831SAndroid Build Coastguard Worker #define PyCapsule_CheckExact PyCObject_Check
42*7c568831SAndroid Build Coastguard Worker #define PyCapsule_GetPointer(o, n) PyCObject_GetDesc((o))
43*7c568831SAndroid Build Coastguard Worker #endif
44*7c568831SAndroid Build Coastguard Worker #endif
45*7c568831SAndroid Build Coastguard Worker 
46*7c568831SAndroid Build Coastguard Worker /**
47*7c568831SAndroid Build Coastguard Worker  * ATTRIBUTE_UNUSED:
48*7c568831SAndroid Build Coastguard Worker  *
49*7c568831SAndroid Build Coastguard Worker  * Macro used to signal to GCC unused function parameters
50*7c568831SAndroid Build Coastguard Worker  * Repeated here since the definition is not available when
51*7c568831SAndroid Build Coastguard Worker  * compiled outside the libxml2 build tree.
52*7c568831SAndroid Build Coastguard Worker  */
53*7c568831SAndroid Build Coastguard Worker #if defined(__GNUC__) || defined(__clang__)
54*7c568831SAndroid Build Coastguard Worker #ifdef ATTRIBUTE_UNUSED
55*7c568831SAndroid Build Coastguard Worker #undef ATTRIBUTE_UNUSED
56*7c568831SAndroid Build Coastguard Worker #endif
57*7c568831SAndroid Build Coastguard Worker #ifndef ATTRIBUTE_UNUSED
58*7c568831SAndroid Build Coastguard Worker #define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
59*7c568831SAndroid Build Coastguard Worker #endif /* ATTRIBUTE_UNUSED */
60*7c568831SAndroid Build Coastguard Worker #else
61*7c568831SAndroid Build Coastguard Worker #define ATTRIBUTE_UNUSED
62*7c568831SAndroid Build Coastguard Worker #endif
63*7c568831SAndroid Build Coastguard Worker 
64*7c568831SAndroid Build Coastguard Worker /*
65*7c568831SAndroid Build Coastguard Worker  * Macros to ignore deprecation warnings
66*7c568831SAndroid Build Coastguard Worker  */
67*7c568831SAndroid Build Coastguard Worker #if defined(__LCC__)
68*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_DEPRECATION_WARNINGS \
69*7c568831SAndroid Build Coastguard Worker     _Pragma("diag_suppress 1215")
70*7c568831SAndroid Build Coastguard Worker #elif defined(__clang__) || \
71*7c568831SAndroid Build Coastguard Worker     (defined(__GNUC__) && (__GNUC__ * 100 + __GNUC_MINOR__ >= 406))
72*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_DEPRECATION_WARNINGS \
73*7c568831SAndroid Build Coastguard Worker     _Pragma("GCC diagnostic push") \
74*7c568831SAndroid Build Coastguard Worker     _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
75*7c568831SAndroid Build Coastguard Worker #elif defined (_MSC_VER) && (_MSC_VER >= 1400)
76*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_DEPRECATION_WARNINGS \
77*7c568831SAndroid Build Coastguard Worker     __pragma(warning(push)) \
78*7c568831SAndroid Build Coastguard Worker     __pragma(warning(disable : 4996))
79*7c568831SAndroid Build Coastguard Worker #else
80*7c568831SAndroid Build Coastguard Worker #define XML_IGNORE_DEPRECATION_WARNINGS
81*7c568831SAndroid Build Coastguard Worker #endif
82*7c568831SAndroid Build Coastguard Worker 
83*7c568831SAndroid Build Coastguard Worker #define PyxmlNode_Get(v) (((v) == Py_None) ? NULL : \
84*7c568831SAndroid Build Coastguard Worker 	(((PyxmlNode_Object *)(v))->obj))
85*7c568831SAndroid Build Coastguard Worker 
86*7c568831SAndroid Build Coastguard Worker typedef struct {
87*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
88*7c568831SAndroid Build Coastguard Worker     xmlNodePtr obj;
89*7c568831SAndroid Build Coastguard Worker } PyxmlNode_Object;
90*7c568831SAndroid Build Coastguard Worker 
91*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_XPATH_ENABLED
92*7c568831SAndroid Build Coastguard Worker #define PyxmlXPathContext_Get(v) (((v) == Py_None) ? NULL : \
93*7c568831SAndroid Build Coastguard Worker 	(((PyxmlXPathContext_Object *)(v))->obj))
94*7c568831SAndroid Build Coastguard Worker 
95*7c568831SAndroid Build Coastguard Worker typedef struct {
96*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
97*7c568831SAndroid Build Coastguard Worker     xmlXPathContextPtr obj;
98*7c568831SAndroid Build Coastguard Worker } PyxmlXPathContext_Object;
99*7c568831SAndroid Build Coastguard Worker 
100*7c568831SAndroid Build Coastguard Worker #define PyxmlXPathParserContext_Get(v) (((v) == Py_None) ? NULL : \
101*7c568831SAndroid Build Coastguard Worker 	(((PyxmlXPathParserContext_Object *)(v))->obj))
102*7c568831SAndroid Build Coastguard Worker 
103*7c568831SAndroid Build Coastguard Worker typedef struct {
104*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
105*7c568831SAndroid Build Coastguard Worker     xmlXPathParserContextPtr obj;
106*7c568831SAndroid Build Coastguard Worker } PyxmlXPathParserContext_Object;
107*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_XPATH_ENABLED */
108*7c568831SAndroid Build Coastguard Worker 
109*7c568831SAndroid Build Coastguard Worker #define PyparserCtxt_Get(v) (((v) == Py_None) ? NULL : \
110*7c568831SAndroid Build Coastguard Worker         (((PyparserCtxt_Object *)(v))->obj))
111*7c568831SAndroid Build Coastguard Worker 
112*7c568831SAndroid Build Coastguard Worker typedef struct {
113*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
114*7c568831SAndroid Build Coastguard Worker     xmlParserCtxtPtr obj;
115*7c568831SAndroid Build Coastguard Worker } PyparserCtxt_Object;
116*7c568831SAndroid Build Coastguard Worker 
117*7c568831SAndroid Build Coastguard Worker #define PyValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
118*7c568831SAndroid Build Coastguard Worker 	(((PyValidCtxt_Object *)(v))->obj))
119*7c568831SAndroid Build Coastguard Worker 
120*7c568831SAndroid Build Coastguard Worker typedef struct {
121*7c568831SAndroid Build Coastguard Worker 	PyObject_HEAD
122*7c568831SAndroid Build Coastguard Worker 	xmlValidCtxtPtr obj;
123*7c568831SAndroid Build Coastguard Worker } PyValidCtxt_Object;
124*7c568831SAndroid Build Coastguard Worker 
125*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_CATALOG_ENABLED
126*7c568831SAndroid Build Coastguard Worker #define Pycatalog_Get(v) (((v) == Py_None) ? NULL : \
127*7c568831SAndroid Build Coastguard Worker         (((Pycatalog_Object *)(v))->obj))
128*7c568831SAndroid Build Coastguard Worker 
129*7c568831SAndroid Build Coastguard Worker typedef struct {
130*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
131*7c568831SAndroid Build Coastguard Worker     xmlCatalogPtr obj;
132*7c568831SAndroid Build Coastguard Worker } Pycatalog_Object;
133*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_CATALOG_ENABLED */
134*7c568831SAndroid Build Coastguard Worker 
135*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_REGEXP_ENABLED
136*7c568831SAndroid Build Coastguard Worker #define PyxmlReg_Get(v) (((v) == Py_None) ? NULL : \
137*7c568831SAndroid Build Coastguard Worker         (((PyxmlReg_Object *)(v))->obj))
138*7c568831SAndroid Build Coastguard Worker 
139*7c568831SAndroid Build Coastguard Worker typedef struct {
140*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
141*7c568831SAndroid Build Coastguard Worker     xmlRegexpPtr obj;
142*7c568831SAndroid Build Coastguard Worker } PyxmlReg_Object;
143*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_REGEXP_ENABLED */
144*7c568831SAndroid Build Coastguard Worker 
145*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_READER_ENABLED
146*7c568831SAndroid Build Coastguard Worker #define PyxmlTextReader_Get(v) (((v) == Py_None) ? NULL : \
147*7c568831SAndroid Build Coastguard Worker         (((PyxmlTextReader_Object *)(v))->obj))
148*7c568831SAndroid Build Coastguard Worker 
149*7c568831SAndroid Build Coastguard Worker typedef struct {
150*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
151*7c568831SAndroid Build Coastguard Worker     xmlTextReaderPtr obj;
152*7c568831SAndroid Build Coastguard Worker } PyxmlTextReader_Object;
153*7c568831SAndroid Build Coastguard Worker 
154*7c568831SAndroid Build Coastguard Worker #define PyxmlTextReaderLocator_Get(v) (((v) == Py_None) ? NULL : \
155*7c568831SAndroid Build Coastguard Worker         (((PyxmlTextReaderLocator_Object *)(v))->obj))
156*7c568831SAndroid Build Coastguard Worker 
157*7c568831SAndroid Build Coastguard Worker typedef struct {
158*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
159*7c568831SAndroid Build Coastguard Worker     xmlTextReaderLocatorPtr obj;
160*7c568831SAndroid Build Coastguard Worker } PyxmlTextReaderLocator_Object;
161*7c568831SAndroid Build Coastguard Worker #endif
162*7c568831SAndroid Build Coastguard Worker 
163*7c568831SAndroid Build Coastguard Worker #define PyURI_Get(v) (((v) == Py_None) ? NULL : \
164*7c568831SAndroid Build Coastguard Worker 	(((PyURI_Object *)(v))->obj))
165*7c568831SAndroid Build Coastguard Worker 
166*7c568831SAndroid Build Coastguard Worker typedef struct {
167*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
168*7c568831SAndroid Build Coastguard Worker     xmlErrorPtr obj;
169*7c568831SAndroid Build Coastguard Worker } PyError_Object;
170*7c568831SAndroid Build Coastguard Worker 
171*7c568831SAndroid Build Coastguard Worker #define PyError_Get(v) (((v) == Py_None) ? NULL : \
172*7c568831SAndroid Build Coastguard Worker 	(((PyError_Object *)(v))->obj))
173*7c568831SAndroid Build Coastguard Worker 
174*7c568831SAndroid Build Coastguard Worker typedef struct {
175*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
176*7c568831SAndroid Build Coastguard Worker     xmlOutputBufferPtr obj;
177*7c568831SAndroid Build Coastguard Worker } PyoutputBuffer_Object;
178*7c568831SAndroid Build Coastguard Worker 
179*7c568831SAndroid Build Coastguard Worker #define PyoutputBuffer_Get(v) (((v) == Py_None) ? NULL : \
180*7c568831SAndroid Build Coastguard Worker 	(((PyoutputBuffer_Object *)(v))->obj))
181*7c568831SAndroid Build Coastguard Worker 
182*7c568831SAndroid Build Coastguard Worker typedef struct {
183*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
184*7c568831SAndroid Build Coastguard Worker     xmlParserInputBufferPtr obj;
185*7c568831SAndroid Build Coastguard Worker } PyinputBuffer_Object;
186*7c568831SAndroid Build Coastguard Worker 
187*7c568831SAndroid Build Coastguard Worker #define PyinputBuffer_Get(v) (((v) == Py_None) ? NULL : \
188*7c568831SAndroid Build Coastguard Worker 	(((PyinputBuffer_Object *)(v))->obj))
189*7c568831SAndroid Build Coastguard Worker 
190*7c568831SAndroid Build Coastguard Worker typedef struct {
191*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
192*7c568831SAndroid Build Coastguard Worker     xmlURIPtr obj;
193*7c568831SAndroid Build Coastguard Worker } PyURI_Object;
194*7c568831SAndroid Build Coastguard Worker 
195*7c568831SAndroid Build Coastguard Worker /* FILE * have their own internal representation */
196*7c568831SAndroid Build Coastguard Worker #if PY_MAJOR_VERSION >= 3
197*7c568831SAndroid Build Coastguard Worker FILE *libxml_PyFileGet(PyObject *f);
198*7c568831SAndroid Build Coastguard Worker void libxml_PyFileRelease(FILE *f);
199*7c568831SAndroid Build Coastguard Worker #define PyFile_Get(v) (((v) == Py_None) ? NULL : libxml_PyFileGet(v))
200*7c568831SAndroid Build Coastguard Worker #define PyFile_Release(f) libxml_PyFileRelease(f)
201*7c568831SAndroid Build Coastguard Worker #else
202*7c568831SAndroid Build Coastguard Worker #define PyFile_Get(v) (((v) == Py_None) ? NULL : \
203*7c568831SAndroid Build Coastguard Worker 	(PyFile_Check(v) ? (PyFile_AsFile(v)) : stdout))
204*7c568831SAndroid Build Coastguard Worker #define PyFile_Release(f)
205*7c568831SAndroid Build Coastguard Worker #endif
206*7c568831SAndroid Build Coastguard Worker 
207*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SCHEMAS_ENABLED
208*7c568831SAndroid Build Coastguard Worker typedef struct {
209*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
210*7c568831SAndroid Build Coastguard Worker     xmlRelaxNGPtr obj;
211*7c568831SAndroid Build Coastguard Worker } PyrelaxNgSchema_Object;
212*7c568831SAndroid Build Coastguard Worker 
213*7c568831SAndroid Build Coastguard Worker #define PyrelaxNgSchema_Get(v) (((v) == Py_None) ? NULL : \
214*7c568831SAndroid Build Coastguard Worker 	(((PyrelaxNgSchema_Object *)(v))->obj))
215*7c568831SAndroid Build Coastguard Worker 
216*7c568831SAndroid Build Coastguard Worker typedef struct {
217*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
218*7c568831SAndroid Build Coastguard Worker     xmlRelaxNGParserCtxtPtr obj;
219*7c568831SAndroid Build Coastguard Worker } PyrelaxNgParserCtxt_Object;
220*7c568831SAndroid Build Coastguard Worker 
221*7c568831SAndroid Build Coastguard Worker #define PyrelaxNgParserCtxt_Get(v) (((v) == Py_None) ? NULL : \
222*7c568831SAndroid Build Coastguard Worker 	(((PyrelaxNgParserCtxt_Object *)(v))->obj))
223*7c568831SAndroid Build Coastguard Worker 
224*7c568831SAndroid Build Coastguard Worker typedef struct {
225*7c568831SAndroid Build Coastguard Worker     PyObject_HEAD
226*7c568831SAndroid Build Coastguard Worker     xmlRelaxNGValidCtxtPtr obj;
227*7c568831SAndroid Build Coastguard Worker } PyrelaxNgValidCtxt_Object;
228*7c568831SAndroid Build Coastguard Worker 
229*7c568831SAndroid Build Coastguard Worker #define PyrelaxNgValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
230*7c568831SAndroid Build Coastguard Worker 	(((PyrelaxNgValidCtxt_Object *)(v))->obj))
231*7c568831SAndroid Build Coastguard Worker 
232*7c568831SAndroid Build Coastguard Worker typedef struct {
233*7c568831SAndroid Build Coastguard Worker 	PyObject_HEAD
234*7c568831SAndroid Build Coastguard Worker 	xmlSchemaPtr obj;
235*7c568831SAndroid Build Coastguard Worker } PySchema_Object;
236*7c568831SAndroid Build Coastguard Worker 
237*7c568831SAndroid Build Coastguard Worker #define PySchema_Get(v) (((v) == Py_None) ? NULL : \
238*7c568831SAndroid Build Coastguard Worker 	(((PySchema_Object *)(v))->obj))
239*7c568831SAndroid Build Coastguard Worker 
240*7c568831SAndroid Build Coastguard Worker typedef struct {
241*7c568831SAndroid Build Coastguard Worker 	PyObject_HEAD
242*7c568831SAndroid Build Coastguard Worker 	xmlSchemaParserCtxtPtr obj;
243*7c568831SAndroid Build Coastguard Worker } PySchemaParserCtxt_Object;
244*7c568831SAndroid Build Coastguard Worker 
245*7c568831SAndroid Build Coastguard Worker #define PySchemaParserCtxt_Get(v) (((v) == Py_None) ? NULL : \
246*7c568831SAndroid Build Coastguard Worker 	(((PySchemaParserCtxt_Object *)(v))->obj))
247*7c568831SAndroid Build Coastguard Worker 
248*7c568831SAndroid Build Coastguard Worker typedef struct {
249*7c568831SAndroid Build Coastguard Worker 	PyObject_HEAD
250*7c568831SAndroid Build Coastguard Worker 	xmlSchemaValidCtxtPtr obj;
251*7c568831SAndroid Build Coastguard Worker } PySchemaValidCtxt_Object;
252*7c568831SAndroid Build Coastguard Worker 
253*7c568831SAndroid Build Coastguard Worker #define PySchemaValidCtxt_Get(v) (((v) == Py_None) ? NULL : \
254*7c568831SAndroid Build Coastguard Worker 	(((PySchemaValidCtxt_Object *)(v))->obj))
255*7c568831SAndroid Build Coastguard Worker 
256*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SCHEMAS_ENABLED */
257*7c568831SAndroid Build Coastguard Worker 
258*7c568831SAndroid Build Coastguard Worker PyObject * libxml_intWrap(int val);
259*7c568831SAndroid Build Coastguard Worker PyObject * libxml_longWrap(long val);
260*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlCharPtrWrap(xmlChar *str);
261*7c568831SAndroid Build Coastguard Worker PyObject * libxml_constxmlCharPtrWrap(const xmlChar *str);
262*7c568831SAndroid Build Coastguard Worker PyObject * libxml_charPtrWrap(char *str);
263*7c568831SAndroid Build Coastguard Worker PyObject * libxml_constcharPtrWrap(const char *str);
264*7c568831SAndroid Build Coastguard Worker PyObject * libxml_charPtrConstWrap(const char *str);
265*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlCharPtrConstWrap(const xmlChar *str);
266*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlDocPtrWrap(xmlDocPtr doc);
267*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlNodePtrWrap(xmlNodePtr node);
268*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlAttrPtrWrap(xmlAttrPtr attr);
269*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlNsPtrWrap(xmlNsPtr ns);
270*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlAttributePtrWrap(xmlAttributePtr ns);
271*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlElementPtrWrap(xmlElementPtr ns);
272*7c568831SAndroid Build Coastguard Worker PyObject * libxml_doubleWrap(double val);
273*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt);
274*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_XPATH_ENABLED
275*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt);
276*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt);
277*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj);
278*7c568831SAndroid Build Coastguard Worker xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject * obj);
279*7c568831SAndroid Build Coastguard Worker #endif
280*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlValidCtxtPtrWrap(xmlValidCtxtPtr valid);
281*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_CATALOG_ENABLED
282*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlCatalogPtrWrap(xmlCatalogPtr obj);
283*7c568831SAndroid Build Coastguard Worker #endif
284*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlURIPtrWrap(xmlURIPtr uri);
285*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlOutputBufferPtrWrap(xmlOutputBufferPtr buffer);
286*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlParserInputBufferPtrWrap(xmlParserInputBufferPtr buffer);
287*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_REGEXP_ENABLED
288*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlRegexpPtrWrap(xmlRegexpPtr regexp);
289*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_REGEXP_ENABLED */
290*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_READER_ENABLED
291*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlTextReaderPtrWrap(xmlTextReaderPtr reader);
292*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlTextReaderLocatorPtrWrap(xmlTextReaderLocatorPtr locator);
293*7c568831SAndroid Build Coastguard Worker #endif
294*7c568831SAndroid Build Coastguard Worker 
295*7c568831SAndroid Build Coastguard Worker #ifdef LIBXML_SCHEMAS_ENABLED
296*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlRelaxNGPtrWrap(xmlRelaxNGPtr ctxt);
297*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlRelaxNGParserCtxtPtrWrap(xmlRelaxNGParserCtxtPtr ctxt);
298*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlRelaxNGValidCtxtPtrWrap(xmlRelaxNGValidCtxtPtr valid);
299*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlSchemaPtrWrap(xmlSchemaPtr ctxt);
300*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlSchemaParserCtxtPtrWrap(xmlSchemaParserCtxtPtr ctxt);
301*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlSchemaValidCtxtPtrWrap(xmlSchemaValidCtxtPtr valid);
302*7c568831SAndroid Build Coastguard Worker #endif /* LIBXML_SCHEMAS_ENABLED */
303*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlErrorPtrWrap(const xmlError *error);
304*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlSchemaSetValidErrors(PyObject * self, PyObject * args);
305*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlRegisterInputCallback(PyObject *self, PyObject *args);
306*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlUnregisterInputCallback(PyObject *self, PyObject *args);
307*7c568831SAndroid Build Coastguard Worker PyObject * libxml_xmlNodeRemoveNsDef(PyObject * self, PyObject * args);
308*7c568831SAndroid Build Coastguard Worker 
309*7c568831SAndroid Build Coastguard Worker int libxml_deprecationWarning(const char *func);
310