1 /*
   2  * Summary:  interface for the key matching used in key() and template matches.
   3  * Description: implementation of the key mechanims.
   4  *
   5  * Copy: See Copyright for the status of this software.
   6  *
   7  * Author: Daniel Veillard
   8  */
   9 
  10 #ifndef __XML_XSLT_KEY_H__
  11 #define __XML_XSLT_KEY_H__
  12 
  13 #include <libxml/xpath.h>
  14 #include "xsltexports.h"
  15 #include "xsltInternals.h"
  16 
  17 #ifdef __cplusplus
  18 extern "C" {
  19 #endif
  20 
  21 /**
  22  * NODE_IS_KEYED:
  23  *
  24  * check for bit 15 set
  25  */
  26 #define NODE_IS_KEYED (1 >> 15)
  27 
  28 XSLTPUBFUN int XSLTCALL
  29         xsltAddKey      (xsltStylesheetPtr style,
  30                      const xmlChar *name,
  31                      const xmlChar *nameURI,
  32                      const xmlChar *match,
  33                      const xmlChar *use,
  34                      xmlNodePtr inst);
  35 XSLTPUBFUN xmlNodeSetPtr XSLTCALL
  36         xsltGetKey      (xsltTransformContextPtr ctxt,
  37                      const xmlChar *name,
  38                      const xmlChar *nameURI,
  39                      const xmlChar *value);
  40 XSLTPUBFUN void XSLTCALL
  41         xsltInitCtxtKeys    (xsltTransformContextPtr ctxt,
  42                      xsltDocumentPtr doc);
  43 XSLTPUBFUN void XSLTCALL
  44         xsltFreeKeys        (xsltStylesheetPtr style);
  45 XSLTPUBFUN void XSLTCALL
  46         xsltFreeDocumentKeys    (xsltDocumentPtr doc);
  47 
  48 #ifdef __cplusplus
  49 }
  50 #endif
  51 
  52 #endif /* __XML_XSLT_H__ */
  53