Git init
[external/xmlsec1.git] / docs / api / xmlsec-nodeset.html
1 <html>
2 <head>
3 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4 <title>nodeset</title>
5 <meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.79">
6 <link rel="HOME" title="XML Security Library Reference Manual" href="index.html">
7 <link rel="UP" title="XML Security Core Library API Reference." href="xmlsec-ref.html">
8 <link rel="PREVIOUS" title="membuf" href="xmlsec-membuf.html">
9 <link rel="NEXT" title="parser" href="xmlsec-parser.html">
10 <style type="text/css">.synopsis, .classsynopsis {
11     background: #eeeeee;
12     border: solid 1px #aaaaaa;
13     padding: 0.5em;
14 }
15 .programlisting {
16     background: #eeeeff;
17     border: solid 1px #aaaaff;
18     padding: 0.5em;
19 }
20 .variablelist {
21     padding: 4px;
22     margin-left: 3em;
23 }
24 .navigation {
25     background: #ffeeee;
26     border: solid 1px #ffaaaa;
27     margin-top: 0.5em;
28     margin-bottom: 0.5em;
29 }
30 .navigation a {
31     color: #770000;
32 }
33 .navigation a:visited {
34     color: #550000;
35 }
36 .navigation .title {
37     font-size: 200%;
38 }</style>
39 </head>
40 <body><table witdh="100%" valign="top"><tr valign="top">
41 <td valign="top" align="left" width="210">
42 <img src="../images/logo.gif" alt="XML Security Library" border="0"><p></p>
43 <ul>
44 <li><a href="../index.html">Home</a></li>
45 <li><a href="../download.html">Download</a></li>
46 <li><a href="../news.html">News</a></li>
47 <li><a href="../documentation.html">Documentation</a></li>
48 <ul>
49 <li><a href="../faq.html">FAQ</a></li>
50 <li><a href="../api/xmlsec-notes.html">Tutorial</a></li>
51 <li><a href="../api/xmlsec-reference.html">API reference</a></li>
52 <li><a href="../api/xmlsec-examples.html">Examples</a></li>
53 </ul>
54 <li><a href="../xmldsig.html">XML Digital Signature</a></li>
55 <ul><li><a href="http://www.aleksey.com/xmlsec/xmldsig-verifier.html">Online Verifier</a></li></ul>
56 <li><a href="../xmlenc.html">XML Encryption</a></li>
57 <li><a href="../c14n.html">XML Canonicalization</a></li>
58 <li><a href="../bugs.html">Reporting Bugs</a></li>
59 <li><a href="http://www.aleksey.com/pipermail/xmlsec">Mailing list</a></li>
60 <li><a href="../related.html">Related</a></li>
61 <li><a href="../authors.html">Authors</a></li>
62 </ul>
63 <table width="100%">
64 <tr>
65 <td width="15"></td>
66 <td><a href="http://xmlsoft.org/"><img src="../images/libxml2-logo.png" alt="LibXML2" border="0"></a></td>
67 </tr>
68 <tr>
69 <td width="15"></td>
70 <td><a href="http://xmlsoft.org/XSLT"><img src="../images/libxslt-logo.png" alt="LibXSLT" border="0"></a></td>
71 </tr>
72 <tr>
73 <td width="15"></td>
74 <td><a href="http://www.openssl.org/"><img src="../images/openssl-logo.png" alt="OpenSSL" border="0"></a></td>
75 </tr>
76 <!--Links - start--><!--Links - end-->
77 </table>
78 </td>
79 <td valign="top"><table width="100%" valign="top"><tr><td valign="top" align="left" id="xmlsecContent">
80 <table width="100%" class="navigation" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
81 <td><a accesskey="p" href="xmlsec-membuf.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
82 <td><a accesskey="u" href="xmlsec-ref.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
83 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
84 <th width="100%" align="center">XML Security Library Reference Manual</th>
85 <td><a accesskey="n" href="xmlsec-parser.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
86 </tr></table>
87 <h1>
88 <a name="XMLSEC-NODESET"></a>nodeset</h1>
89 <div class="REFNAMEDIV">
90 <a name="AEN11540"></a><h2>Name</h2>nodeset -- Nodeset object implementation.</div>
91 <div class="REFSYNOPSISDIV">
92 <a name="XMLSEC-NODESET.SYNOPSIS"></a><h2>Synopsis</h2>
93 <pre class="SYNOPSIS">enum                <a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a>;
94 enum                <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a>;
95 struct              <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSet</a>;
96 <font>int</font>                 (<a href="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK">*xmlSecNodeSetWalkCallback</a>)        (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
97                                                          <font>xmlNodePtr</font> cur,
98                                                          <font>xmlNodePtr</font> parent,
99                                                          <font>void</font> *data);
100 <font>xmlSecNodeSetPtr</font>    <a href="xmlsec-nodeset.html#XMLSECNODESETCREATE">xmlSecNodeSetCreate</a>                 (<font>xmlDocPtr</font> doc,
101                                                          <font>xmlNodeSetPtr</font> nodes,
102                                                          <a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a> type);
103 <font>void</font>                <a href="xmlsec-nodeset.html#XMLSECNODESETDESTROY">xmlSecNodeSetDestroy</a>                (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset);
104 <font>void</font>                <a href="xmlsec-nodeset.html#XMLSECNODESETDOCDESTROY">xmlSecNodeSetDocDestroy</a>             (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset);
105 <font>int</font>                 <a href="xmlsec-nodeset.html#XMLSECNODESETCONTAINS">xmlSecNodeSetContains</a>               (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
106                                                          <font>xmlNodePtr</font> node,
107                                                          <font>xmlNodePtr</font> parent);
108 <font>xmlSecNodeSetPtr</font>    <a href="xmlsec-nodeset.html#XMLSECNODESETADD">xmlSecNodeSetAdd</a>                    (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
109                                                          <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> newNSet,
110                                                          <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> op);
111 <font>xmlSecNodeSetPtr</font>    <a href="xmlsec-nodeset.html#XMLSECNODESETADDLIST">xmlSecNodeSetAddList</a>                (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
112                                                          <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> newNSet,
113                                                          <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> op);
114 <font>xmlSecNodeSetPtr</font>    <a href="xmlsec-nodeset.html#XMLSECNODESETGETCHILDREN">xmlSecNodeSetGetChildren</a>            (<font>xmlDocPtr</font> doc,
115                                                          const <font>xmlNodePtr</font> parent,
116                                                          <font>int</font> withComments,
117                                                          <font>int</font> invert);
118 <font>int</font>                 <a href="xmlsec-nodeset.html#XMLSECNODESETWALK">xmlSecNodeSetWalk</a>                   (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
119                                                          <a href="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK">xmlSecNodeSetWalkCallback</a> walkFunc,
120                                                          <font>void</font> *data);
121 <font>int</font>                 <a href="xmlsec-nodeset.html#XMLSECNODESETDUMPTEXTNODES">xmlSecNodeSetDumpTextNodes</a>          (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
122                                                          <font>xmlOutputBufferPtr</font> out);
123 <font>void</font>                <a href="xmlsec-nodeset.html#XMLSECNODESETDEBUGDUMP">xmlSecNodeSetDebugDump</a>              (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
124                                                          <font>FILE</font> *output);</pre>
125 </div>
126 <div class="REFSECT1">
127 <a name="XMLSEC-NODESET.DESCRIPTION"></a><h2>Description</h2>
128 <p>Nodeset object implementation.</p>
129 </div>
130 <div class="REFSECT1">
131 <a name="XMLSEC-NODESET.DETAILS"></a><h2>Details</h2>
132 <div class="REFSECT2">
133 <a name="XMLSECNODESETTYPE"></a><h3>enum xmlSecNodeSetType</h3>
134 <pre class="PROGRAMLISTING">typedef enum {
135     xmlSecNodeSetNormal = 0,
136     xmlSecNodeSetInvert,
137     xmlSecNodeSetTree,
138     xmlSecNodeSetTreeWithoutComments, 
139     xmlSecNodeSetTreeInvert,
140     xmlSecNodeSetTreeWithoutCommentsInvert,
141     xmlSecNodeSetList
142 } xmlSecNodeSetType;</pre>
143 <p>The basic nodes sets types.</p>
144 <p></p>
145 <p></p>
146 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
147 <tr>
148 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETNORMAL"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetNormal</tt></span></a></td>
149 <td align="LEFT" valign="TOP"><p>       nodes set = nodes in the list.</p></td>
150 </tr>
151 <tr>
152 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETINVERT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetInvert</tt></span></a></td>
153 <td align="LEFT" valign="TOP"><p>       nodes set = all document nodes minus nodes in the list.</p></td>
154 </tr>
155 <tr>
156 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETTREE"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetTree</tt></span></a></td>
157 <td align="LEFT" valign="TOP"><p>               nodes set = nodes in the list and all their subtress.</p></td>
158 </tr>
159 <tr>
160 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETTREEWITHOUTCOMMENTS"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetTreeWithoutComments</tt></span></a></td>
161 <td align="LEFT" valign="TOP"><p>               nodes set = nodes in the list and 
162                         all their subtress but no comment nodes.</p></td>
163 </tr>
164 <tr>
165 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETTREEINVERT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetTreeInvert</tt></span></a></td>
166 <td align="LEFT" valign="TOP"><p>       nodes set = all document nodes minus nodes in the 
167                                 list and all their subtress.</p></td>
168 </tr>
169 <tr>
170 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETTREEWITHOUTCOMMENTSINVERT"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetTreeWithoutCommentsInvert</tt></span></a></td>
171 <td align="LEFT" valign="TOP"><p>       nodes set = all document nodes 
172                                 minus (nodes in the list and all their subtress 
173                         plus all comment nodes).</p></td>
174 </tr>
175 <tr>
176 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETLIST"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetList</tt></span></a></td>
177 <td align="LEFT" valign="TOP"><p>               nodes set = all nodes in the chidren list of nodes sets.</p></td>
178 </tr>
179 </tbody></table>
180 </div>
181 <hr>
182 <div class="REFSECT2">
183 <a name="XMLSECNODESETOP"></a><h3>enum xmlSecNodeSetOp</h3>
184 <pre class="PROGRAMLISTING">typedef enum {
185     xmlSecNodeSetIntersection = 0,
186     xmlSecNodeSetSubtraction,
187     xmlSecNodeSetUnion
188 } xmlSecNodeSetOp;</pre>
189 <p>The simple nodes sets operations.</p>
190 <p></p>
191 <p></p>
192 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
193 <tr>
194 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETINTERSECTION"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetIntersection</tt></span></a></td>
195 <td align="LEFT" valign="TOP"><p>       intersection.</p></td>
196 </tr>
197 <tr>
198 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETSUBTRACTION"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetSubtraction</tt></span></a></td>
199 <td align="LEFT" valign="TOP"><p>       subtraction.</p></td>
200 </tr>
201 <tr>
202 <td align="LEFT" valign="TOP"><a name="XMLSECNODESETUNION"><span style="white-space: nowrap"><tt class="LITERAL">xmlSecNodeSetUnion</tt></span></a></td>
203 <td align="LEFT" valign="TOP"><p>       union.</p></td>
204 </tr>
205 </tbody></table>
206 </div>
207 <hr>
208 <div class="REFSECT2">
209 <a name="XMLSECNODESET"></a><h3>struct xmlSecNodeSet</h3>
210 <pre class="PROGRAMLISTING">struct xmlSecNodeSet {
211     xmlNodeSetPtr       nodes;
212     xmlDocPtr           doc;
213     int                 destroyDoc;
214     xmlSecNodeSetType   type;
215     xmlSecNodeSetOp     op;
216     xmlSecNodeSetPtr    next;
217     xmlSecNodeSetPtr    prev;
218     xmlSecNodeSetPtr    children;
219 };</pre>
220 <p>The enchanced nodes set.</p>
221 <p></p>
222 <p></p>
223 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
224 <tr>
225 <td align="LEFT" valign="TOP"><a name="AEN11679"><span style="white-space: nowrap"><font>xmlNodeSetPtr</font> <code class="STRUCTFIELD">nodes</code>;</span></a></td>
226 <td align="LEFT" valign="TOP"><p>                       the nodes list.</p></td>
227 </tr>
228 <tr>
229 <td align="LEFT" valign="TOP"><a name="AEN11685"><span style="white-space: nowrap"><font>xmlDocPtr</font> <code class="STRUCTFIELD">doc</code>;</span></a></td>
230 <td align="LEFT" valign="TOP"><p>                       the parent XML document.</p></td>
231 </tr>
232 <tr>
233 <td align="LEFT" valign="TOP"><a name="AEN11691"><span style="white-space: nowrap"><font>int</font> <code class="STRUCTFIELD">destroyDoc</code>;</span></a></td>
234 <td align="LEFT" valign="TOP"><p>                       the flag: if set to 1 then <code class="PARAMETER">doc</code> will
235                         be destroyed when node set is destroyed.</p></td>
236 </tr>
237 <tr>
238 <td align="LEFT" valign="TOP"><a name="AEN11698"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a> <code class="STRUCTFIELD">type</code>;</span></a></td>
239 <td align="LEFT" valign="TOP"><p>                       the nodes set type.</p></td>
240 </tr>
241 <tr>
242 <td align="LEFT" valign="TOP"><a name="AEN11704"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> <code class="STRUCTFIELD">op</code>;</span></a></td>
243 <td align="LEFT" valign="TOP"><p>                       the operation type.</p></td>
244 </tr>
245 <tr>
246 <td align="LEFT" valign="TOP"><a name="AEN11710"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> <code class="STRUCTFIELD">next</code>;</span></a></td>
247 <td align="LEFT" valign="TOP"><p>                       the next nodes set.</p></td>
248 </tr>
249 <tr>
250 <td align="LEFT" valign="TOP"><a name="AEN11716"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> <code class="STRUCTFIELD">prev</code>;</span></a></td>
251 <td align="LEFT" valign="TOP"><p>                       the previous nodes set.</p></td>
252 </tr>
253 <tr>
254 <td align="LEFT" valign="TOP"><a name="AEN11722"><span style="white-space: nowrap"><a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> <code class="STRUCTFIELD">children</code>;</span></a></td>
255 <td align="LEFT" valign="TOP"><p>                       the children list (valid only if type 
256                         equal to <a href="xmlsec-nodeset.html#XMLSECNODESETLIST"><span class="TYPE">xmlSecNodeSetList</span></a>).</p></td>
257 </tr>
258 </tbody></table>
259 </div>
260 <hr>
261 <div class="REFSECT2">
262 <a name="XMLSECNODESETWALKCALLBACK"></a><h3>xmlSecNodeSetWalkCallback ()</h3>
263 <pre class="PROGRAMLISTING"><font>int</font>                 (*xmlSecNodeSetWalkCallback)        (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
264                                                          <font>xmlNodePtr</font> cur,
265                                                          <font>xmlNodePtr</font> parent,
266                                                          <font>void</font> *data);</pre>
267 <p>The callback function called once per each node in the nodes set.</p>
268 <p></p>
269 <p></p>
270 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
271 <tr>
272 <td align="LEFT" valign="TOP"><a name="AEN11743"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
273 <td align="LEFT" valign="TOP"><p>                       the pointer to <a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSet</span></a> structure.</p></td>
274 </tr>
275 <tr>
276 <td align="LEFT" valign="TOP"><a name="AEN11750"><span style="white-space: nowrap"><code class="PARAMETER">cur</code> :</span></a></td>
277 <td align="LEFT" valign="TOP"><p>                       the pointer current XML node.</p></td>
278 </tr>
279 <tr>
280 <td align="LEFT" valign="TOP"><a name="AEN11755"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
281 <td align="LEFT" valign="TOP"><p>                       the pointer to the <code class="PARAMETER">cur</code> parent node.</p></td>
282 </tr>
283 <tr>
284 <td align="LEFT" valign="TOP"><a name="AEN11761"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
285 <td align="LEFT" valign="TOP"><p>                       the pointer to application specific data.</p></td>
286 </tr>
287 <tr>
288 <td align="LEFT" valign="TOP"><a name="AEN11766"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
289 <td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs
290 an walk procedure should be interrupted.</p></td>
291 </tr>
292 </tbody></table>
293 </div>
294 <hr>
295 <div class="REFSECT2">
296 <a name="XMLSECNODESETCREATE"></a><h3>xmlSecNodeSetCreate ()</h3>
297 <pre class="PROGRAMLISTING"><font>xmlSecNodeSetPtr</font>    xmlSecNodeSetCreate                 (<font>xmlDocPtr</font> doc,
298                                                          <font>xmlNodeSetPtr</font> nodes,
299                                                          <a href="xmlsec-nodeset.html#XMLSECNODESETTYPE">xmlSecNodeSetType</a> type);</pre>
300 <p>Creates new nodes set. Caller is responsible for freeng returend object
301 by calling <a href="xmlsec-nodeset.html#XMLSECNODESETDESTROY"><span class="TYPE">xmlSecNodeSetDestroy</span></a> function.</p>
302 <p></p>
303 <p></p>
304 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
305 <tr>
306 <td align="LEFT" valign="TOP"><a name="AEN11785"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
307 <td align="LEFT" valign="TOP"><p>               the pointer to parent XML document.</p></td>
308 </tr>
309 <tr>
310 <td align="LEFT" valign="TOP"><a name="AEN11790"><span style="white-space: nowrap"><code class="PARAMETER">nodes</code> :</span></a></td>
311 <td align="LEFT" valign="TOP"><p>               the list of nodes.</p></td>
312 </tr>
313 <tr>
314 <td align="LEFT" valign="TOP"><a name="AEN11795"><span style="white-space: nowrap"><code class="PARAMETER">type</code> :</span></a></td>
315 <td align="LEFT" valign="TOP"><p>               the nodes set type.</p></td>
316 </tr>
317 <tr>
318 <td align="LEFT" valign="TOP"><a name="AEN11800"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
319 <td align="LEFT" valign="TOP"><p> pointer to newly allocated node set or NULL if an error occurs.</p></td>
320 </tr>
321 </tbody></table>
322 </div>
323 <hr>
324 <div class="REFSECT2">
325 <a name="XMLSECNODESETDESTROY"></a><h3>xmlSecNodeSetDestroy ()</h3>
326 <pre class="PROGRAMLISTING"><font>void</font>                xmlSecNodeSetDestroy                (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset);</pre>
327 <p>Destroys the nodes set created with <a href="xmlsec-nodeset.html#XMLSECNODESETCREATE"><span class="TYPE">xmlSecNodeSetCreate</span></a> function.</p>
328 <p></p>
329 <p></p>
330 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
331 <td align="LEFT" valign="TOP"><a name="AEN11817"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
332 <td align="LEFT" valign="TOP"><p>               the pointer to node set.</p></td>
333 </tr></tbody></table>
334 </div>
335 <hr>
336 <div class="REFSECT2">
337 <a name="XMLSECNODESETDOCDESTROY"></a><h3>xmlSecNodeSetDocDestroy ()</h3>
338 <pre class="PROGRAMLISTING"><font>void</font>                xmlSecNodeSetDocDestroy             (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset);</pre>
339 <p>Instructs node set to destroy nodes parent doc when node set is destroyed.</p>
340 <p></p>
341 <p></p>
342 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody><tr>
343 <td align="LEFT" valign="TOP"><a name="AEN11832"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
344 <td align="LEFT" valign="TOP"><p>               the pointer to node set.</p></td>
345 </tr></tbody></table>
346 </div>
347 <hr>
348 <div class="REFSECT2">
349 <a name="XMLSECNODESETCONTAINS"></a><h3>xmlSecNodeSetContains ()</h3>
350 <pre class="PROGRAMLISTING"><font>int</font>                 xmlSecNodeSetContains               (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
351                                                          <font>xmlNodePtr</font> node,
352                                                          <font>xmlNodePtr</font> parent);</pre>
353 <p>Checks whether the <code class="PARAMETER">node</code> is in the nodes set or not.</p>
354 <p></p>
355 <p></p>
356 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
357 <tr>
358 <td align="LEFT" valign="TOP"><a name="AEN11850"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
359 <td align="LEFT" valign="TOP"><p>               the pointer to node set.</p></td>
360 </tr>
361 <tr>
362 <td align="LEFT" valign="TOP"><a name="AEN11855"><span style="white-space: nowrap"><code class="PARAMETER">node</code> :</span></a></td>
363 <td align="LEFT" valign="TOP"><p>               the pointer to XML node to check.</p></td>
364 </tr>
365 <tr>
366 <td align="LEFT" valign="TOP"><a name="AEN11860"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
367 <td align="LEFT" valign="TOP"><p>               the pointer to <code class="PARAMETER">node</code> parent node.</p></td>
368 </tr>
369 <tr>
370 <td align="LEFT" valign="TOP"><a name="AEN11866"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
371 <td align="LEFT" valign="TOP"><p> 1 if the <code class="PARAMETER">node</code> is in the nodes set <code class="PARAMETER">nset</code>, 0 if it is not
372 and a negative value if an error occurs.</p></td>
373 </tr>
374 </tbody></table>
375 </div>
376 <hr>
377 <div class="REFSECT2">
378 <a name="XMLSECNODESETADD"></a><h3>xmlSecNodeSetAdd ()</h3>
379 <pre class="PROGRAMLISTING"><font>xmlSecNodeSetPtr</font>    xmlSecNodeSetAdd                    (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
380                                                          <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> newNSet,
381                                                          <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> op);</pre>
382 <p>Adds <code class="PARAMETER">newNSet</code> to the <code class="PARAMETER">nset</code> using operation <code class="PARAMETER">op</code>.</p>
383 <p></p>
384 <p></p>
385 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
386 <tr>
387 <td align="LEFT" valign="TOP"><a name="AEN11888"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
388 <td align="LEFT" valign="TOP"><p>               the pointer to currrent nodes set (or NULL).</p></td>
389 </tr>
390 <tr>
391 <td align="LEFT" valign="TOP"><a name="AEN11893"><span style="white-space: nowrap"><code class="PARAMETER">newNSet</code> :</span></a></td>
392 <td align="LEFT" valign="TOP"><p>               the pointer to new nodes set.</p></td>
393 </tr>
394 <tr>
395 <td align="LEFT" valign="TOP"><a name="AEN11898"><span style="white-space: nowrap"><code class="PARAMETER">op</code> :</span></a></td>
396 <td align="LEFT" valign="TOP"><p>               the operation type.</p></td>
397 </tr>
398 <tr>
399 <td align="LEFT" valign="TOP"><a name="AEN11903"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
400 <td align="LEFT" valign="TOP"><p> the pointer to combined nodes set or NULL if an error 
401 occurs.</p></td>
402 </tr>
403 </tbody></table>
404 </div>
405 <hr>
406 <div class="REFSECT2">
407 <a name="XMLSECNODESETADDLIST"></a><h3>xmlSecNodeSetAddList ()</h3>
408 <pre class="PROGRAMLISTING"><font>xmlSecNodeSetPtr</font>    xmlSecNodeSetAddList                (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
409                                                          <a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> newNSet,
410                                                          <a href="xmlsec-nodeset.html#XMLSECNODESETOP">xmlSecNodeSetOp</a> op);</pre>
411 <p>Adds <code class="PARAMETER">newNSet</code> to the <code class="PARAMETER">nset</code> as child using operation <code class="PARAMETER">op</code>.</p>
412 <p></p>
413 <p></p>
414 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
415 <tr>
416 <td align="LEFT" valign="TOP"><a name="AEN11923"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
417 <td align="LEFT" valign="TOP"><p>               the pointer to currrent nodes set (or NULL).</p></td>
418 </tr>
419 <tr>
420 <td align="LEFT" valign="TOP"><a name="AEN11928"><span style="white-space: nowrap"><code class="PARAMETER">newNSet</code> :</span></a></td>
421 <td align="LEFT" valign="TOP"><p>               the pointer to new nodes set.</p></td>
422 </tr>
423 <tr>
424 <td align="LEFT" valign="TOP"><a name="AEN11933"><span style="white-space: nowrap"><code class="PARAMETER">op</code> :</span></a></td>
425 <td align="LEFT" valign="TOP"><p>               the operation type.</p></td>
426 </tr>
427 <tr>
428 <td align="LEFT" valign="TOP"><a name="AEN11938"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
429 <td align="LEFT" valign="TOP"><p> the pointer to combined nodes set or NULL if an error 
430 occurs.</p></td>
431 </tr>
432 </tbody></table>
433 </div>
434 <hr>
435 <div class="REFSECT2">
436 <a name="XMLSECNODESETGETCHILDREN"></a><h3>xmlSecNodeSetGetChildren ()</h3>
437 <pre class="PROGRAMLISTING"><font>xmlSecNodeSetPtr</font>    xmlSecNodeSetGetChildren            (<font>xmlDocPtr</font> doc,
438                                                          const <font>xmlNodePtr</font> parent,
439                                                          <font>int</font> withComments,
440                                                          <font>int</font> invert);</pre>
441 <p>Creates a new nodes set that contains:
442  - if <code class="PARAMETER">withComments</code> is not 0 and <code class="PARAMETER">invert</code> is 0:
443    all nodes in the <code class="PARAMETER">parent</code> subtree;
444  - if <code class="PARAMETER">withComments</code> is 0 and <code class="PARAMETER">invert</code> is 0:
445    all nodes in the <code class="PARAMETER">parent</code> subtree except comment nodes;
446  - if <code class="PARAMETER">withComments</code> is not 0 and <code class="PARAMETER">invert</code> not is 0:
447    all nodes in the <code class="PARAMETER">doc</code> except nodes in the <code class="PARAMETER">parent</code> subtree;
448  - if <code class="PARAMETER">withComments</code> is 0 and <code class="PARAMETER">invert</code> is 0:
449    all nodes in the <code class="PARAMETER">doc</code> except nodes in the <code class="PARAMETER">parent</code> subtree 
450    and comment nodes.</p>
451 <p></p>
452 <p></p>
453 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
454 <tr>
455 <td align="LEFT" valign="TOP"><a name="AEN11970"><span style="white-space: nowrap"><code class="PARAMETER">doc</code> :</span></a></td>
456 <td align="LEFT" valign="TOP"><p>               the pointer to an XML document.</p></td>
457 </tr>
458 <tr>
459 <td align="LEFT" valign="TOP"><a name="AEN11975"><span style="white-space: nowrap"><code class="PARAMETER">parent</code> :</span></a></td>
460 <td align="LEFT" valign="TOP"><p>               the pointer to parent XML node or NULL if we want to include all document nodes.</p></td>
461 </tr>
462 <tr>
463 <td align="LEFT" valign="TOP"><a name="AEN11980"><span style="white-space: nowrap"><code class="PARAMETER">withComments</code> :</span></a></td>
464 <td align="LEFT" valign="TOP"><p>       the flag include  comments or not.</p></td>
465 </tr>
466 <tr>
467 <td align="LEFT" valign="TOP"><a name="AEN11985"><span style="white-space: nowrap"><code class="PARAMETER">invert</code> :</span></a></td>
468 <td align="LEFT" valign="TOP"><p>               the "invert" flag.</p></td>
469 </tr>
470 <tr>
471 <td align="LEFT" valign="TOP"><a name="AEN11990"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
472 <td align="LEFT" valign="TOP"><p> pointer to the newly created <a href="xmlsec-nodeset.html#XMLSECNODESET"><span class="TYPE">xmlSecNodeSet</span></a> structure
473 or NULL if an error occurs.</p></td>
474 </tr>
475 </tbody></table>
476 </div>
477 <hr>
478 <div class="REFSECT2">
479 <a name="XMLSECNODESETWALK"></a><h3>xmlSecNodeSetWalk ()</h3>
480 <pre class="PROGRAMLISTING"><font>int</font>                 xmlSecNodeSetWalk                   (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
481                                                          <a href="xmlsec-nodeset.html#XMLSECNODESETWALKCALLBACK">xmlSecNodeSetWalkCallback</a> walkFunc,
482                                                          <font>void</font> *data);</pre>
483 <p>Calls the function <code class="PARAMETER">walkFunc</code> once per each node in the nodes set <code class="PARAMETER">nset</code>.
484 If the <code class="PARAMETER">walkFunc</code> returns a negative value, then the walk procedure 
485 is interrupted.</p>
486 <p></p>
487 <p></p>
488 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
489 <tr>
490 <td align="LEFT" valign="TOP"><a name="AEN12012"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
491 <td align="LEFT" valign="TOP"><p>               the pointer to node set.</p></td>
492 </tr>
493 <tr>
494 <td align="LEFT" valign="TOP"><a name="AEN12017"><span style="white-space: nowrap"><code class="PARAMETER">walkFunc</code> :</span></a></td>
495 <td align="LEFT" valign="TOP"><p>               the callback functions.</p></td>
496 </tr>
497 <tr>
498 <td align="LEFT" valign="TOP"><a name="AEN12022"><span style="white-space: nowrap"><code class="PARAMETER">data</code> :</span></a></td>
499 <td align="LEFT" valign="TOP"><p>               the application specific data passed to the <code class="PARAMETER">walkFunc</code>.</p></td>
500 </tr>
501 <tr>
502 <td align="LEFT" valign="TOP"><a name="AEN12028"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
503 <td align="LEFT" valign="TOP"><p> 0 on success or a negative value if an error occurs.</p></td>
504 </tr>
505 </tbody></table>
506 </div>
507 <hr>
508 <div class="REFSECT2">
509 <a name="XMLSECNODESETDUMPTEXTNODES"></a><h3>xmlSecNodeSetDumpTextNodes ()</h3>
510 <pre class="PROGRAMLISTING"><font>int</font>                 xmlSecNodeSetDumpTextNodes          (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
511                                                          <font>xmlOutputBufferPtr</font> out);</pre>
512 <p>Dumps content of all the text nodes from <code class="PARAMETER">nset</code> to <code class="PARAMETER">out</code>.</p>
513 <p></p>
514 <p></p>
515 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
516 <tr>
517 <td align="LEFT" valign="TOP"><a name="AEN12046"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
518 <td align="LEFT" valign="TOP"><p>               the pointer to node set.</p></td>
519 </tr>
520 <tr>
521 <td align="LEFT" valign="TOP"><a name="AEN12051"><span style="white-space: nowrap"><code class="PARAMETER">out</code> :</span></a></td>
522 <td align="LEFT" valign="TOP"><p>               the output buffer.</p></td>
523 </tr>
524 <tr>
525 <td align="LEFT" valign="TOP"><a name="AEN12056"><span style="white-space: nowrap"><span class="emphasis"><i class="EMPHASIS">Returns</i></span> :</span></a></td>
526 <td align="LEFT" valign="TOP"><p> 0 on success or a negative value otherwise.</p></td>
527 </tr>
528 </tbody></table>
529 </div>
530 <hr>
531 <div class="REFSECT2">
532 <a name="XMLSECNODESETDEBUGDUMP"></a><h3>xmlSecNodeSetDebugDump ()</h3>
533 <pre class="PROGRAMLISTING"><font>void</font>                xmlSecNodeSetDebugDump              (<a href="xmlsec-nodeset.html#XMLSECNODESET">xmlSecNodeSetPtr</a> nset,
534                                                          <font>FILE</font> *output);</pre>
535 <p>Prints information about <code class="PARAMETER">nset</code> to the <code class="PARAMETER">output</code>.</p>
536 <p></p>
537 <p></p>
538 <table class="variablelist" border="0" cellspacing="0" cellpadding="4"><tbody>
539 <tr>
540 <td align="LEFT" valign="TOP"><a name="AEN12074"><span style="white-space: nowrap"><code class="PARAMETER">nset</code> :</span></a></td>
541 <td align="LEFT" valign="TOP"><p>               the pointer to node set.</p></td>
542 </tr>
543 <tr>
544 <td align="LEFT" valign="TOP"><a name="AEN12079"><span style="white-space: nowrap"><code class="PARAMETER">output</code> :</span></a></td>
545 <td align="LEFT" valign="TOP"><p>               the pointer to output FILE.</p></td>
546 </tr>
547 </tbody></table>
548 </div>
549 </div>
550 <table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="2"><tr valign="middle">
551 <td align="left"><a accesskey="p" href="xmlsec-membuf.html"><b>&lt;&lt;&lt; membuf</b></a></td>
552 <td align="right"><a accesskey="n" href="xmlsec-parser.html"><b>parser &gt;&gt;&gt;</b></a></td>
553 </tr></table>
554 </td></tr></table></td>
555 </tr></table></body>
556 </html>