Module xpointer from libxml2
Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
Made with Libxml2 Logo

Module xpointer from libxml2

API Menu
API Indexes
Related links

API to handle XML Pointers Base implementation was made accordingly to W3C Candidate Recommendation 7 June 2000

Table of Contents

Structure xmlLocationSet
struct _xmlLocationSet
Typedef xmlLocationSet * xmlLocationSetPtr
xmlNodePtr	xmlXPtrBuildNodeList	(xmlXPathObjectPtr obj)
xmlXPathObjectPtr	xmlXPtrEval	(const xmlChar * str, 
xmlXPathContextPtr ctx)
void	xmlXPtrEvalRangePredicate	(xmlXPathParserContextPtr ctxt)
void	xmlXPtrFreeLocationSet		(xmlLocationSetPtr obj)
void	xmlXPtrLocationSetAdd		(xmlLocationSetPtr cur, 
xmlXPathObjectPtr val)
xmlLocationSetPtr	xmlXPtrLocationSetCreate	(xmlXPathObjectPtr val)
void	xmlXPtrLocationSetDel		(xmlLocationSetPtr cur, 
xmlXPathObjectPtr val)
xmlLocationSetPtr	xmlXPtrLocationSetMerge	(xmlLocationSetPtr val1, 
xmlLocationSetPtr val2)
void	xmlXPtrLocationSetRemove	(xmlLocationSetPtr cur, 
int val)
xmlXPathObjectPtr	xmlXPtrNewCollapsedRange	(xmlNodePtr start)
xmlXPathContextPtr	xmlXPtrNewContext	(xmlDocPtr doc, 
xmlNodePtr here,
xmlNodePtr origin)
xmlXPathObjectPtr	xmlXPtrNewLocationSetNodeSet	(xmlNodeSetPtr set)
xmlXPathObjectPtr	xmlXPtrNewLocationSetNodes	(xmlNodePtr start, 
xmlNodePtr end)
xmlXPathObjectPtr	xmlXPtrNewRange	(xmlNodePtr start, 
int startindex,
xmlNodePtr end,
int endindex)
xmlXPathObjectPtr	xmlXPtrNewRangeNodeObject	(xmlNodePtr start, 
xmlXPathObjectPtr end)
xmlXPathObjectPtr	xmlXPtrNewRangeNodePoint	(xmlNodePtr start, 
xmlXPathObjectPtr end)
xmlXPathObjectPtr	xmlXPtrNewRangeNodes	(xmlNodePtr start, 
xmlNodePtr end)
xmlXPathObjectPtr	xmlXPtrNewRangePointNode	(xmlXPathObjectPtr start, 
xmlNodePtr end)
xmlXPathObjectPtr	xmlXPtrNewRangePoints	(xmlXPathObjectPtr start, 
xmlXPathObjectPtr end)
void	xmlXPtrRangeToFunction		(xmlXPathParserContextPtr ctxt, 
int nargs)
xmlXPathObjectPtr	xmlXPtrWrapLocationSet	(xmlLocationSetPtr val)

Description

Structure xmlLocationSet

Structure xmlLocationSet
struct _xmlLocationSet { int locNr : number of locations in the set int locMax : size of the array as allocated xmlXPathObjectPtr * locTab : array of locations }

Function: xmlXPtrBuildNodeList

xmlNodePtr	xmlXPtrBuildNodeList	(xmlXPathObjectPtr obj)

Build a node list tree copy of the XPointer result. This will drop Attributes and Namespace declarations.

obj:the XPointer result from the evaluation.
Returns:an xmlNodePtr list or NULL. the caller has to free the node tree.

Function: xmlXPtrEval

xmlXPathObjectPtr	xmlXPtrEval	(const xmlChar * str, 
xmlXPathContextPtr ctx)

Evaluate the XPath Location Path in the given context.

str:the XPointer expression
ctx:the XPointer context
Returns:the xmlXPathObjectPtr resulting from the evaluation or NULL. the caller has to free the object.

Function: xmlXPtrEvalRangePredicate

void	xmlXPtrEvalRangePredicate	(xmlXPathParserContextPtr ctxt)

[8] Predicate ::= '[' PredicateExpr ']' [9] PredicateExpr ::= Expr Evaluate a predicate as in xmlXPathEvalPredicate() but for a Location Set instead of a node set

ctxt:the XPointer Parser context

Function: xmlXPtrFreeLocationSet

void	xmlXPtrFreeLocationSet		(xmlLocationSetPtr obj)

Free the LocationSet compound (not the actual ranges !).

obj:the xmlLocationSetPtr to free

Function: xmlXPtrLocationSetAdd

void	xmlXPtrLocationSetAdd		(xmlLocationSetPtr cur, 
xmlXPathObjectPtr val)

add a new xmlXPathObjectPtr to an existing LocationSet If the location already exist in the set @val is freed.

cur:the initial range set
val:a new xmlXPathObjectPtr

Function: xmlXPtrLocationSetCreate

