blob: 255f826efb1bf6dc1993ada72c8d4f1f9555bd1a [file] [log] [blame]
Owen Taylor3473f882001-02-23 17:55:21 +00001/*
2 * xpointer.h : API to handle XML Pointers
3 *
4 * World Wide Web Consortium Working Draft 03-March-1998
5 * http://www.w3.org/TR/1998/WD-xptr-19980303
6 *
7 * See Copyright for the status of this software.
8 *
9 * Daniel.Veillard@w3.org
10 */
11
12#ifndef __XML_XPTR_H__
13#define __XML_XPTR_H__
14
15#include <libxml/tree.h>
16#include <libxml/xpath.h>
17
18#ifdef __cplusplus
19extern "C" {
20#endif
21
22/*
23 * A Location Set
24 */
25typedef struct _xmlLocationSet xmlLocationSet;
26typedef xmlLocationSet *xmlLocationSetPtr;
27struct _xmlLocationSet {
28 int locNr; /* number of locations in the set */
29 int locMax; /* size of the array as allocated */
30 xmlXPathObjectPtr *locTab;/* array of locations */
31};
32
33/*
34 * Handling of location sets
35 */
36
Daniel Veillard9e7160d2001-03-18 23:17:47 +000037xmlLocationSetPtr xmlXPtrLocationSetCreate(xmlXPathObjectPtr val);
Owen Taylor3473f882001-02-23 17:55:21 +000038void xmlXPtrFreeLocationSet (xmlLocationSetPtr obj);
39xmlLocationSetPtr xmlXPtrLocationSetMerge (xmlLocationSetPtr val1,
40 xmlLocationSetPtr val2);
Daniel Veillard9e7160d2001-03-18 23:17:47 +000041xmlXPathObjectPtr xmlXPtrNewRangeNodeObject(xmlNodePtr start,
42 xmlXPathObjectPtr end);
43void xmlXPtrLocationSetAdd (xmlLocationSetPtr cur,
44 xmlXPathObjectPtr val);
45xmlXPathObjectPtr xmlXPtrWrapLocationSet (xmlLocationSetPtr val);
Owen Taylor3473f882001-02-23 17:55:21 +000046
47/*
48 * Functions
49 */
50xmlXPathContextPtr xmlXPtrNewContext (xmlDocPtr doc,
51 xmlNodePtr here,
52 xmlNodePtr origin);
53xmlXPathObjectPtr xmlXPtrEval (const xmlChar *str,
54 xmlXPathContextPtr ctx);
55void xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt,
56 int nargs);
57xmlNodePtr xmlXPtrBuildNodeList (xmlXPathObjectPtr obj);
58void xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt);
59
60#ifdef __cplusplus
61}
62#endif
63#endif /* __XML_XPTR_H__ */