1 /*
   2  * Summary: interface for the template processing
   3  * Description: This set of routine encapsulates XPath calls
   4  *              and Attribute Value Templates evaluation.
   5  *
   6  * Copy: See Copyright for the status of this software.
   7  *
   8  * Author: Daniel Veillard
   9  */
  10 
  11 #ifndef __XML_XSLT_TEMPLATES_H__
  12 #define __XML_XSLT_TEMPLATES_H__
  13 
  14 #include <libxml/xpath.h>
  15 #include <libxml/xpathInternals.h>
  16 #include "xsltexports.h"
  17 #include "xsltInternals.h"
  18 
  19 #ifdef __cplusplus
  20 extern "C" {
  21 #endif
  22 
  23 XSLTPUBFUN int XSLTCALL
  24         xsltEvalXPathPredicate      (xsltTransformContextPtr ctxt,
  25                          xmlXPathCompExprPtr comp,
  26                                          xmlNsPtr *nsList,
  27                          int nsNr);
  28 XSLTPUBFUN xmlChar * XSLTCALL
  29         xsltEvalTemplateString      (xsltTransformContextPtr ctxt,
  30                          xmlNodePtr contextNode,
  31                          xmlNodePtr inst);
  32 XSLTPUBFUN xmlChar * XSLTCALL
  33         xsltEvalAttrValueTemplate   (xsltTransformContextPtr ctxt,
  34                          xmlNodePtr node,
  35                          const xmlChar *name,
  36                          const xmlChar *ns);
  37 XSLTPUBFUN const xmlChar * XSLTCALL
  38         xsltEvalStaticAttrValueTemplate (xsltStylesheetPtr style,
  39                          xmlNodePtr node,
  40                          const xmlChar *name,
  41                          const xmlChar *ns,
  42                          int *found);
  43 
  44 /* TODO: this is obviously broken ... the namespaces should be passed too ! */
  45 XSLTPUBFUN xmlChar * XSLTCALL
  46         xsltEvalXPathString     (xsltTransformContextPtr ctxt,
  47                          xmlXPathCompExprPtr comp);
  48 XSLTPUBFUN xmlChar * XSLTCALL
  49         xsltEvalXPathStringNs       (xsltTransformContextPtr ctxt,
  50                          xmlXPathCompExprPtr comp,
  51                          int nsNr,
  52                          xmlNsPtr *nsList);
  53 
  54 XSLTPUBFUN xmlNodePtr * XSLTCALL
  55         xsltTemplateProcess     (xsltTransformContextPtr ctxt,
  56                          xmlNodePtr node);
  57 XSLTPUBFUN xmlAttrPtr XSLTCALL
  58         xsltAttrListTemplateProcess (xsltTransformContextPtr ctxt,
  59                          xmlNodePtr target,
  60                          xmlAttrPtr cur);
  61 XSLTPUBFUN xmlAttrPtr XSLTCALL
  62         xsltAttrTemplateProcess     (xsltTransformContextPtr ctxt,
  63                          xmlNodePtr target,
  64                          xmlAttrPtr attr);
  65 XSLTPUBFUN xmlChar * XSLTCALL
  66         xsltAttrTemplateValueProcess    (xsltTransformContextPtr ctxt,
  67                          const xmlChar* attr);
  68 XSLTPUBFUN xmlChar * XSLTCALL
  69         xsltAttrTemplateValueProcessNode(xsltTransformContextPtr ctxt,
  70                          const xmlChar* str,
  71                          xmlNodePtr node);
  72 #ifdef __cplusplus
  73 }
  74 #endif
  75 
  76 #endif /* __XML_XSLT_TEMPLATES_H__ */
  77