|
1 /* |
|
2 * Summary: API to handle XML Pointers |
|
3 * Description: API to handle XML Pointers |
|
4 * Base implementation was made accordingly to |
|
5 * W3C Candidate Recommendation 7 June 2000 |
|
6 * http://www.w3.org/TR/2000/CR-xptr-20000607 |
|
7 * |
|
8 * Added support for the element() scheme described in: |
|
9 * W3C Proposed Recommendation 13 November 2002 |
|
10 * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ |
|
11 * |
|
12 * Copy: See Copyright for the status of this software. |
|
13 * |
|
14 * Author: Daniel Veillard |
|
15 */ |
|
16 |
|
17 #ifndef __XML_XPTR_H__ |
|
18 #define __XML_XPTR_H__ |
|
19 |
|
20 #include <libxml/xmlversion.h> |
|
21 |
|
22 #ifdef LIBXML_XPTR_ENABLED |
|
23 |
|
24 #include <libxml/tree.h> |
|
25 #include <libxml/xpath.h> |
|
26 |
|
27 #ifdef __cplusplus |
|
28 extern "C" { |
|
29 #endif |
|
30 |
|
31 /* |
|
32 * A Location Set |
|
33 */ |
|
34 typedef struct _xmlLocationSet xmlLocationSet; |
|
35 typedef xmlLocationSet *xmlLocationSetPtr; |
|
36 struct _xmlLocationSet { |
|
37 int locNr; /* number of locations in the set */ |
|
38 int locMax; /* size of the array as allocated */ |
|
39 xmlXPathObjectPtr *locTab;/* array of locations */ |
|
40 }; |
|
41 |
|
42 /* |
|
43 * Handling of location sets. |
|
44 */ |
|
45 |
|
46 XMLPUBFUN xmlLocationSetPtr XMLCALL |
|
47 xmlXPtrLocationSetCreate (xmlXPathObjectPtr val); |
|
48 XMLPUBFUN void XMLCALL |
|
49 xmlXPtrFreeLocationSet (xmlLocationSetPtr obj); |
|
50 XMLPUBFUN xmlLocationSetPtr XMLCALL |
|
51 xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, |
|
52 xmlLocationSetPtr val2); |
|
53 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
54 xmlXPtrNewRange (xmlNodePtr start, |
|
55 int startindex, |
|
56 xmlNodePtr end, |
|
57 int endindex); |
|
58 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
59 xmlXPtrNewRangePoints (xmlXPathObjectPtr start, |
|
60 xmlXPathObjectPtr end); |
|
61 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
62 xmlXPtrNewRangeNodePoint (xmlNodePtr start, |
|
63 xmlXPathObjectPtr end); |
|
64 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
65 xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, |
|
66 xmlNodePtr end); |
|
67 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
68 xmlXPtrNewRangeNodes (xmlNodePtr start, |
|
69 xmlNodePtr end); |
|
70 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
71 xmlXPtrNewLocationSetNodes (xmlNodePtr start, |
|
72 xmlNodePtr end); |
|
73 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
74 xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set); |
|
75 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
76 xmlXPtrNewRangeNodeObject (xmlNodePtr start, |
|
77 xmlXPathObjectPtr end); |
|
78 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
79 xmlXPtrNewCollapsedRange (xmlNodePtr start); |
|
80 XMLPUBFUN void XMLCALL |
|
81 xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, |
|
82 xmlXPathObjectPtr val); |
|
83 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
84 xmlXPtrWrapLocationSet (xmlLocationSetPtr val); |
|
85 XMLPUBFUN void XMLCALL |
|
86 xmlXPtrLocationSetDel (xmlLocationSetPtr cur, |
|
87 xmlXPathObjectPtr val); |
|
88 XMLPUBFUN void XMLCALL |
|
89 xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, |
|
90 int val); |
|
91 |
|
92 /* |
|
93 * Functions. |
|
94 */ |
|
95 XMLPUBFUN xmlXPathContextPtr XMLCALL |
|
96 xmlXPtrNewContext (xmlDocPtr doc, |
|
97 xmlNodePtr here, |
|
98 xmlNodePtr origin); |
|
99 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
100 xmlXPtrEval (const xmlChar *str, |
|
101 xmlXPathContextPtr ctx); |
|
102 XMLPUBFUN void XMLCALL |
|
103 xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, |
|
104 int nargs); |
|
105 XMLPUBFUN xmlNodePtr XMLCALL |
|
106 xmlXPtrBuildNodeList (xmlXPathObjectPtr obj); |
|
107 XMLPUBFUN void XMLCALL |
|
108 xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt); |
|
109 #ifdef __cplusplus |
|
110 } |
|
111 #endif |
|
112 |
|
113 #endif /* LIBXML_XPTR_ENABLED */ |
|
114 #endif /* __XML_XPTR_H__ */ |