15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/*
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Summary: interface for the template processing
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Description: This set of routine encapsulates XPath calls
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *              and Attribute Value Templates evaluation.
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Copy: See Copyright for the status of this software.
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) *
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Author: Daniel Veillard
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef __XML_XSLT_TEMPLATES_H__
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define __XML_XSLT_TEMPLATES_H__
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <libxml/xpath.h>
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <libxml/xpathInternals.h>
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "xsltexports.h"
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "xsltInternals.h"
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)extern "C" {
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN int XSLTCALL
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltEvalXPathPredicate		(xsltTransformContextPtr ctxt,
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlXPathCompExprPtr comp,
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		                                 xmlNsPtr *nsList,
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 int nsNr);
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlChar * XSLTCALL
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltEvalTemplateString		(xsltTransformContextPtr ctxt,
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNodePtr contextNode,
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNodePtr inst);
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlChar * XSLTCALL
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltEvalAttrValueTemplate	(xsltTransformContextPtr ctxt,
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNodePtr node,
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 const xmlChar *name,
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 const xmlChar *ns);
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN const xmlChar * XSLTCALL
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltEvalStaticAttrValueTemplate	(xsltStylesheetPtr style,
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNodePtr node,
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 const xmlChar *name,
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 const xmlChar *ns,
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 int *found);
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* TODO: this is obviously broken ... the namespaces should be passed too ! */
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlChar * XSLTCALL
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltEvalXPathString		(xsltTransformContextPtr ctxt,
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlXPathCompExprPtr comp);
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlChar * XSLTCALL
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltEvalXPathStringNs		(xsltTransformContextPtr ctxt,
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlXPathCompExprPtr comp,
515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 int nsNr,
525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNsPtr *nsList);
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlNodePtr * XSLTCALL
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltTemplateProcess		(xsltTransformContextPtr ctxt,
565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNodePtr node);
575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlAttrPtr XSLTCALL
585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltAttrListTemplateProcess	(xsltTransformContextPtr ctxt,
595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNodePtr target,
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlAttrPtr cur);
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlAttrPtr XSLTCALL
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltAttrTemplateProcess		(xsltTransformContextPtr ctxt,
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNodePtr target,
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlAttrPtr attr);
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlChar * XSLTCALL
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltAttrTemplateValueProcess	(xsltTransformContextPtr ctxt,
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 const xmlChar* attr);
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)XSLTPUBFUN xmlChar * XSLTCALL
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)		xsltAttrTemplateValueProcessNode(xsltTransformContextPtr ctxt,
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 const xmlChar* str,
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)						 xmlNodePtr node);
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifdef __cplusplus
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* __XML_XSLT_TEMPLATES_H__ */
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
78