1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: internal interfaces for XML Path Language implementation
3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: internal interfaces for XML Path Language implementation
4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *              used to build new modules on top of XPath like XPointer and
5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *              XSLT
6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software.
8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Daniel Veillard
10ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_XPATH_INTERNALS_H__
13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_XPATH_INTERNALS_H__
14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h>
16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xpath.h>
17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_XPATH_ENABLED
19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" {
22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/************************************************************************
25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *									*
26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *			Helpers						*
27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *									*
28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project ************************************************************************/
29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Many of these macros may later turn into functions. They
32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * shouldn't be used in #ifdef's preprocessor instructions.
33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathSetError:
36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @err:  an xmlXPathError code
38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Raises an error.
40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathSetError(ctxt, err)					\
42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    { xmlXPatherror((ctxt), __FILE__, __LINE__, (err));			\
43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project      if ((ctxt) != NULL) (ctxt)->error = (err); }
44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
46ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathSetArityError:
47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
48ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Raises an XPATH_INVALID_ARITY error.
50ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathSetArityError(ctxt)					\
52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    xmlXPathSetError((ctxt), XPATH_INVALID_ARITY)
53ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
54ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathSetTypeError:
56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
57ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
58ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Raises an XPATH_INVALID_TYPE error.
59ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
60ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathSetTypeError(ctxt)					\
61ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    xmlXPathSetError((ctxt), XPATH_INVALID_TYPE)
62ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
63ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
64ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathGetError:
65ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
66ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
67ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Get the error code of an XPath context.
68ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
69ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns the context error.
70ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathGetError(ctxt)	  ((ctxt)->error)
72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
73ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathCheckError:
75ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
76ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Check if an XPath error was raised.
78ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns true if an error has been raised, false otherwise.
80ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
81ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathCheckError(ctxt)  ((ctxt)->error != XPATH_EXPRESSION_OK)
82ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
83ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
84ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathGetDocument:
85ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
86ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
87ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Get the document of an XPath context.
88ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns the context document.
90ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathGetDocument(ctxt)	((ctxt)->context->doc)
92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathGetContextNode:
95ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt: an XPath parser context
96ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
97ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Get the context node of an XPath context.
98ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
99ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns the context node.
100ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
101ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathGetContextNode(ctxt)	((ctxt)->context->node)
102ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
103ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
104ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathPopBoolean	(xmlXPathParserContextPtr ctxt);
105ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN double XMLCALL
106ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    		xmlXPathPopNumber	(xmlXPathParserContextPtr ctxt);
107ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
108ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    		xmlXPathPopString	(xmlXPathParserContextPtr ctxt);
109ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
110ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    		xmlXPathPopNodeSet	(xmlXPathParserContextPtr ctxt);
111ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void * XMLCALL
112ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    		xmlXPathPopExternal	(xmlXPathParserContextPtr ctxt);
113ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
114ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
115ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnBoolean:
116ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
117ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @val:  a boolean
118ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
119ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes the boolean @val on the context stack.
120ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
121ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnBoolean(ctxt, val)				\
122ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    valuePush((ctxt), xmlXPathNewBoolean(val))
123ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
124ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
125ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnTrue:
126ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
127ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
128ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes true on the context stack.
129ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
130ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnTrue(ctxt)   xmlXPathReturnBoolean((ctxt), 1)
131ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
132ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
133ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnFalse:
134ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
135ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
136ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes false on the context stack.
137ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
138ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnFalse(ctxt)  xmlXPathReturnBoolean((ctxt), 0)
139ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
140ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
141ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnNumber:
142ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
143ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @val:  a double
144ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
145ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes the double @val on the context stack.
146ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
147ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnNumber(ctxt, val)					\
148ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    valuePush((ctxt), xmlXPathNewFloat(val))
149ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
150ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
151ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnString:
152ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
153ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @str:  a string
154ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
155ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes the string @str on the context stack.
156ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
157ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnString(ctxt, str)					\
158ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    valuePush((ctxt), xmlXPathWrapString(str))
159ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
160ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
161ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnEmptyString:
162ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
163ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
164ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes an empty string on the stack.
165ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
166ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnEmptyString(ctxt)					\
167ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    valuePush((ctxt), xmlXPathNewCString(""))
168ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
169ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
170ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnNodeSet:
171ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
172ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ns:  a node-set
173ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
174ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes the node-set @ns on the context stack.
175ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
176ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnNodeSet(ctxt, ns)					\
177ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    valuePush((ctxt), xmlXPathWrapNodeSet(ns))
178ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
179ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
180ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnEmptyNodeSet:
181ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
182ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
183ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes an empty node-set on the context stack.
184ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
185ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnEmptyNodeSet(ctxt)				\
186ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    valuePush((ctxt), xmlXPathNewNodeSet(NULL))
187ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
188ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
189ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathReturnExternal:
190ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt:  an XPath parser context
191ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @val:  user data
192ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
193ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Pushes user data on the context stack.
194ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
195ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathReturnExternal(ctxt, val)				\
196ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    valuePush((ctxt), xmlXPathWrapExternal(val))
197ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
198ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
199ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathStackIsNodeSet:
200ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt: an XPath parser context
201ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
202ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Check if the current value on the XPath stack is a node set or
203ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * an XSLT value tree.
204ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
205ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns true if the current object on the stack is a node-set.
206ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
207ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathStackIsNodeSet(ctxt)					\
208ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    (((ctxt)->value != NULL)						\
209ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project     && (((ctxt)->value->type == XPATH_NODESET)				\
210ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project         || ((ctxt)->value->type == XPATH_XSLT_TREE)))
211ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
212ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
213ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathStackIsExternal:
214ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ctxt: an XPath parser context
215ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
216ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Checks if the current value on the XPath stack is an external
217ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * object.
218ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
219ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Returns true if the current object on the stack is an external
220ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * object.
221ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
222ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathStackIsExternal(ctxt)					\
223ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project	((ctxt->value != NULL) && (ctxt->value->type == XPATH_USERS))
224ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
225ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
226ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * xmlXPathEmptyNodeSet:
227ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @ns:  a node-set
228ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
229ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Empties a node-set.
230ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
231ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define xmlXPathEmptyNodeSet(ns)					\
232ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    { while ((ns)->nodeNr > 0) (ns)->nodeTab[(ns)->nodeNr--] = NULL; }
233ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
234ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
235ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * CHECK_ERROR:
236ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
237ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to return from the function if an XPath error was detected.
238ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
239ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define CHECK_ERROR							\
240ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if (ctxt->error != XPATH_EXPRESSION_OK) return
241ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
242ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
243ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * CHECK_ERROR0:
244ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
245ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to return 0 from the function if an XPath error was detected.
246ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
247ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define CHECK_ERROR0							\
248ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if (ctxt->error != XPATH_EXPRESSION_OK) return(0)
249ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
250ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
251ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * XP_ERROR:
252ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @X:  the error code
253ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
254ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to raise an XPath error and return.
255ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
256ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define XP_ERROR(X)							\
257ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    { xmlXPathErr(ctxt, X); return; }
258ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
259ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
260ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * XP_ERROR0:
261ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @X:  the error code
262ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
263ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to raise an XPath error and return 0.
264ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
265ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define XP_ERROR0(X)							\
266ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    { xmlXPathErr(ctxt, X); return(0); }
267ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
268ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
269ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * CHECK_TYPE:
270ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @typeval:  the XPath type
271ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
272ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to check that the value on top of the XPath stack is of a given
273ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * type.
274ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
275ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define CHECK_TYPE(typeval)						\
276ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if ((ctxt->value == NULL) || (ctxt->value->type != typeval))	\
277ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        XP_ERROR(XPATH_INVALID_TYPE)
278ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
279ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
280ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * CHECK_TYPE0:
281ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @typeval:  the XPath type
282ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
283ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to check that the value on top of the XPath stack is of a given
284ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * type. Return(0) in case of failure
285ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
286ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define CHECK_TYPE0(typeval)						\
287ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if ((ctxt->value == NULL) || (ctxt->value->type != typeval))	\
288ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        XP_ERROR0(XPATH_INVALID_TYPE)
289ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
290ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
291ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * CHECK_ARITY:
292ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * @x:  the number of expected args
293ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
294ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to check that the number of args passed to an XPath function matches.
295ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
296ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define CHECK_ARITY(x)							\
297ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if (ctxt == NULL) return;						\
298ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if (nargs != (x))							\
299ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        XP_ERROR(XPATH_INVALID_ARITY);
300ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
301ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
302ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * CAST_TO_STRING:
303ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
304ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to try to cast the value on the top of the XPath stack to a string.
305ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
306ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define CAST_TO_STRING							\
307ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_STRING))	\
308ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlXPathStringFunction(ctxt, 1);
309ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
310ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
311ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * CAST_TO_NUMBER:
312ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
313ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to try to cast the value on the top of the XPath stack to a number.
314ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
315ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define CAST_TO_NUMBER							\
316ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_NUMBER))	\
317ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlXPathNumberFunction(ctxt, 1);
318ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
319ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
320ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * CAST_TO_BOOLEAN:
321ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
322ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Macro to try to cast the value on the top of the XPath stack to a boolean.
323ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
324ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define CAST_TO_BOOLEAN							\
325ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    if ((ctxt->value != NULL) && (ctxt->value->type != XPATH_BOOLEAN))	\
326ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project        xmlXPathBooleanFunction(ctxt, 1);
327ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
328ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
329ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Variable Lookup forwarding.
330ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
331ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
332ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
333ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project	xmlXPathRegisterVariableLookup	(xmlXPathContextPtr ctxt,
334ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlXPathVariableLookupFunc f,
335ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 void *data);
336ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
337ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
338ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Function Lookup forwarding.
339ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
340ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
341ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
342ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project	    xmlXPathRegisterFuncLookup	(xmlXPathContextPtr ctxt,
343ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlXPathFuncLookupFunc f,
344ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 void *funcCtxt);
345ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
346ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
347ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Error reporting.
348ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
349ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
350ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPatherror	(xmlXPathParserContextPtr ctxt,
351ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project				 const char *file,
352ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project				 int line,
353ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project				 int no);
354ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
355ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
356ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathErr	(xmlXPathParserContextPtr ctxt,
357ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project				 int error);
358ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
359ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_DEBUG_ENABLED
360ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
361ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathDebugDumpObject	(FILE *output,
362ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlXPathObjectPtr cur,
363ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int depth);
364ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
365ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project	    xmlXPathDebugDumpCompExpr(FILE *output,
366ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 xmlXPathCompExprPtr comp,
367ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 int depth);
368ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
369ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
370ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * NodeSet handling.
371ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
372ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
373ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeSetContains		(xmlNodeSetPtr cur,
374ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr val);
375ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
376ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathDifference		(xmlNodeSetPtr nodes1,
377ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodeSetPtr nodes2);
378ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
379ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathIntersection		(xmlNodeSetPtr nodes1,
380ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodeSetPtr nodes2);
381ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
382ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
383ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathDistinctSorted		(xmlNodeSetPtr nodes);
384ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
385ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathDistinct		(xmlNodeSetPtr nodes);
386ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
387ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
388ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathHasSameNodes		(xmlNodeSetPtr nodes1,
389ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodeSetPtr nodes2);
390ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
391ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
392ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeLeadingSorted	(xmlNodeSetPtr nodes,
393ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr node);
394ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
395ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathLeadingSorted		(xmlNodeSetPtr nodes1,
396ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodeSetPtr nodes2);
397ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
398ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeLeading		(xmlNodeSetPtr nodes,
399ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr node);
400ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
401ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathLeading			(xmlNodeSetPtr nodes1,
402ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodeSetPtr nodes2);
403ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
404ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
405ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeTrailingSorted	(xmlNodeSetPtr nodes,
406ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr node);
407ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
408ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathTrailingSorted		(xmlNodeSetPtr nodes1,
409ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodeSetPtr nodes2);
410ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
411ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeTrailing		(xmlNodeSetPtr nodes,
412ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr node);
413ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
414ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathTrailing		(xmlNodeSetPtr nodes1,
415ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodeSetPtr nodes2);
416ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
417ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
418ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
419ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Extending a context.
420ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
421ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
422ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
423ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisterNs		(xmlXPathContextPtr ctxt,
424ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *prefix,
425ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *ns_uri);
426ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN const xmlChar * XMLCALL
427ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNsLookup		(xmlXPathContextPtr ctxt,
428ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *prefix);
429ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
430ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisteredNsCleanup	(xmlXPathContextPtr ctxt);
431ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
432ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
433ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisterFunc		(xmlXPathContextPtr ctxt,
434ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *name,
435ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathFunction f);
436ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
437ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisterFuncNS		(xmlXPathContextPtr ctxt,
438ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *name,
439ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *ns_uri,
440ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathFunction f);
441ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
442ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisterVariable	(xmlXPathContextPtr ctxt,
443ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *name,
444ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathObjectPtr value);
445ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
446ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisterVariableNS	(xmlXPathContextPtr ctxt,
447ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *name,
448ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *ns_uri,
449ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathObjectPtr value);
450ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathFunction XMLCALL
451ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathFunctionLookup		(xmlXPathContextPtr ctxt,
452ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *name);
453ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathFunction XMLCALL
454ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathFunctionLookupNS	(xmlXPathContextPtr ctxt,
455ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *name,
456ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *ns_uri);
457ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
458ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisteredFuncsCleanup	(xmlXPathContextPtr ctxt);
459ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
460ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathVariableLookup		(xmlXPathContextPtr ctxt,
461ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *name);
462ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
463ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathVariableLookupNS	(xmlXPathContextPtr ctxt,
464ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *name,
465ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 const xmlChar *ns_uri);
466ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
467ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisteredVariablesCleanup(xmlXPathContextPtr ctxt);
468ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
469ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
470ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Utilities to extend XPath.
471ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
472ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathParserContextPtr XMLCALL
473ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		  xmlXPathNewParserContext	(const xmlChar *str,
474ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			  			 xmlXPathContextPtr ctxt);
475ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
476ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathFreeParserContext	(xmlXPathParserContextPtr ctxt);
477ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
478ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* TODO: remap to xmlXPathValuePop and Push. */
479ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
480ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		valuePop			(xmlXPathParserContextPtr ctxt);
481ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
482ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		valuePush			(xmlXPathParserContextPtr ctxt,
483ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project					 	 xmlXPathObjectPtr value);
484ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
485ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
486ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNewString		(const xmlChar *val);
487ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
488ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNewCString		(const char *val);
489ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
490ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathWrapString		(xmlChar *val);
491ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
492ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathWrapCString		(char * val);
493ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
494ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNewFloat		(double val);
495ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
496ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNewBoolean		(int val);
497ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
498ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNewNodeSet		(xmlNodePtr val);
499ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
500ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNewValueTree		(xmlNodePtr val);
501ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
502ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeSetAdd		(xmlNodeSetPtr cur,
503ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr val);
504ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
505ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeSetAddUnique	(xmlNodeSetPtr cur,
506ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr val);
507ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
508ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeSetAddNs		(xmlNodeSetPtr cur,
509ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr node,
510ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNsPtr ns);
511ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
512ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeSetSort		(xmlNodeSetPtr set);
513ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
514ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
515ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRoot			(xmlXPathParserContextPtr ctxt);
516ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
517ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathEvalExpr		(xmlXPathParserContextPtr ctxt);
518ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
519ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathParseName		(xmlXPathParserContextPtr ctxt);
520ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlChar * XMLCALL
521ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathParseNCName		(xmlXPathParserContextPtr ctxt);
522ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
523ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
524ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Existing functions.
525ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
526ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN double XMLCALL
527ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathStringEvalNumber	(const xmlChar *str);
528ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL
529ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathEvaluatePredicateResult (xmlXPathParserContextPtr ctxt,
530ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathObjectPtr res);
531ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
532ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathRegisterAllFunctions	(xmlXPathContextPtr ctxt);
533ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodeSetPtr XMLCALL
534ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeSetMerge		(xmlNodeSetPtr val1,
535ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodeSetPtr val2);
536ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
537ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeSetDel		(xmlNodeSetPtr cur,
538ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr val);
539ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL
540ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNodeSetRemove		(xmlNodeSetPtr cur,
541ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 int val);
542ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
543ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathNewNodeSetList		(xmlNodeSetPtr val);
544ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
545ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathWrapNodeSet		(xmlNodeSetPtr val);
546ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlXPathObjectPtr XMLCALL
547ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		xmlXPathWrapExternal		(void *val);
548ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
549ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL xmlXPathEqualValues(xmlXPathParserContextPtr ctxt);
550ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL xmlXPathNotEqualValues(xmlXPathParserContextPtr ctxt);
551ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL xmlXPathCompareValues(xmlXPathParserContextPtr ctxt, int inf, int strict);
552ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathValueFlipSign(xmlXPathParserContextPtr ctxt);
553ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathAddValues(xmlXPathParserContextPtr ctxt);
554ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathSubValues(xmlXPathParserContextPtr ctxt);
555ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathMultValues(xmlXPathParserContextPtr ctxt);
556ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathDivValues(xmlXPathParserContextPtr ctxt);
557ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathModValues(xmlXPathParserContextPtr ctxt);
558ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
559ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN int XMLCALL xmlXPathIsNodeType(const xmlChar *name);
560ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
561ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
562ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Some of the axis navigation routines.
563ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
564ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextSelf(xmlXPathParserContextPtr ctxt,
565ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
566ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextChild(xmlXPathParserContextPtr ctxt,
567ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
568ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendant(xmlXPathParserContextPtr ctxt,
569ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
570ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextDescendantOrSelf(xmlXPathParserContextPtr ctxt,
571ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
572ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextParent(xmlXPathParserContextPtr ctxt,
573ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
574ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestorOrSelf(xmlXPathParserContextPtr ctxt,
575ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
576ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowingSibling(xmlXPathParserContextPtr ctxt,
577ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
578ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextFollowing(xmlXPathParserContextPtr ctxt,
579ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
580ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextNamespace(xmlXPathParserContextPtr ctxt,
581ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
582ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAttribute(xmlXPathParserContextPtr ctxt,
583ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
584ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPreceding(xmlXPathParserContextPtr ctxt,
585ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
586ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextAncestor(xmlXPathParserContextPtr ctxt,
587ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
588ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN xmlNodePtr XMLCALL xmlXPathNextPrecedingSibling(xmlXPathParserContextPtr ctxt,
589ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project			xmlNodePtr cur);
590ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
591ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * The official core of XPath functions.
592ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
593ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathLastFunction(xmlXPathParserContextPtr ctxt, int nargs);
594ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathPositionFunction(xmlXPathParserContextPtr ctxt, int nargs);
595ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathCountFunction(xmlXPathParserContextPtr ctxt, int nargs);
596ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathIdFunction(xmlXPathParserContextPtr ctxt, int nargs);
597ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathLocalNameFunction(xmlXPathParserContextPtr ctxt, int nargs);
598ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathNamespaceURIFunction(xmlXPathParserContextPtr ctxt, int nargs);
599ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathStringFunction(xmlXPathParserContextPtr ctxt, int nargs);
600ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathStringLengthFunction(xmlXPathParserContextPtr ctxt, int nargs);
601ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathConcatFunction(xmlXPathParserContextPtr ctxt, int nargs);
602ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathContainsFunction(xmlXPathParserContextPtr ctxt, int nargs);
603ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathStartsWithFunction(xmlXPathParserContextPtr ctxt, int nargs);
604ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathSubstringFunction(xmlXPathParserContextPtr ctxt, int nargs);
605ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathSubstringBeforeFunction(xmlXPathParserContextPtr ctxt, int nargs);
606ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathSubstringAfterFunction(xmlXPathParserContextPtr ctxt, int nargs);
607ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathNormalizeFunction(xmlXPathParserContextPtr ctxt, int nargs);
608ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathTranslateFunction(xmlXPathParserContextPtr ctxt, int nargs);
609ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathNotFunction(xmlXPathParserContextPtr ctxt, int nargs);
610ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathTrueFunction(xmlXPathParserContextPtr ctxt, int nargs);
611ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathFalseFunction(xmlXPathParserContextPtr ctxt, int nargs);
612ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathLangFunction(xmlXPathParserContextPtr ctxt, int nargs);
613ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathNumberFunction(xmlXPathParserContextPtr ctxt, int nargs);
614ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathSumFunction(xmlXPathParserContextPtr ctxt, int nargs);
615ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathFloorFunction(xmlXPathParserContextPtr ctxt, int nargs);
616ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathCeilingFunction(xmlXPathParserContextPtr ctxt, int nargs);
617ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathRoundFunction(xmlXPathParserContextPtr ctxt, int nargs);
618ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathBooleanFunction(xmlXPathParserContextPtr ctxt, int nargs);
619ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
620ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/**
621ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Really internal functions
622ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
623ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source ProjectXMLPUBFUN void XMLCALL xmlXPathNodeSetFreeNs(xmlNsPtr ns);
624ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
625ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
626ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}
627ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
628ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
629ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_XPATH_ENABLED */
630ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* ! __XML_XPATH_INTERNALS_H__ */
631