1ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 2ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Summary: API to handle XML Pointers 3ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Description: API to handle XML Pointers 4ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Base implementation was made accordingly to 5ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * W3C Candidate Recommendation 7 June 2000 6ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * http://www.w3.org/TR/2000/CR-xptr-20000607 7ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 8ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Added support for the element() scheme described in: 9ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * W3C Proposed Recommendation 13 November 2002 1094442ad4107000e6d49f9b85a46a591495a57632Selim Gurun * http://www.w3.org/TR/2002/PR-xptr-element-20021113/ 11ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 12ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Copy: See Copyright for the status of this software. 13ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * 14ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Author: Daniel Veillard 15ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 16ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 17ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifndef __XML_XPTR_H__ 18ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#define __XML_XPTR_H__ 19ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 20ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xmlversion.h> 21ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 22ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef LIBXML_XPTR_ENABLED 23ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 24ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/tree.h> 25ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#include <libxml/xpath.h> 26ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 27ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 28ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectextern "C" { 29ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 30ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 31ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 32ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * A Location Set 33ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 34ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef struct _xmlLocationSet xmlLocationSet; 35ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projecttypedef xmlLocationSet *xmlLocationSetPtr; 36ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Projectstruct _xmlLocationSet { 37ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int locNr; /* number of locations in the set */ 38ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int locMax; /* size of the array as allocated */ 39ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPathObjectPtr *locTab;/* array of locations */ 40ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project}; 41ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 42ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 43ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Handling of location sets. 44ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 45ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 4694442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlLocationSetPtr XMLCALL 47ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrLocationSetCreate (xmlXPathObjectPtr val); 4894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 49ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrFreeLocationSet (xmlLocationSetPtr obj); 5094442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlLocationSetPtr XMLCALL 51ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrLocationSetMerge (xmlLocationSetPtr val1, 52ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlLocationSetPtr val2); 5394442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 54ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewRange (xmlNodePtr start, 55ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int startindex, 56ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlNodePtr end, 57ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int endindex); 5894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 59ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewRangePoints (xmlXPathObjectPtr start, 60ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPathObjectPtr end); 6194442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 62ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewRangeNodePoint (xmlNodePtr start, 63ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPathObjectPtr end); 6494442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 65ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewRangePointNode (xmlXPathObjectPtr start, 66ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlNodePtr end); 6794442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 68ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewRangeNodes (xmlNodePtr start, 69ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlNodePtr end); 7094442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 71ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewLocationSetNodes (xmlNodePtr start, 72ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlNodePtr end); 7394442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 74ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewLocationSetNodeSet(xmlNodeSetPtr set); 7594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 76ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewRangeNodeObject (xmlNodePtr start, 77ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPathObjectPtr end); 7894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 79ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewCollapsedRange (xmlNodePtr start); 8094442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 81ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrLocationSetAdd (xmlLocationSetPtr cur, 82ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPathObjectPtr val); 8394442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 84ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrWrapLocationSet (xmlLocationSetPtr val); 8594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 86ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrLocationSetDel (xmlLocationSetPtr cur, 87ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPathObjectPtr val); 8894442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 89ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrLocationSetRemove (xmlLocationSetPtr cur, 90ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project int val); 91ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 92ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project/* 93ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project * Functions. 94ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project */ 9594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathContextPtr XMLCALL 96ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrNewContext (xmlDocPtr doc, 97ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlNodePtr here, 98ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlNodePtr origin); 9994442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlXPathObjectPtr XMLCALL 100ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrEval (const xmlChar *str, 101ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPathContextPtr ctx); 10294442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 103ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrRangeToFunction (xmlXPathParserContextPtr ctxt, 10494442ad4107000e6d49f9b85a46a591495a57632Selim Gurun int nargs); 10594442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN xmlNodePtr XMLCALL 106ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrBuildNodeList (xmlXPathObjectPtr obj); 10794442ad4107000e6d49f9b85a46a591495a57632Selim GurunXMLPUBFUN void XMLCALL 108ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project xmlXPtrEvalRangePredicate (xmlXPathParserContextPtr ctxt); 109ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#ifdef __cplusplus 110ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project} 111ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif 112ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project 113ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* LIBXML_XPTR_ENABLED */ 114ab4e2e90f63db6b1cd8bb2e453cac899ef43d42bThe Android Open Source Project#endif /* __XML_XPTR_H__ */ 115