1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: API to handle XML Pointers
3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: API to handle XML Pointers
4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Base implementation was made accordingly to
5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * W3C Candidate Recommendation 7 June 2000
6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * http://www.w3.org/TR/2000/CR-xptr-20000607
7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Added support for the element() scheme described in:
9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * W3C Proposed Recommendation 13 November 2002
1094442ad4107000e6d49f9b85a46a591495a57632Selim Gurun * http://www.w3.org/TR/2002/PR-xptr-element-20021113/
11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software.
13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project *
14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Daniel Veillard
15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_XPTR_H__
18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_XPTR_H__
19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h>
21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_XPTR_ENABLED
23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/tree.h>
25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xpath.h>
26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" {
29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * A Location Set
33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlLocationSet xmlLocationSet;
35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlLocationSet *xmlLocationSetPtr;
36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectstruct _xmlLocationSet {
37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    int locNr;		      /* number of locations in the set */
38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    int locMax;		      /* size of the array as allocated */
39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project    xmlXPathObjectPtr *locTab;/* array of locations */
40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project};
41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Handling of location sets.
44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
4694442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlLocationSetPtr XMLCALL
47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrLocationSetCreate	(xmlXPathObjectPtr val);
4894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL
49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrFreeLocationSet	(xmlLocationSetPtr obj);
5094442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlLocationSetPtr XMLCALL
51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrLocationSetMerge	(xmlLocationSetPtr val1,
52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlLocationSetPtr val2);
5394442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
54ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewRange		(xmlNodePtr start,
55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 int startindex,
56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr end,
57ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 int endindex);
5894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
59ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewRangePoints	(xmlXPathObjectPtr start,
60ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathObjectPtr end);
6194442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
62ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewRangeNodePoint	(xmlNodePtr start,
63ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathObjectPtr end);
6494442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
65ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewRangePointNode	(xmlXPathObjectPtr start,
66ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr end);
6794442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
68ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewRangeNodes	(xmlNodePtr start,
69ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr end);
7094442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewLocationSetNodes	(xmlNodePtr start,
72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr end);
7394442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set);
7594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
76ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewRangeNodeObject	(xmlNodePtr start,
77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathObjectPtr end);
7894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewCollapsedRange	(xmlNodePtr start);
8094442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL
81ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrLocationSetAdd	(xmlLocationSetPtr cur,
82ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathObjectPtr val);
8394442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
84ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrWrapLocationSet	(xmlLocationSetPtr val);
8594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL
86ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrLocationSetDel	(xmlLocationSetPtr cur,
87ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathObjectPtr val);
8894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL
89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrLocationSetRemove	(xmlLocationSetPtr cur,
90ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 int val);
91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/*
93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Functions.
94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */
9594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathContextPtr XMLCALL
96ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrNewContext		(xmlDocPtr doc,
97ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr here,
98ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlNodePtr origin);
9994442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL
100ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrEval			(const xmlChar *str,
101ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project						 xmlXPathContextPtr ctx);
10294442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL
103ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrRangeToFunction	(xmlXPathParserContextPtr ctxt,
10494442ad4107000e6d49f9b85a46a591495a57632Selim Gurun						 int nargs);
10594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlNodePtr XMLCALL
106ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrBuildNodeList	(xmlXPathObjectPtr obj);
10794442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL
108ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project		    xmlXPtrEvalRangePredicate	(xmlXPathParserContextPtr ctxt);
109ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus
110ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}
111ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif
112ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project
113ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_XPTR_ENABLED */
114ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* __XML_XPTR_H__ */
115