xmlLocationSetPtr	xmlXPtrLocationSetCreate	(xmlXPathObjectPtr val)

Create a new xmlLocationSetPtr of type double and of value @val

val:an initial xmlXPathObjectPtr, or NULL
Returns:the newly created object.

Function: xmlXPtrLocationSetDel

void	xmlXPtrLocationSetDel		(xmlLocationSetPtr cur, 
xmlXPathObjectPtr val)

Removes an xmlXPathObjectPtr from an existing LocationSet

cur:the initial range set
val:an xmlXPathObjectPtr

Function: xmlXPtrLocationSetMerge

xmlLocationSetPtr	xmlXPtrLocationSetMerge	(xmlLocationSetPtr val1, 
xmlLocationSetPtr val2)

Merges two rangesets, all ranges from @val2 are added to @val1

val1:the first LocationSet
val2:the second LocationSet
Returns:val1 once extended or NULL in case of error.

Function: xmlXPtrLocationSetRemove

void	xmlXPtrLocationSetRemove	(xmlLocationSetPtr cur, 
int val)

Removes an entry from an existing LocationSet list.

cur:the initial range set
val:the index to remove

Function: xmlXPtrNewCollapsedRange

xmlXPathObjectPtr	xmlXPtrNewCollapsedRange	(xmlNodePtr start)

Create a new xmlXPathObjectPtr of type range using a single nodes

start:the starting and ending node
Returns:the newly created object.

Function: xmlXPtrNewContext

xmlXPathContextPtr	xmlXPtrNewContext	(xmlDocPtr doc, 
xmlNodePtr here,
xmlNodePtr origin)

Create a new XPointer context

doc:the XML document
here:the node that directly contains the XPointer being evaluated or NULL
origin:the element from which a user or program initiated traversal of the link, or NULL.
Returns:the xmlXPathContext just allocated.

Function: xmlXPtrNewLocationSetNodeSet

xmlXPathObjectPtr	xmlXPtrNewLocationSetNodeSet	(xmlNodeSetPtr set)

Create a new xmlXPathObjectPtr of type LocationSet and initialize it with all the nodes from @set

set:a node set
Returns:the newly created object.

Function: xmlXPtrNewLocationSetNodes

xmlXPathObjectPtr	xmlXPtrNewLocationSetNodes	(xmlNodePtr start, 
xmlNodePtr end)

Create a new xmlXPathObjectPtr of type LocationSet and initialize it with the single range made of the two nodes @start and @end

start:the start NodePtr value
end:the end NodePtr value or NULL
Returns:the newly created object.

Function: xmlXPtrNewRange

xmlXPathObjectPtr	xmlXPtrNewRange	(xmlNodePtr start, 
int startindex,
xmlNodePtr end,
int endindex)

Create a new xmlXPathObjectPtr of type range

start:the starting node
startindex:the start index
end:the ending point
endindex:the ending index
Returns:the newly created object.

Function: xmlXPtrNewRangeNodeObject

xmlXPathObjectPtr	xmlXPtrNewRangeNodeObject	(xmlNodePtr start, 
xmlXPathObjectPtr end)

Create a new xmlXPathObjectPtr of type range from a not to an object

start:the starting node
end:the ending object
Returns:the newly created object.

Function: xmlXPtrNewRangeNodePoint

xmlXPathObjectPtr	xmlXPtrNewRangeNodePoint	(xmlNodePtr start, 
xmlXPathObjectPtr end)

Create a new xmlXPathObjectPtr of type range from a node to a point

start:the starting node
end:the ending point
Returns:the newly created object.

Function: xmlXPtrNewRangeNodes

xmlXPathObjectPtr	xmlXPtrNewRangeNodes	(xmlNodePtr start, 
xmlNodePtr end)

Create a new xmlXPathObjectPtr of type range using 2 nodes

start:the starting node
end:the ending node
Returns:the newly created object.

Function: xmlXPtrNewRangePointNode

xmlXPathObjectPtr	xmlXPtrNewRangePointNode	(xmlXPathObjectPtr start, 
xmlNodePtr end)

Create a new xmlXPathObjectPtr of type range from a point to a node

start:the starting point
end:the ending node
Returns:the newly created object.

Function: xmlXPtrNewRangePoints

xmlXPathObjectPtr	xmlXPtrNewRangePoints	(xmlXPathObjectPtr start, 
xmlXPathObjectPtr end)

Create a new xmlXPathObjectPtr of type range using 2 Points

start:the starting point
end:the ending point
Returns:the newly created object.

Function: xmlXPtrRangeToFunction

void	xmlXPtrRangeToFunction		(xmlXPathParserContextPtr ctxt, 
int nargs)

Implement the range-to() XPointer function

ctxt:the XPointer Parser context
nargs:the number of args

Function: xmlXPtrWrapLocationSet

xmlXPathObjectPtr	xmlXPtrWrapLocationSet	(xmlLocationSetPtr val)

Wrap the LocationSet @val in a new xmlXPathObjectPtr

val:the LocationSet value
Returns:the newly created object.

Daniel Veillard