17d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang/*
27d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang * Summary:  interface for the key matching used in key() and template matches.
37d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang * Description: implementation of the key mechanims.
47d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang *
57d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang * Copy: See Copyright for the status of this software.
67d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang *
77d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang * Author: Daniel Veillard
87d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang */
97d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang
107d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#ifndef __XML_XSLT_KEY_H__
117d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#define __XML_XSLT_KEY_H__
127d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang
137d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#include <libxml/xpath.h>
147d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#include "xsltexports.h"
157d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#include "xsltInternals.h"
167d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang
177d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#ifdef __cplusplus
187d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wangextern "C" {
197d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#endif
207d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang
217d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang/**
227d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang * NODE_IS_KEYED:
237d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang *
247d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang * check for bit 15 set
257d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang */
267d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#define NODE_IS_KEYED (1 >> 15)
277d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang
287d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) WangXSLTPUBFUN int XSLTCALL
297d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang		xsltAddKey		(xsltStylesheetPtr style,
307d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 const xmlChar *name,
317d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 const xmlChar *nameURI,
327d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 const xmlChar *match,
337d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 const xmlChar *use,
347d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 xmlNodePtr inst);
357d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) WangXSLTPUBFUN xmlNodeSetPtr XSLTCALL
367d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang		xsltGetKey		(xsltTransformContextPtr ctxt,
377d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 const xmlChar *name,
387d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 const xmlChar *nameURI,
397d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 const xmlChar *value);
407d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) WangXSLTPUBFUN void XSLTCALL
417d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang		xsltInitCtxtKeys	(xsltTransformContextPtr ctxt,
427d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang					 xsltDocumentPtr doc);
437d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) WangXSLTPUBFUN void XSLTCALL
447d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang		xsltFreeKeys		(xsltStylesheetPtr style);
457d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) WangXSLTPUBFUN void XSLTCALL
467d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang		xsltFreeDocumentKeys	(xsltDocumentPtr doc);
477d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang
487d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#ifdef __cplusplus
497d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang}
507d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#endif
517d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang
527d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang#endif /* __XML_XSLT_H__ */
537d1dabff1598661db0018d89d16cca02f7c31ae2Shimeng (Simon) Wang
54