Reactos
at master 138 lines 3.6 kB view raw
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 28extern "C" { 29#endif 30 31#if defined(LIBXML_XPTR_LOCS_ENABLED) 32/* 33 * A Location Set 34 */ 35typedef struct _xmlLocationSet xmlLocationSet; 36typedef xmlLocationSet *xmlLocationSetPtr; 37struct _xmlLocationSet { 38 int locNr; /* number of locations in the set */ 39 int locMax; /* size of the array as allocated */ 40 xmlXPathObjectPtr *locTab;/* array of locations */ 41}; 42 43/* 44 * Handling of location sets. 45 */ 46 47XML_DEPRECATED 48XMLPUBFUN xmlLocationSetPtr 49 xmlXPtrLocationSetCreate (xmlXPathObjectPtr val); 50XML_DEPRECATED 51XMLPUBFUN void 52 xmlXPtrFreeLocationSet (xmlLocationSetPtr obj); 53XML_DEPRECATED 54XMLPUBFUN xmlLocationSetPtr 55 xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, 56 xmlLocationSetPtr val2); 57XML_DEPRECATED 58XMLPUBFUN xmlXPathObjectPtr 59 xmlXPtrNewRange (xmlNodePtr start, 60 int startindex, 61 xmlNodePtr end, 62 int endindex); 63XML_DEPRECATED 64XMLPUBFUN xmlXPathObjectPtr 65 xmlXPtrNewRangePoints (xmlXPathObjectPtr start, 66 xmlXPathObjectPtr end); 67XML_DEPRECATED 68XMLPUBFUN xmlXPathObjectPtr 69 xmlXPtrNewRangeNodePoint (xmlNodePtr start, 70 xmlXPathObjectPtr end); 71XML_DEPRECATED 72XMLPUBFUN xmlXPathObjectPtr 73 xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, 74 xmlNodePtr end); 75XML_DEPRECATED 76XMLPUBFUN xmlXPathObjectPtr 77 xmlXPtrNewRangeNodes (xmlNodePtr start, 78 xmlNodePtr end); 79XML_DEPRECATED 80XMLPUBFUN xmlXPathObjectPtr 81 xmlXPtrNewLocationSetNodes (xmlNodePtr start, 82 xmlNodePtr end); 83XML_DEPRECATED 84XMLPUBFUN xmlXPathObjectPtr 85 xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set); 86XML_DEPRECATED 87XMLPUBFUN xmlXPathObjectPtr 88 xmlXPtrNewRangeNodeObject (xmlNodePtr start, 89 xmlXPathObjectPtr end); 90XML_DEPRECATED 91XMLPUBFUN xmlXPathObjectPtr 92 xmlXPtrNewCollapsedRange (xmlNodePtr start); 93XML_DEPRECATED 94XMLPUBFUN void 95 xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, 96 xmlXPathObjectPtr val); 97XML_DEPRECATED 98XMLPUBFUN xmlXPathObjectPtr 99 xmlXPtrWrapLocationSet (xmlLocationSetPtr val); 100XML_DEPRECATED 101XMLPUBFUN void 102 xmlXPtrLocationSetDel (xmlLocationSetPtr cur, 103 xmlXPathObjectPtr val); 104XML_DEPRECATED 105XMLPUBFUN void 106 xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, 107 int val); 108#endif /* defined(LIBXML_XPTR_LOCS_ENABLED) */ 109 110/* 111 * Functions. 112 */ 113XMLPUBFUN xmlXPathContextPtr 114 xmlXPtrNewContext (xmlDocPtr doc, 115 xmlNodePtr here, 116 xmlNodePtr origin); 117XMLPUBFUN xmlXPathObjectPtr 118 xmlXPtrEval (const xmlChar *str, 119 xmlXPathContextPtr ctx); 120 121#if defined(LIBXML_XPTR_LOCS_ENABLED) 122XML_DEPRECATED 123XMLPUBFUN void 124 xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, 125 int nargs); 126XML_DEPRECATED 127XMLPUBFUN xmlNodePtr 128 xmlXPtrBuildNodeList (xmlXPathObjectPtr obj); 129XML_DEPRECATED 130XMLPUBFUN void 131 xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt); 132#endif /* defined(LIBXML_XPTR_LOCS_ENABLED) */ 133#ifdef __cplusplus 134} 135#endif 136 137#endif /* LIBXML_XPTR_ENABLED */ 138#endif /* __XML_XPTR_H__ */