nodeset.h

Name

nodeset.h -- The enchanced nodes set imlmentation.

Synopsis



enum        xmlSecNodeSetType;
enum        xmlSecNodeSetOp;
struct      xmlSecNodeSet;
int         (*xmlSecNodeSetWalkCallback)    (xmlSecNodeSetPtr nset,
                                             xmlNodePtr cur,
                                             xmlNodePtr parent,
                                             void *data);
xmlSecNodeSetPtr xmlSecNodeSetCreate        (xmlDocPtr doc,
                                             xmlNodeSetPtr nodes,
                                             xmlSecNodeSetType type);
void        xmlSecNodeSetDestroy            (xmlSecNodeSetPtr nset);
int         xmlSecNodeSetContains           (xmlSecNodeSetPtr nset,
                                             xmlNodePtr node,
                                             xmlNodePtr parent);
xmlSecNodeSetPtr xmlSecNodeSetAdd           (xmlSecNodeSetPtr nset,
                                             xmlSecNodeSetPtr newNSet,
                                             xmlSecNodeSetOp op);
xmlSecNodeSetPtr xmlSecNodeSetAddList       (xmlSecNodeSetPtr nset,
                                             xmlSecNodeSetPtr newNSet,
                                             xmlSecNodeSetOp op);
xmlSecNodeSetPtr xmlSecNodeSetGetChildren   (xmlDocPtr doc,
                                             const xmlNodePtr parent,
                                             int withComments,
                                             int invert);
int         xmlSecNodeSetWalk               (xmlSecNodeSetPtr nset,
                                             xmlSecNodeSetWalkCallback walkFunc,
                                             void *data);
void        xmlSecNodeSetDebugDump          (xmlSecNodeSetPtr nset,
                                             FILE *output);

Description

Details

enum xmlSecNodeSetType

typedef enum {
    xmlSecNodeSetNormal = 0,
    xmlSecNodeSetInvert,
    xmlSecNodeSetTree,
    xmlSecNodeSetTreeWithoutComments, 
    xmlSecNodeSetTreeInvert,
    xmlSecNodeSetTreeWithoutCommentsInvert,
    xmlSecNodeSetList
} xmlSecNodeSetType;

The simple nodes sets types.

xmlSecNodeSetNormal nodes set = nodes in the list.
xmlSecNodeSetInvert nodes set = all document nodes minus nodes in the list.
xmlSecNodeSetTree nodes set = nodes in the list and all their subtress.
xmlSecNodeSetTreeWithoutComments nodes set = nodes in the list and all their subtress but no comment nodes.
xmlSecNodeSetTreeInvert nodes set = all document nodes minus nodes in the list and all their subtress.
xmlSecNodeSetTreeWithoutCommentsInvert nodes set = all document nodes minus (nodes in the list and all their subtress plus all comment nodes).
xmlSecNodeSetList nodes set = all nodes in the chidren list of nodes sets.


enum xmlSecNodeSetOp

typedef enum {
    xmlSecNodeSetIntersection = 0,
    xmlSecNodeSetSubtraction,
    xmlSecNodeSetUnion
} xmlSecNodeSetOp;

The simple nodes sets operations.

xmlSecNodeSetIntersection intersection.
xmlSecNodeSetSubtraction subtraction.
xmlSecNodeSetUnion union.


struct xmlSecNodeSet

struct xmlSecNodeSet {
    xmlNodeSetPtr	nodes;
    xmlDocPtr		doc;
    xmlSecNodeSetType	type;
    xmlSecNodeSetOp	op;
    xmlSecNodeSetPtr	next;
    xmlSecNodeSetPtr	prev;
    xmlSecNodeSetPtr	children;
};

The enchanced nodes set.

xmlNodeSetPtr nodes the nodes list.
xmlDocPtr doc the parent XML document.
xmlSecNodeSetType type the nodes set type.
xmlSecNodeSetOp op the operation type.
xmlSecNodeSetPtr next the next nodes set.
xmlSecNodeSetPtr prev the previous nodes set.
xmlSecNodeSetPtr children the children list (valid only if type equal to xmlSecNodeSetList).


xmlSecNodeSetWalkCallback ()

