|
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 * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. |
|
16 */ |
|
17 |
|
18 /** @file |
|
19 @publishedAll |
|
20 @released |
|
21 */ |
|
22 |
|
23 #ifndef XML_XPTR_H |
|
24 #define XML_XPTR_H |
|
25 |
|
26 #include <stdapis/libxml2/libxml2_xmlversion.h> |
|
27 #include <stdapis/libxml2/libxml2_tree.h> |
|
28 #include <stdapis/libxml2/libxml2_xpath.h> |
|
29 |
|
30 #ifdef __cplusplus |
|
31 extern "C" { |
|
32 #endif |
|
33 |
|
34 /* |
|
35 * A Location Set |
|
36 */ |
|
37 typedef struct _xmlLocationSet xmlLocationSet; |
|
38 typedef xmlLocationSet *xmlLocationSetPtr; |
|
39 struct _xmlLocationSet { |
|
40 int locNr; /* number of locations in the set */ |
|
41 int locMax; /* size of the array as allocated */ |
|
42 xmlXPathObjectPtr *locTab;/* array of locations */ |
|
43 }; |
|
44 |
|
45 /* |
|
46 * Handling of location sets. |
|
47 */ |
|
48 |
|
49 XMLPUBFUN xmlLocationSetPtr XMLCALL |
|
50 xmlXPtrLocationSetCreate (xmlXPathObjectPtr val); |
|
51 XMLPUBFUN void XMLCALL |
|
52 xmlXPtrFreeLocationSet (xmlLocationSetPtr obj); |
|
53 XMLPUBFUN xmlLocationSetPtr XMLCALL |
|
54 xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, |
|
55 xmlLocationSetPtr val2); |
|
56 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
57 xmlXPtrNewRange (xmlNodePtr start, |
|
58 int startindex, |
|
59 xmlNodePtr end, |
|
60 int endindex); |
|
61 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
62 xmlXPtrNewRangePoints (xmlXPathObjectPtr start, |
|
63 xmlXPathObjectPtr end); |
|
64 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
65 xmlXPtrNewRangeNodePoint (xmlNodePtr start, |
|
66 xmlXPathObjectPtr end); |
|
67 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
68 xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, |
|
69 xmlNodePtr end); |
|
70 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
71 xmlXPtrNewRangeNodes (xmlNodePtr start, |
|
72 xmlNodePtr end); |
|
73 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
74 xmlXPtrNewLocationSetNodes (xmlNodePtr start, |
|
75 xmlNodePtr end); |
|
76 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
77 xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set); |
|
78 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
79 xmlXPtrNewRangeNodeObject (xmlNodePtr start, |
|
80 xmlXPathObjectPtr end); |
|
81 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
82 xmlXPtrNewCollapsedRange (xmlNodePtr start); |
|
83 XMLPUBFUN void XMLCALL |
|
84 xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, |
|
85 xmlXPathObjectPtr val); |
|
86 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
87 xmlXPtrWrapLocationSet (xmlLocationSetPtr val); |
|
88 XMLPUBFUN void XMLCALL |
|
89 xmlXPtrLocationSetDel (xmlLocationSetPtr cur, |
|
90 xmlXPathObjectPtr val); |
|
91 XMLPUBFUN void XMLCALL |
|
92 xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, |
|
93 int val); |
|
94 |
|
95 /* |
|
96 * Functions. |
|
97 */ |
|
98 XMLPUBFUN xmlXPathContextPtr XMLCALL |
|
99 xmlXPtrNewContext (xmlDocPtr doc, |
|
100 xmlNodePtr here, |
|
101 xmlNodePtr origin); |
|
102 XMLPUBFUN xmlXPathObjectPtr XMLCALL |
|
103 xmlXPtrEval (const xmlChar *str, |
|
104 xmlXPathContextPtr ctx); |
|
105 XMLPUBFUN void XMLCALL |
|
106 xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, |
|
107 int nargs); |
|
108 XMLPUBFUN xmlNodePtr XMLCALL |
|
109 xmlXPtrBuildNodeList (xmlXPathObjectPtr obj); |
|
110 XMLPUBFUN void XMLCALL |
|
111 xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt); |
|
112 #ifdef __cplusplus |
|
113 } |
|
114 #endif |
|
115 #endif /* XML_XPTR_H */ |