/* * Copyright (C) 1998-2003 Daniel Veillard. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is fur- * nished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT- * NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * DANIEL VEILLARD BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CON- * NECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Except as contained in this notice, the name of Daniel Veillard shall not * be used in advertising or otherwise to promote the sale, use or other deal- * ings in this Software without prior written authorization from him. * * * This include file is taken from the libxml2 source tree, to provide the needed * declarations to implement usage of libxml2xml.so * (David Sommerseth , 2009) * */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #ifdef LIBXML_SCHEMAS_ENABLED #include #include #endif /** * ATTRIBUTE_UNUSED: * * Macro used to signal to GCC unused function parameters * Repeated here since the definition is not available when * compiled outside the libxml2 build tree. */ #ifdef __GNUC__ #ifdef ATTRIBUTE_UNUSED #undef ATTRIBUTE_UNUSED #endif #ifndef ATTRIBUTE_UNUSED #define ATTRIBUTE_UNUSED __attribute__ ((__unused__)) #endif /* ATTRIBUTE_UNUSED */ #else #define ATTRIBUTE_UNUSED #endif #define PyxmlNode_Get(v) (((v) == Py_None) ? NULL : \ (((PyxmlNode_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlNodePtr obj; } PyxmlNode_Object; #define PyxmlXPathContext_Get(v) (((v) == Py_None) ? NULL : \ (((PyxmlXPathContext_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlXPathContextPtr obj; } PyxmlXPathContext_Object; #define PyxmlXPathParserContext_Get(v) (((v) == Py_None) ? NULL : \ (((PyxmlXPathParserContext_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlXPathParserContextPtr obj; } PyxmlXPathParserContext_Object; #define PyparserCtxt_Get(v) (((v) == Py_None) ? NULL : \ (((PyparserCtxt_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlParserCtxtPtr obj; } PyparserCtxt_Object; #define PyValidCtxt_Get(v) (((v) == Py_None) ? NULL : \ (((PyValidCtxt_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlValidCtxtPtr obj; } PyValidCtxt_Object; #define Pycatalog_Get(v) (((v) == Py_None) ? NULL : \ (((Pycatalog_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlCatalogPtr obj; } Pycatalog_Object; #ifdef LIBXML_REGEXP_ENABLED #define PyxmlReg_Get(v) (((v) == Py_None) ? NULL : \ (((PyxmlReg_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlRegexpPtr obj; } PyxmlReg_Object; #endif /* LIBXML_REGEXP_ENABLED */ #ifdef LIBXML_READER_ENABLED #define PyxmlTextReader_Get(v) (((v) == Py_None) ? NULL : \ (((PyxmlTextReader_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlTextReaderPtr obj; } PyxmlTextReader_Object; #define PyxmlTextReaderLocator_Get(v) (((v) == Py_None) ? NULL : \ (((PyxmlTextReaderLocator_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlTextReaderLocatorPtr obj; } PyxmlTextReaderLocator_Object; #endif #define PyURI_Get(v) (((v) == Py_None) ? NULL : \ (((PyURI_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlErrorPtr obj; } PyError_Object; #define PyError_Get(v) (((v) == Py_None) ? NULL : \ (((PyError_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlOutputBufferPtr obj; } PyoutputBuffer_Object; #define PyoutputBuffer_Get(v) (((v) == Py_None) ? NULL : \ (((PyoutputBuffer_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlParserInputBufferPtr obj; } PyinputBuffer_Object; #define PyinputBuffer_Get(v) (((v) == Py_None) ? NULL : \ (((PyinputBuffer_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlURIPtr obj; } PyURI_Object; /* FILE * have their own internal representation */ #define PyFile_Get(v) (((v) == Py_None) ? NULL : \ (PyFile_Check(v) ? (PyFile_AsFile(v)) : stdout)) #ifdef LIBXML_SCHEMAS_ENABLED typedef struct { PyObject_HEAD xmlRelaxNGPtr obj; } PyrelaxNgSchema_Object; #define PyrelaxNgSchema_Get(v) (((v) == Py_None) ? NULL : \ (((PyrelaxNgSchema_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlRelaxNGParserCtxtPtr obj; } PyrelaxNgParserCtxt_Object; #define PyrelaxNgParserCtxt_Get(v) (((v) == Py_None) ? NULL : \ (((PyrelaxNgParserCtxt_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlRelaxNGValidCtxtPtr obj; } PyrelaxNgValidCtxt_Object; #define PyrelaxNgValidCtxt_Get(v) (((v) == Py_None) ? NULL : \ (((PyrelaxNgValidCtxt_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlSchemaPtr obj; } PySchema_Object; #define PySchema_Get(v) (((v) == Py_None) ? NULL : \ (((PySchema_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlSchemaParserCtxtPtr obj; } PySchemaParserCtxt_Object; #define PySchemaParserCtxt_Get(v) (((v) == Py_None) ? NULL : \ (((PySchemaParserCtxt_Object *)(v))->obj)) typedef struct { PyObject_HEAD xmlSchemaValidCtxtPtr obj; } PySchemaValidCtxt_Object; #define PySchemaValidCtxt_Get(v) (((v) == Py_None) ? NULL : \ (((PySchemaValidCtxt_Object *)(v))->obj)) #endif /* LIBXML_SCHEMAS_ENABLED */ PyObject * libxml_intWrap(int val); PyObject * libxml_longWrap(long val); PyObject * libxml_xmlCharPtrWrap(xmlChar *str); PyObject * libxml_constxmlCharPtrWrap(const xmlChar *str); PyObject * libxml_charPtrWrap(char *str); PyObject * libxml_constcharPtrWrap(const char *str); PyObject * libxml_charPtrConstWrap(const char *str); PyObject * libxml_xmlCharPtrConstWrap(const xmlChar *str); PyObject * libxml_xmlDocPtrWrap(xmlDocPtr doc); PyObject * libxml_xmlNodePtrWrap(xmlNodePtr node); PyObject * libxml_xmlAttrPtrWrap(xmlAttrPtr attr); PyObject * libxml_xmlNsPtrWrap(xmlNsPtr ns); PyObject * libxml_xmlAttributePtrWrap(xmlAttributePtr ns); PyObject * libxml_xmlElementPtrWrap(xmlElementPtr ns); PyObject * libxml_doubleWrap(double val); PyObject * libxml_xmlXPathContextPtrWrap(xmlXPathContextPtr ctxt); PyObject * libxml_xmlParserCtxtPtrWrap(xmlParserCtxtPtr ctxt); PyObject * libxml_xmlXPathParserContextPtrWrap(xmlXPathParserContextPtr ctxt); PyObject * libxml_xmlXPathObjectPtrWrap(xmlXPathObjectPtr obj); PyObject * libxml_xmlValidCtxtPtrWrap(xmlValidCtxtPtr valid); PyObject * libxml_xmlCatalogPtrWrap(xmlCatalogPtr obj); PyObject * libxml_xmlURIPtrWrap(xmlURIPtr uri); PyObject * libxml_xmlOutputBufferPtrWrap(xmlOutputBufferPtr buffer); PyObject * libxml_xmlParserInputBufferPtrWrap(xmlParserInputBufferPtr buffer); #ifdef LIBXML_REGEXP_ENABLED PyObject * libxml_xmlRegexpPtrWrap(xmlRegexpPtr regexp); #endif /* LIBXML_REGEXP_ENABLED */ #ifdef LIBXML_READER_ENABLED PyObject * libxml_xmlTextReaderPtrWrap(xmlTextReaderPtr reader); PyObject * libxml_xmlTextReaderLocatorPtrWrap(xmlTextReaderLocatorPtr locator); #endif xmlXPathObjectPtr libxml_xmlXPathObjectPtrConvert(PyObject * obj); #ifdef LIBXML_SCHEMAS_ENABLED PyObject * libxml_xmlRelaxNGPtrWrap(xmlRelaxNGPtr ctxt); PyObject * libxml_xmlRelaxNGParserCtxtPtrWrap(xmlRelaxNGParserCtxtPtr ctxt); PyObject * libxml_xmlRelaxNGValidCtxtPtrWrap(xmlRelaxNGValidCtxtPtr valid); PyObject * libxml_xmlSchemaPtrWrap(xmlSchemaPtr ctxt); PyObject * libxml_xmlSchemaParserCtxtPtrWrap(xmlSchemaParserCtxtPtr ctxt); PyObject * libxml_xmlSchemaValidCtxtPtrWrap(xmlSchemaValidCtxtPtr valid); #endif /* LIBXML_SCHEMAS_ENABLED */ PyObject * libxml_xmlErrorPtrWrap(xmlErrorPtr error); PyObject * libxml_xmlSchemaSetValidErrors(PyObject * self, PyObject * args);