Home | History | Annotate | Download | only in libxml
      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__ */
    115