xslt.pxd 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. from lxml.includes.tree cimport xmlDoc, xmlNode, xmlDict, xmlChar, const_xmlChar
  2. from lxml.includes.xmlerror cimport xmlGenericErrorFunc
  3. from lxml.includes.xpath cimport xmlXPathContext, xmlXPathFunction
  4. from libc.string cimport const_char
  5. cdef extern from "libxslt/xslt.h":
  6. cdef int xsltLibxsltVersion
  7. cdef int xsltMaxDepth
  8. cdef extern from "libxslt/xsltconfig.h":
  9. cdef int LIBXSLT_VERSION
  10. cdef extern from "libxslt/xsltInternals.h":
  11. ctypedef enum xsltTransformState:
  12. XSLT_STATE_OK # 0
  13. XSLT_STATE_ERROR # 1
  14. XSLT_STATE_STOPPED # 2
  15. ctypedef struct xsltDocument:
  16. xmlDoc* doc
  17. ctypedef struct xsltStylesheet:
  18. xmlChar* encoding
  19. xmlDoc* doc
  20. int errors
  21. ctypedef struct xsltTransformContext:
  22. xsltStylesheet* style
  23. xmlXPathContext* xpathCtxt
  24. xsltDocument* document
  25. void* _private
  26. xmlDict* dict
  27. int profile
  28. xmlNode* node
  29. xmlDoc* output
  30. xmlNode* insert
  31. xmlNode* inst
  32. xsltTransformState state
  33. ctypedef struct xsltStackElem
  34. ctypedef struct xsltTemplate
  35. cdef xsltStylesheet* xsltParseStylesheetDoc(xmlDoc* doc) nogil
  36. cdef void xsltFreeStylesheet(xsltStylesheet* sheet) nogil
  37. cdef extern from "libxslt/extensions.h":
  38. ctypedef void (*xsltTransformFunction)(xsltTransformContext* ctxt,
  39. xmlNode* context_node,
  40. xmlNode* inst,
  41. void* precomp_unused) nogil
  42. cdef int xsltRegisterExtFunction(xsltTransformContext* ctxt,
  43. const_xmlChar* name,
  44. const_xmlChar* URI,
  45. xmlXPathFunction function) nogil
  46. cdef int xsltRegisterExtModuleFunction(const_xmlChar* name, const_xmlChar* URI,
  47. xmlXPathFunction function) nogil
  48. cdef int xsltUnregisterExtModuleFunction(const_xmlChar* name, const_xmlChar* URI)
  49. cdef xmlXPathFunction xsltExtModuleFunctionLookup(
  50. const_xmlChar* name, const_xmlChar* URI) nogil
  51. cdef int xsltRegisterExtPrefix(xsltStylesheet* style,
  52. const_xmlChar* prefix, const_xmlChar* URI) nogil
  53. cdef int xsltRegisterExtElement(xsltTransformContext* ctxt,
  54. const_xmlChar* name, const_xmlChar* URI,
  55. xsltTransformFunction function) nogil
  56. cdef extern from "libxslt/documents.h":
  57. ctypedef enum xsltLoadType:
  58. XSLT_LOAD_START
  59. XSLT_LOAD_STYLESHEET
  60. XSLT_LOAD_DOCUMENT
  61. ctypedef xmlDoc* (*xsltDocLoaderFunc)(const_xmlChar* URI, xmlDict* dict,
  62. int options,
  63. void* ctxt,
  64. xsltLoadType type) nogil
  65. cdef xsltDocLoaderFunc xsltDocDefaultLoader
  66. cdef void xsltSetLoaderFunc(xsltDocLoaderFunc f) nogil
  67. cdef extern from "libxslt/transform.h":
  68. cdef xmlDoc* xsltApplyStylesheet(xsltStylesheet* style, xmlDoc* doc,
  69. const_char** params) nogil
  70. cdef xmlDoc* xsltApplyStylesheetUser(xsltStylesheet* style, xmlDoc* doc,
  71. const_char** params, const_char* output,
  72. void* profile,
  73. xsltTransformContext* context) nogil
  74. cdef void xsltProcessOneNode(xsltTransformContext* ctxt,
  75. xmlNode* contextNode,
  76. xsltStackElem* params) nogil
  77. cdef xsltTransformContext* xsltNewTransformContext(xsltStylesheet* style,
  78. xmlDoc* doc) nogil
  79. cdef void xsltFreeTransformContext(xsltTransformContext* context) nogil
  80. cdef void xsltApplyOneTemplate(xsltTransformContext* ctxt,
  81. xmlNode* contextNode, xmlNode* list,
  82. xsltTemplate* templ,
  83. xsltStackElem* params) nogil
  84. cdef extern from "libxslt/xsltutils.h":
  85. cdef int xsltSaveResultToString(xmlChar** doc_txt_ptr,
  86. int* doc_txt_len,
  87. xmlDoc* result,
  88. xsltStylesheet* style) nogil
  89. cdef xmlGenericErrorFunc xsltGenericError
  90. cdef void *xsltGenericErrorContext
  91. cdef void xsltSetGenericErrorFunc(
  92. void* ctxt, void (*handler)(void* ctxt, char* msg, ...)) nogil
  93. cdef void xsltSetTransformErrorFunc(
  94. xsltTransformContext*, void* ctxt,
  95. void (*handler)(void* ctxt, char* msg, ...) nogil) nogil
  96. cdef void xsltTransformError(xsltTransformContext* ctxt,
  97. xsltStylesheet* style,
  98. xmlNode* node, char* msg, ...)
  99. cdef void xsltSetCtxtParseOptions(
  100. xsltTransformContext* ctxt, int options)
  101. cdef extern from "libxslt/security.h":
  102. ctypedef struct xsltSecurityPrefs
  103. ctypedef enum xsltSecurityOption:
  104. XSLT_SECPREF_READ_FILE = 1
  105. XSLT_SECPREF_WRITE_FILE = 2
  106. XSLT_SECPREF_CREATE_DIRECTORY = 3
  107. XSLT_SECPREF_READ_NETWORK = 4
  108. XSLT_SECPREF_WRITE_NETWORK = 5
  109. ctypedef int (*xsltSecurityCheck)(xsltSecurityPrefs* sec,
  110. xsltTransformContext* ctxt,
  111. char* value) nogil
  112. cdef xsltSecurityPrefs* xsltNewSecurityPrefs() nogil
  113. cdef void xsltFreeSecurityPrefs(xsltSecurityPrefs* sec) nogil
  114. cdef int xsltSecurityForbid(xsltSecurityPrefs* sec,
  115. xsltTransformContext* ctxt,
  116. char* value) nogil
  117. cdef int xsltSecurityAllow(xsltSecurityPrefs* sec,
  118. xsltTransformContext* ctxt,
  119. char* value) nogil
  120. cdef int xsltSetSecurityPrefs(xsltSecurityPrefs* sec,
  121. xsltSecurityOption option,
  122. xsltSecurityCheck func) nogil
  123. cdef xsltSecurityCheck xsltGetSecurityPrefs(
  124. xsltSecurityPrefs* sec,
  125. xsltSecurityOption option) nogil
  126. cdef int xsltSetCtxtSecurityPrefs(xsltSecurityPrefs* sec,
  127. xsltTransformContext* ctxt) nogil
  128. cdef xmlDoc* xsltGetProfileInformation(xsltTransformContext* ctxt) nogil
  129. cdef extern from "libxslt/variables.h":
  130. cdef int xsltQuoteUserParams(xsltTransformContext* ctxt,
  131. const_char** params)
  132. cdef int xsltQuoteOneUserParam(xsltTransformContext* ctxt,
  133. const_xmlChar* name,
  134. const_xmlChar* value)
  135. cdef extern from "libxslt/extra.h":
  136. const_xmlChar* XSLT_LIBXSLT_NAMESPACE
  137. const_xmlChar* XSLT_XALAN_NAMESPACE
  138. const_xmlChar* XSLT_SAXON_NAMESPACE
  139. const_xmlChar* XSLT_XT_NAMESPACE
  140. cdef xmlXPathFunction xsltFunctionNodeSet
  141. cdef void xsltRegisterAllExtras() nogil
  142. cdef extern from "libexslt/exslt.h":
  143. cdef void exsltRegisterAll() nogil
  144. # libexslt 1.1.25+
  145. const_xmlChar* EXSLT_DATE_NAMESPACE
  146. const_xmlChar* EXSLT_SETS_NAMESPACE
  147. const_xmlChar* EXSLT_MATH_NAMESPACE
  148. const_xmlChar* EXSLT_STRINGS_NAMESPACE
  149. cdef int exsltDateXpathCtxtRegister(xmlXPathContext* ctxt, const_xmlChar* prefix)
  150. cdef int exsltSetsXpathCtxtRegister(xmlXPathContext* ctxt, const_xmlChar* prefix)
  151. cdef int exsltMathXpathCtxtRegister(xmlXPathContext* ctxt, const_xmlChar* prefix)
  152. cdef int exsltStrXpathCtxtRegister(xmlXPathContext* ctxt, const_xmlChar* prefix)