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