/ libxml2 / include / libxml / xpointer.h
xpointer.h
  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__ */