int         (*xmlSecNodeSetWalkCallback)    (xmlSecNodeSetPtr nset,
                                             xmlNodePtr cur,
                                             xmlNodePtr parent,
                                             void *data);

The callback function called once per each node in the nodes set.

nset : the pointer to xmlSecNodeSet structure.
cur : the pointer current XML node.
parent : the pointer to the cur parent node.
data : the pointer to application specific data.
Returns :0 on success or a negative value if an error occurs an walk procedure should be interrupted.


xmlSecNodeSetCreate ()

xmlSecNodeSetPtr xmlSecNodeSetCreate        (xmlDocPtr doc,
                                             xmlNodeSetPtr nodes,
                                             xmlSecNodeSetType type);

Creates new nodes set.

doc : the pointer to parent XML document.
nodes : the list of nodes.
type : the nodes set type.
Returns :pointer to newly allocated xmlSecNodeSet structure or NULL if an error occurs.


xmlSecNodeSetDestroy ()

void        xmlSecNodeSetDestroy            (xmlSecNodeSetPtr nset);

Destroys the nodes set.

nset : the pointer to xmlSecNodeSet structure.


xmlSecNodeSetContains ()

int         xmlSecNodeSetContains           (xmlSecNodeSetPtr nset,
                                             xmlNodePtr node,
                                             xmlNodePtr parent);

Checks whether the node is in the nodes set or not.

nset : the pointer to xmlSecNodeSet structure.
node : the pointer to XML node to check.
parent : the pointer to node parent node.
Returns :1 if the node is in the nodes set nset, 0 if it is not and a negative value if an error occurs.


xmlSecNodeSetAdd ()

xmlSecNodeSetPtr xmlSecNodeSetAdd           (xmlSecNodeSetPtr nset,
                                             xmlSecNodeSetPtr newNSet,
                                             xmlSecNodeSetOp op);

Adds newNSet to the nset using operation op.

nset : the pointer to currrent nodes set (or NULL).
newNSet : the pointer to new nodes set.
op : the operation type.
Returns :the pointer to combined nodes set or NULL if an error occurs.


xmlSecNodeSetAddList ()

xmlSecNodeSetPtr xmlSecNodeSetAddList       (xmlSecNodeSetPtr nset,
                                             xmlSecNodeSetPtr newNSet,
                                             xmlSecNodeSetOp op);

Adds newNSet to the nset as child using operation op.

nset : the pointer to currrent nodes set (or NULL).
newNSet : the pointer to new nodes set.
op : the operation type.
Returns :the pointer to combined nodes set or NULL if an error occurs.


xmlSecNodeSetGetChildren ()

xmlSecNodeSetPtr xmlSecNodeSetGetChildren   (xmlDocPtr doc,
                                             const xmlNodePtr parent,
                                             int withComments,
                                             int invert);

Creates a new nodes set that contains: - if withComments is not 0 and invert is 0: all nodes in the parent subtree; - if withComments is 0 and invert is 0: all nodes in the parent subtree except comment nodes; - if withComments is not 0 and invert not is 0: all nodes in the doc except nodes in the parent subtree; - if withComments is 0 and invert is 0: all nodes in the doc except nodes in the parent subtree and comment nodes.

doc : the pointer to an XML document.
parent : the pointer to parent XML node.
withComments : the flag include comments or not.
invert : the "invert" flag.
Returns :pointer to the newly created xmlSecNodeSet structure or NULL if an error occurs.


xmlSecNodeSetWalk ()

int         xmlSecNodeSetWalk               (xmlSecNodeSetPtr nset,
                                             xmlSecNodeSetWalkCallback walkFunc,
                                             void *data);

Calls the function walkFunc once per each node in the nodes set nset. If the walkFunc returns a negative value, then the walk procedure is interrupted.

nset : the pointer to xmlSecNodeSet structure.
walkFunc : the callback functions.
data : the application specific data passed to the walkFunc.
Returns :0 on success or a negative value if an error occurs.


xmlSecNodeSetDebugDump ()

void        xmlSecNodeSetDebugDump          (xmlSecNodeSetPtr nset,
                                             FILE *output);

Prints information about nset to the output.

nset : the pointer to xmlSecNodeSet structure.
output : the pointer to FILE.