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
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/
12 * Copy: See Copyright for the status of this software.
14 * Author: Daniel Veillard
17 #ifndef __XML_XPTR_H__
18 #define __XML_XPTR_H__
20 #include <libxml/xmlversion.h>
22 #ifdef LIBXML_XPTR_ENABLED
24 #include <libxml/tree.h>
25 #include <libxml/xpath.h>
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 */
43 * Handling of location sets.
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
,
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
,
67 XMLPUBFUN xmlXPathObjectPtr XMLCALL
68 xmlXPtrNewRangeNodes (xmlNodePtr start
,
70 XMLPUBFUN xmlXPathObjectPtr XMLCALL
71 xmlXPtrNewLocationSetNodes (xmlNodePtr start
,
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
,
95 XMLPUBFUN xmlXPathContextPtr XMLCALL
96 xmlXPtrNewContext (xmlDocPtr doc
,
99 XMLPUBFUN xmlXPathObjectPtr XMLCALL
100 xmlXPtrEval (const xmlChar
*str
,
101 xmlXPathContextPtr ctx
);
102 XMLPUBFUN
void XMLCALL
103 xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt
,
105 XMLPUBFUN xmlNodePtr XMLCALL
106 xmlXPtrBuildNodeList (xmlXPathObjectPtr obj
);
107 XMLPUBFUN
void XMLCALL
108 xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt
);
113 #endif /* LIBXML_XPTR_ENABLED */
114 #endif /* __XML_XPTR_H__ */