1/*
2 * Summary: the XSLT engine transformation part.
3 * Description: This module implements the bulk of the actual
4 *              transformation processing. Most of the xsl: element
5 *              constructs are implemented in this module.
6 *
7 * Copy: See Copyright for the status of this software.
8 *
9 * Author: Daniel Veillard
10 */
11
12#ifndef __XML_XSLT_TRANSFORM_H__
13#define __XML_XSLT_TRANSFORM_H__
14
15#include <libxml/parser.h>
16#include <libxml/xmlIO.h>
17#include "xsltexports.h"
18#include <libxslt/xsltInternals.h>
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/**
25 * XInclude default processing.
26 */
27XSLTPUBFUN void XSLTCALL
28		xsltSetXIncludeDefault	(int xinclude);
29XSLTPUBFUN int XSLTCALL
30		xsltGetXIncludeDefault	(void);
31
32/**
33 * Export context to users.
34 */
35XSLTPUBFUN xsltTransformContextPtr XSLTCALL
36		xsltNewTransformContext	(xsltStylesheetPtr style,
37					 xmlDocPtr doc);
38
39XSLTPUBFUN void XSLTCALL
40		xsltFreeTransformContext(xsltTransformContextPtr ctxt);
41
42XSLTPUBFUN xmlDocPtr XSLTCALL
43		xsltApplyStylesheetUser	(xsltStylesheetPtr style,
44					 xmlDocPtr doc,
45					 const char **params,
46					 const char *output,
47					 FILE * profile,
48					 xsltTransformContextPtr userCtxt);
49XSLTPUBFUN void XSLTCALL
50                xsltProcessOneNode      (xsltTransformContextPtr ctxt,
51                                         xmlNodePtr node,
52                                         xsltStackElemPtr params);
53/**
54 * Private Interfaces.
55 */
56XSLTPUBFUN void XSLTCALL
57		xsltApplyStripSpaces	(xsltTransformContextPtr ctxt,
58					 xmlNodePtr node);
59XSLTPUBFUN xmlDocPtr XSLTCALL
60		xsltApplyStylesheet	(xsltStylesheetPtr style,
61					 xmlDocPtr doc,
62					 const char **params);
63XSLTPUBFUN xmlDocPtr XSLTCALL
64		xsltProfileStylesheet	(xsltStylesheetPtr style,
65					 xmlDocPtr doc,
66					 const char **params,
67					 FILE * output);
68XSLTPUBFUN int XSLTCALL
69		xsltRunStylesheet	(xsltStylesheetPtr style,
70					 xmlDocPtr doc,
71					 const char **params,
72					 const char *output,
73					 xmlSAXHandlerPtr SAX,
74					 xmlOutputBufferPtr IObuf);
75XSLTPUBFUN int XSLTCALL
76		xsltRunStylesheetUser	(xsltStylesheetPtr style,
77					 xmlDocPtr doc,
78					 const char **params,
79					 const char *output,
80					 xmlSAXHandlerPtr SAX,
81					 xmlOutputBufferPtr IObuf,
82					 FILE * profile,
83					 xsltTransformContextPtr userCtxt);
84XSLTPUBFUN void XSLTCALL
85		xsltApplyOneTemplate	(xsltTransformContextPtr ctxt,
86					 xmlNodePtr node,
87					 xmlNodePtr list,
88					 xsltTemplatePtr templ,
89					 xsltStackElemPtr params);
90XSLTPUBFUN void XSLTCALL
91		xsltDocumentElem	(xsltTransformContextPtr ctxt,
92	                                 xmlNodePtr node,
93					 xmlNodePtr inst,
94					 xsltStylePreCompPtr comp);
95XSLTPUBFUN void XSLTCALL
96		xsltSort		(xsltTransformContextPtr ctxt,
97	                                 xmlNodePtr node,
98					 xmlNodePtr inst,
99					 xsltStylePreCompPtr comp);
100XSLTPUBFUN void XSLTCALL
101		xsltCopy		(xsltTransformContextPtr ctxt,
102	                                 xmlNodePtr node,
103					 xmlNodePtr inst,
104					 xsltStylePreCompPtr comp);
105XSLTPUBFUN void XSLTCALL
106		xsltText		(xsltTransformContextPtr ctxt,
107	                                 xmlNodePtr node,
108					 xmlNodePtr inst,
109					 xsltStylePreCompPtr comp);
110XSLTPUBFUN void XSLTCALL
111		xsltElement		(xsltTransformContextPtr ctxt,
112	                                 xmlNodePtr node,
113					 xmlNodePtr inst,
114					 xsltStylePreCompPtr comp);
115XSLTPUBFUN void XSLTCALL
116		xsltComment		(xsltTransformContextPtr ctxt,
117	                                 xmlNodePtr node,
118					 xmlNodePtr inst,
119					 xsltStylePreCompPtr comp);
120XSLTPUBFUN void XSLTCALL
121		xsltAttribute		(xsltTransformContextPtr ctxt,
122	                                 xmlNodePtr node,
123					 xmlNodePtr inst,
124					 xsltStylePreCompPtr comp);
125XSLTPUBFUN void XSLTCALL
126		xsltProcessingInstruction(xsltTransformContextPtr ctxt,
127	                                 xmlNodePtr node,
128					 xmlNodePtr inst,
129					 xsltStylePreCompPtr comp);
130XSLTPUBFUN void XSLTCALL
131		xsltCopyOf		(xsltTransformContextPtr ctxt,
132	                                 xmlNodePtr node,
133					 xmlNodePtr inst,
134					 xsltStylePreCompPtr comp);
135XSLTPUBFUN void XSLTCALL
136		xsltValueOf		(xsltTransformContextPtr ctxt,
137	                                 xmlNodePtr node,
138					 xmlNodePtr inst,
139					 xsltStylePreCompPtr comp);
140XSLTPUBFUN void XSLTCALL
141		xsltNumber		(xsltTransformContextPtr ctxt,
142	                                 xmlNodePtr node,
143					 xmlNodePtr inst,
144					 xsltStylePreCompPtr comp);
145XSLTPUBFUN void XSLTCALL
146		xsltApplyImports	(xsltTransformContextPtr ctxt,
147	                                 xmlNodePtr node,
148					 xmlNodePtr inst,
149					 xsltStylePreCompPtr comp);
150XSLTPUBFUN void XSLTCALL
151		xsltCallTemplate	(xsltTransformContextPtr ctxt,
152	                                 xmlNodePtr node,
153					 xmlNodePtr inst,
154					 xsltStylePreCompPtr comp);
155XSLTPUBFUN void XSLTCALL
156		xsltApplyTemplates	(xsltTransformContextPtr ctxt,
157	                                 xmlNodePtr node,
158					 xmlNodePtr inst,
159					 xsltStylePreCompPtr comp);
160XSLTPUBFUN void XSLTCALL
161		xsltChoose		(xsltTransformContextPtr ctxt,
162	                                 xmlNodePtr node,
163					 xmlNodePtr inst,
164					 xsltStylePreCompPtr comp);
165XSLTPUBFUN void XSLTCALL
166		xsltIf			(xsltTransformContextPtr ctxt,
167	                                 xmlNodePtr node,
168					 xmlNodePtr inst,
169					 xsltStylePreCompPtr comp);
170XSLTPUBFUN void XSLTCALL
171		xsltForEach		(xsltTransformContextPtr ctxt,
172	                                 xmlNodePtr node,
173					 xmlNodePtr inst,
174					 xsltStylePreCompPtr comp);
175XSLTPUBFUN void XSLTCALL
176		xsltRegisterAllElement	(xsltTransformContextPtr ctxt);
177
178XSLTPUBFUN xmlNodePtr XSLTCALL
179		xsltCopyTextString	(xsltTransformContextPtr ctxt,
180					 xmlNodePtr target,
181					 const xmlChar *string,
182					 int noescape);
183
184/* Following 2 functions needed for libexslt/functions.c */
185XSLTPUBFUN void XSLTCALL
186		xsltLocalVariablePop	(xsltTransformContextPtr ctxt,
187					 int limitNr,
188					 int level);
189XSLTPUBFUN int XSLTCALL
190		xsltLocalVariablePush	(xsltTransformContextPtr ctxt,
191					 xsltStackElemPtr variable,
192					 int level);
193/*
194 * Hook for the debugger if activated.
195 */
196XSLTPUBFUN void XSLTCALL
197		xslHandleDebugger	(xmlNodePtr cur,
198					 xmlNodePtr node,
199					 xsltTemplatePtr templ,
200					 xsltTransformContextPtr ctxt);
201
202#ifdef __cplusplus
203}
204#endif
205
206#endif /* __XML_XSLT_TRANSFORM_H__ */
207
208