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