1/*
2 * Summary: interface for the XSLT functions not from XPath
3 * Description: a set of extra functions coming from XSLT but not in XPath
4 *
5 * Copy: See Copyright for the status of this software.
6 *
7 * Author: Daniel Veillard and Bjorn Reese <breese@users.sourceforge.net>
8 */
9
10#ifndef __XML_XSLT_FUNCTIONS_H__
11#define __XML_XSLT_FUNCTIONS_H__
12
13#include <libxml/xpath.h>
14#include <libxml/xpathInternals.h>
15#include "xsltexports.h"
16#include "xsltInternals.h"
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22/**
23 * XSLT_REGISTER_FUNCTION_LOOKUP:
24 *
25 * Registering macro, not general purpose at all but used in different modules.
26 */
27#define XSLT_REGISTER_FUNCTION_LOOKUP(ctxt) \
28 xmlXPathRegisterFuncLookup((ctxt)->xpathCtxt, \
29 (xmlXPathFuncLookupFunc) xsltXPathFunctionLookup, \
30 (void *)(ctxt->xpathCtxt));
31
32XSLTPUBFUN xmlXPathFunction XSLTCALL
33 xsltXPathFunctionLookup (xmlXPathContextPtr ctxt,
34 const xmlChar *name,
35 const xmlChar *ns_uri);
36
37/*
38 * Interfaces for the functions implementations.
39 */
40
41XSLTPUBFUN void XSLTCALL
42 xsltDocumentFunction (xmlXPathParserContextPtr ctxt,
43 int nargs);
44XSLTPUBFUN void XSLTCALL
45 xsltKeyFunction (xmlXPathParserContextPtr ctxt,
46 int nargs);
47XSLTPUBFUN void XSLTCALL
48 xsltUnparsedEntityURIFunction (xmlXPathParserContextPtr ctxt,
49 int nargs);
50XSLTPUBFUN void XSLTCALL
51 xsltFormatNumberFunction (xmlXPathParserContextPtr ctxt,
52 int nargs);
53XSLTPUBFUN void XSLTCALL
54 xsltGenerateIdFunction (xmlXPathParserContextPtr ctxt,
55 int nargs);
56XSLTPUBFUN void XSLTCALL
57 xsltSystemPropertyFunction (xmlXPathParserContextPtr ctxt,
58 int nargs);
59XSLTPUBFUN void XSLTCALL
60 xsltElementAvailableFunction (xmlXPathParserContextPtr ctxt,
61 int nargs);
62XSLTPUBFUN void XSLTCALL
63 xsltFunctionAvailableFunction (xmlXPathParserContextPtr ctxt,
64 int nargs);
65
66/*
67 * Cleanup for ID generation
68 */
69XSLTPUBFUN int XSLTCALL
70 xsltCleanupIds (xsltTransformContextPtr ctxt,
71 xmlNodePtr root);
72
73/*
74 * And the registration
75 */
76
77XSLTPUBFUN void XSLTCALL
78 xsltRegisterAllFunctions (xmlXPathContextPtr ctxt);
79
80#ifdef __cplusplus
81}
82#endif
83
84#endif /* __XML_XSLT_FUNCTIONS_H__ */
85
86