nodeset

Home Download News Documentation FAQ Tutorial API reference Examples XML Digital Signature Online Verifier XML Encryption XML Canonicalization Reporting Bugs Mailing list Related Authors
# nodeset ## Name nodeset -- ## 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);
    void        xmlSecNodeSetDocDestroy         (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);
    int         xmlSecNodeSetDumpTextNodes      (xmlSecNodeSetPtr nset,
                                                 xmlOutputBufferPtr out);
    void        xmlSecNodeSetDebugDump          (xmlSecNodeSetPtr nset,
                                                 FILE *output);
## Description ## Details ### enum xmlSecNodeSetType
    typedef enum {
        xmlSecNodeSetNormal = 0,
        xmlSecNodeSetInvert,
        xmlSecNodeSetTree,
        xmlSecNodeSetTreeWithoutComments,
        xmlSecNodeSetTreeInvert,
        xmlSecNodeSetTreeWithoutCommentsInvert,
        xmlSecNodeSetList
    } xmlSecNodeSetType;
The basic 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;
        int			destroyDoc;
        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.
int `destroyDoc` | the flag: if set to 1 then doc will be destroyed when node set is destroyed.
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. Caller is responsible for freeng returend object by calling xmlSecNodeSetDestroy function.
doc : | the pointer to parent XML document.
nodes : | the list of nodes.
type : | the nodes set type.
Returns : | pointer to newly allocated node set or NULL if an error occurs.
### xmlSecNodeSetDestroy ()
    void        xmlSecNodeSetDestroy            (xmlSecNodeSetPtr nset);
Destroys the nodes set created with xmlSecNodeSetCreate function.
nset : | the pointer to node set.
### xmlSecNodeSetDocDestroy ()
    void        xmlSecNodeSetDocDestroy         (xmlSecNodeSetPtr nset);
Instructs node set to destroy nodes parent doc when node set is destroyed.
nset : | the pointer to node set.
### xmlSecNodeSetContains ()
    int         xmlSecNodeSetContains           (xmlSecNodeSetPtr nset,
                                                 xmlNodePtr node,
                                                 xmlNodePtr parent);
Checks whether the node is in the nodes set or not.
nset : | the pointer to node set.
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 or NULL if we want to include all document nodes.
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 node set.
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.
### xmlSecNodeSetDumpTextNodes ()
    int         xmlSecNodeSetDumpTextNodes      (xmlSecNodeSetPtr nset,
                                                 xmlOutputBufferPtr out);
Dumps content of all the text nodes from nset to out.
nset : | the pointer to node set.
out : | the output buffer.
Returns : | 0 on success or a negative value otherwise.
### xmlSecNodeSetDebugDump ()
    void        xmlSecNodeSetDebugDump          (xmlSecNodeSetPtr nset,
                                                 FILE *output);
Prints information about nset to the output.
nset : | the pointer to node set.
output : | the pointer to output FILE.
Aleksey Sanin