1 from tree cimport xmlDoc, xmlNode, xmlDict
2 from xpath cimport xmlXPathContext, xmlXPathFunction
4 cdef extern from "libxslt/xslt.h":
5 cdef int xsltLibxsltVersion
7 cdef extern from "libxslt/xsltconfig.h":
8 cdef int LIBXSLT_VERSION
10 cdef extern from "libxslt/xsltInternals.h":
11 ctypedef enum xsltTransformState:
14 XSLT_STATE_STOPPED # 2
16 ctypedef struct xsltDocument:
19 ctypedef struct xsltStylesheet:
23 ctypedef struct xsltTransformContext:
25 xmlXPathContext* xpathCtxt
26 xsltDocument* document
33 xsltTransformState state
35 ctypedef struct xsltStackElem
37 cdef xsltStylesheet* xsltParseStylesheetDoc(xmlDoc* doc) nogil
38 cdef void xsltFreeStylesheet(xsltStylesheet* sheet) nogil
40 cdef extern from "libxslt/extensions.h":
41 ctypedef void (*xsltTransformFunction)(xsltTransformContext* ctxt,
42 xmlNode* context_node,
44 void* precomp_unused) nogil
46 cdef int xsltRegisterExtFunction(xsltTransformContext* ctxt,
49 xmlXPathFunction function) nogil
50 cdef int xsltRegisterExtModuleFunction(char* name, char* URI,
51 xmlXPathFunction function) nogil
52 cdef int xsltUnregisterExtModuleFunction(char* name, char* URI)
53 cdef xmlXPathFunction xsltExtModuleFunctionLookup(
54 char* name, char* URI) nogil
55 cdef int xsltRegisterExtPrefix(xsltStylesheet* style,
56 char* prefix, char* URI) nogil
57 cdef int xsltRegisterExtElement(xsltTransformContext* ctxt,
58 char* name, char* URI,
59 xsltTransformFunction function) nogil
61 cdef extern from "libxslt/documents.h":
62 ctypedef enum xsltLoadType:
67 ctypedef xmlDoc* (*xsltDocLoaderFunc)(char* URI, xmlDict* dict,
70 xsltLoadType type) nogil
71 cdef xsltDocLoaderFunc xsltDocDefaultLoader
72 cdef void xsltSetLoaderFunc(xsltDocLoaderFunc f) nogil
74 cdef extern from "libxslt/transform.h":
75 cdef xmlDoc* xsltApplyStylesheet(xsltStylesheet* style, xmlDoc* doc,
77 cdef xmlDoc* xsltApplyStylesheetUser(xsltStylesheet* style, xmlDoc* doc,
78 char** params, char* output,
80 xsltTransformContext* context) nogil
81 cdef void xsltProcessOneNode(xsltTransformContext* ctxt,
83 xsltStackElem* params) nogil
84 cdef xsltTransformContext* xsltNewTransformContext(xsltStylesheet* style,
86 cdef void xsltFreeTransformContext(xsltTransformContext* context) nogil
88 cdef extern from "libxslt/xsltutils.h":
89 cdef int xsltSaveResultToString(char** doc_txt_ptr,
92 xsltStylesheet* style) nogil
94 cdef void xsltSetGenericErrorFunc(
95 void* ctxt, void (*handler)(void* ctxt, char* msg, ...)) nogil
96 cdef void xsltSetTransformErrorFunc(
97 xsltTransformContext*, void* ctxt,
98 void (*handler)(void* ctxt, char* msg, ...) nogil) nogil
99 cdef void xsltTransformError(xsltTransformContext* ctxt,
100 xsltStylesheet* style,
101 xmlNode* node, char* msg, ...)
102 cdef void xsltSetCtxtParseOptions(
103 xsltTransformContext* ctxt, int options)
105 cdef extern from "libxslt/security.h":
106 ctypedef struct xsltSecurityPrefs
107 ctypedef enum xsltSecurityOption:
108 XSLT_SECPREF_READ_FILE = 1
109 XSLT_SECPREF_WRITE_FILE = 2
110 XSLT_SECPREF_CREATE_DIRECTORY = 3
111 XSLT_SECPREF_READ_NETWORK = 4
112 XSLT_SECPREF_WRITE_NETWORK = 5
114 ctypedef int (*xsltSecurityCheck)(xsltSecurityPrefs* sec,
115 xsltTransformContext* ctxt,
118 cdef xsltSecurityPrefs* xsltNewSecurityPrefs() nogil
119 cdef void xsltFreeSecurityPrefs(xsltSecurityPrefs* sec) nogil
120 cdef int xsltSecurityForbid(xsltSecurityPrefs* sec,
121 xsltTransformContext* ctxt,
123 cdef int xsltSecurityAllow(xsltSecurityPrefs* sec,
124 xsltTransformContext* ctxt,
126 cdef int xsltSetSecurityPrefs(xsltSecurityPrefs* sec,
127 xsltSecurityOption option,
128 xsltSecurityCheck func) nogil
129 cdef xsltSecurityCheck xsltGetSecurityPrefs(
130 xsltSecurityPrefs* sec,
131 xsltSecurityOption option) nogil
132 cdef int xsltSetCtxtSecurityPrefs(xsltSecurityPrefs* sec,
133 xsltTransformContext* ctxt) nogil
134 cdef xmlDoc* xsltGetProfileInformation(xsltTransformContext* ctxt) nogil
136 cdef extern from "libxslt/variables.h":
137 cdef int xsltQuoteUserParams(xsltTransformContext* ctxt,
139 cdef int xsltQuoteOneUserParam(xsltTransformContext* ctxt,
142 cdef int xsltEvalOneUserParam(xsltTransformContext* ctxt,
146 cdef extern from "libxslt/extra.h":
147 cdef char* XSLT_LIBXSLT_NAMESPACE
148 cdef char* XSLT_XALAN_NAMESPACE
149 cdef char* XSLT_SAXON_NAMESPACE
150 cdef char* XSLT_XT_NAMESPACE
152 cdef xmlXPathFunction xsltFunctionNodeSet
153 cdef void xsltRegisterAllExtras() nogil
155 cdef extern from "libexslt/exslt.h":
156 cdef void exsltRegisterAll() nogil