XML Security Library Reference Manual
<<< Previous Page | Home | Up | Next Page >>>

# 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.

<<< Previous Page | Home | Up | Next Page >>>
membuf.h | transformsInternal.h