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
18extern "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
28XSLTPUBFUN 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);
35XSLTPUBFUN xmlNodeSetPtr XSLTCALL
36		xsltGetKey		(xsltTransformContextPtr ctxt,
37					 const xmlChar *name,
38					 const xmlChar *nameURI,
39					 const xmlChar *value);
40XSLTPUBFUN void XSLTCALL
41		xsltInitCtxtKeys	(xsltTransformContextPtr ctxt,
42					 xsltDocumentPtr doc);
43XSLTPUBFUN void XSLTCALL
44		xsltFreeKeys		(xsltStylesheetPtr style);
45XSLTPUBFUN void XSLTCALL
46		xsltFreeDocumentKeys	(xsltDocumentPtr doc);
47
48#ifdef __cplusplus
49}
50#endif
51
52#endif /* __XML_XSLT_H__ */
53
54