~ubuntu-branches/ubuntu/karmic/gnustep-base/karmic

« back to all changes in this revision

Viewing changes to Documentation/gsdoc/GSXMLNode.gsdoc

  • Committer: Bazaar Package Importer
  • Author(s): Eric Heintzmann
  • Date: 2005-04-17 00:14:38 UTC
  • mfrom: (1.2.1 upstream) (2.1.2 hoary)
  • Revision ID: james.westby@ubuntu.com-20050417001438-enf0y07c9tku85z1
Tags: 1.10.3-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
<?xml version="1.0"?>
2
 
<!DOCTYPE gsdoc PUBLIC "-//GNUstep//DTD gsdoc 0.6.6//EN" "http://www.gnustep.org/gsdoc-0_6_6.xml">
3
 
<gsdoc base="GSXMLNode" next="GSXMLAttribute" up="GSXML" prev="GSXMLNamespace">
4
 
  <head>
5
 
    <title>GSXMLNode</title>
6
 
    <author name="Michael Pakhantsov">
7
 
      <email address="mishel@berest.dp.ua"/>
8
 
    </author>
9
 
    <author name="Richard Frith-Macdonald">
10
 
      <email address="rfm@gnu.org"/>
11
 
    </author>
12
 
    <version>$Revision: 1.5 $</version>
13
 
    <date>$Date: 2001/04/25 14:06:40 $</date>
14
 
  </head>
15
 
  <body>
16
 
    <chapter>
17
 
      <heading>GSXMLNode</heading>
18
 
      <class name="GSXMLNode" super="NSObject">
19
 
        <declared>GSXML.h</declared>
20
 
          <desc>
21
 
          <p>
22
 
            XML Node.
23
 
          </p>
24
 
          </desc>
25
 
 
26
 
        <method type="NSString*" factory="yes">
27
 
          <sel>descriptionFromType:</sel>
28
 
          <arg type="int">type</arg>
29
 
          <desc>
30
 
            <p>
31
 
              Return the string constant value for the node
32
 
              type given.
33
 
            </p>
34
 
          </desc>
35
 
        </method>
36
 
 
37
 
        <method type="int" factory="yes">
38
 
          <sel>typeFromDescription:</sel>
39
 
          <arg type="NSString*">desc</arg>
40
 
          <desc>
41
 
            <p>
42
 
              Return the numeric constant value for the node
43
 
              type named.  This method is inefficient, so the returned
44
 
              value should be saved for re-use later.  The possible
45
 
              values are -
46
 
            </p>
47
 
            <list>
48
 
              <item>XML_ELEMENT_NODE</item>
49
 
              <item>XML_ATTRIBUTE_NODE</item>
50
 
              <item>XML_TEXT_NODE</item>
51
 
              <item>XML_CDATA_SECTION_NODE</item>
52
 
              <item>XML_ENTITY_REF_NODE</item>
53
 
              <item>XML_ENTITY_NODE</item>
54
 
              <item>XML_PI_NODE</item>
55
 
              <item>XML_COMMENT_NODE</item>
56
 
              <item>XML_DOCUMENT_NODE</item>
57
 
              <item>XML_DOCUMENT_TYPE_NODE</item>
58
 
              <item>XML_DOCUMENT_FRAG_NODE</item>
59
 
              <item>XML_NOTATION_NODE</item>
60
 
              <item>XML_HTML_DOCUMENT_NODE</item>
61
 
              <item>XML_DTD_NODE</item>
62
 
              <item>XML_ELEMENT_DECL</item>
63
 
              <item>XML_ATTRIBUTE_DECL</item>
64
 
              <item>XML_ENTITY_DECL</item>
65
 
              <item>XML_NAMESPACE_DECL</item>
66
 
              <item>XML_XINCLUDE_START</item>
67
 
              <item>XML_XINCLUDE_END</item>
68
 
              <item>XML_SGML_DOCUMENT_NODE</item>
69
 
            </list>
70
 
          </desc>
71
 
        </method>
72
 
 
73
 
        <method type="GSXMLNode*" factory="yes">
74
 
          <sel>nodeWithNamespace:</sel>
75
 
          <arg type="GSXMLNamespace*">ns</arg>
76
 
          <sel>name:</sel>
77
 
          <arg type="NSString*">name</arg>
78
 
          <sel>prefix:</sel>
79
 
          <arg type="NSString*">prefix</arg>
80
 
          <desc>
81
 
          <p>
82
 
            Creation of a new Node. This function will refuse to create a Node
83
 
          with a similar prefix than an existing one present on this node.
84
 
          </p>
85
 
 
86
 
          <example>
87
 
 
88
 
             ...
89
 
             GSXMLNamespace *ns1;
90
 
             GSXMLNode *node1, *node2;
91
 
             NSString *prefix = @"mac-os-property";
92
 
             NSString *href   = @"http://www.gnustep.org/some/location";
93
 
 
94
 
             ns = [GSXMLNamespace namespaceWithNode: nil
95
 
                                               href: href
96
 
                                             prefix: prefix];
97
 
             node1 = [GSXMLNode nodeWithNamespace: ns name: @"node1"];
98
 
             node2 = [GSXMLNode nodeWithNamespace: nil name: @"node2"];
99
 
             ...
100
 
 
101
 
          </example>
102
 
          </desc>
103
 
        </method>
104
 
 
105
 
        <method type="id">
106
 
          <sel>initWithNamespace:</sel>
107
 
          <arg type="GSXMLNamespace*">ns</arg>
108
 
          <sel>name:</sel>
109
 
          <arg type="NSString*">name</arg>
110
 
          <sel>prefix:</sel>
111
 
          <arg type="NSString*">prefix</arg>
112
 
          <desc>
113
 
          <p>
114
 
            Creation of a new node elemen, ns is optional (nil).
115
 
            </p>
116
 
          </desc>
117
 
        </method>
118
 
 
119
 
        <method type="GSXMLNode*" factory="yes">
120
 
          <sel>nodeFrom:</sel>
121
 
          <arg type="void*">data</arg>
122
 
          <desc>
123
 
          <p>
124
 
          Creation of a new Node from libxml data.
125
 
          </p>
126
 
          </desc>
127
 
        </method>
128
 
 
129
 
        <method type="id" init="yes">
130
 
          <sel>initFrom:</sel>
131
 
          <arg type="void*">data</arg>
132
 
          <desc>
133
 
          <p>
134
 
            Creation of a new Node from libxml data.
135
 
            </p>
136
 
          </desc>
137
 
        </method>
138
 
 
139
 
        <method type="void*">
140
 
          <sel>lib</sel>
141
 
          <desc>
142
 
          <p>
143
 
            Return pointer to xmlNode structure.
144
 
            </p>
145
 
          </desc>
146
 
        </method>
147
 
 
148
 
        <method type="NSString*">
149
 
          <sel>name</sel>
150
 
          <desc>
151
 
          <p>
152
 
          Return Node name.
153
 
          </p>
154
 
          </desc>
155
 
        </method>
156
 
 
157
 
        <method type="NSString*">
158
 
          <sel>content</sel>
159
 
          <desc>
160
 
          <p>
161
 
            Return Node content.
162
 
            </p>
163
 
          </desc>
164
 
        </method>
165
 
 
166
 
        <method type="GSXMLNamespace*">
167
 
          <sel>ns</sel>
168
 
          <desc>
169
 
          <p>
170
 
            Return Node namespace.
171
 
            </p>
172
 
          </desc>
173
 
        </method>
174
 
 
175
 
        <method type="GSXMLNamespace*">
176
 
          <sel>nsDef</sel>
177
 
          <desc>
178
 
          <p>
179
 
            Return namespace definitions of this node.
180
 
           </p>
181
 
          </desc>
182
 
        </method>
183
 
 
184
 
        <method type="GSXMLAttribute*">
185
 
          <sel>properties</sel>
186
 
          <desc>
187
 
          <p>
188
 
            Return pointer to the first attribute on this node.
189
 
          </p>
190
 
          <example>
191
 
 
192
 
            GSXMLNode *n1;
193
 
            GSXMLAttribute *a;
194
 
 
195
 
            n1 = [GSXMLNode nodeWithNamespace: nil name: nodeName];
196
 
            [n1 setProp: @"prop1" value: @"value1"];
197
 
            [n1 setProp: @"prop2" value: @"value2"];
198
 
            [n1 setProp: @"prop3" value: @"value3"];
199
 
 
200
 
            a = [n1 properties];
201
 
            NSLog(@"n1 property name - %@ value - %@", [a name], [a value]);
202
 
            while ((a = [a next]) != nil)
203
 
              {
204
 
                NSLog(@"n1 property name - %@ value - %@", [a name], [a value]);
205
 
              }
206
 
 
207
 
           </example>
208
 
          </desc>
209
 
        </method>
210
 
 
211
 
        <method type="NSMutableDictionary*">
212
 
          <sel>propertiesAsDictionary</sel>
213
 
          <desc>
214
 
            <p>
215
 
              Return attributes and values as a dictionary.
216
 
            </p>
217
 
            <example>
218
 
 
219
 
            GSXMLNode *n1;
220
 
            NSMutableDictionary *prop;
221
 
            NSEnumerator *e;
222
 
            id key;
223
 
 
224
 
            prop = [n1 propertiesAsDictionary];
225
 
            e = [prop keyEnumerator];
226
 
            while ((key = [e nextObject]) != nil)
227
 
              {
228
 
                NSLog(@"property name - %@ value - %@", key,
229
 
                  [prop objectForKey: key]);
230
 
              }
231
 
            </example>
232
 
          </desc>
233
 
        </method>
234
 
 
235
 
        <method type="NSMutableDictionary*">
236
 
          <sel>propertiesAsDictionaryWithKeyTransformationSel:</sel>
237
 
          <arg type="SEL">keyTransformSel</arg>
238
 
          <desc>
239
 
            <p>
240
 
              Return attributes and values as a dictionary, but applies
241
 
              the specified selector to each key before adding the
242
 
              key and value to the dictionary.  The selector must be a
243
 
              method of NSString taking no arguments and returning an
244
 
              object suitable for use as a dictionary key.
245
 
            </p>
246
 
            <p>
247
 
              This method exists for the use of GSWeb ... it is probably
248
 
              not of much use elsewhere.
249
 
            </p>
250
 
          </desc>
251
 
        </method>
252
 
 
253
 
        <method type="GSXMLNodeType">
254
 
          <sel>type</sel>
255
 
          <desc>
256
 
            <p>
257
 
              Return type of Node.
258
 
            </p>
259
 
          </desc>
260
 
        </method>
261
 
 
262
 
        <method type="NSString*">
263
 
          <sel>typeDescription</sel>
264
 
          <desc>
265
 
            <p>
266
 
              Return the name of the type of the Node.
267
 
            </p>
268
 
          </desc>
269
 
        </method>
270
 
 
271
 
        <method type="GSXMLDocument*">
272
 
          <sel>doc</sel>
273
 
          <desc>
274
 
          <p>Return owner of this node.
275
 
            </p>
276
 
          </desc>
277
 
        </method>
278
 
 
279
 
        <method type="GSXMLNode*">
280
 
          <sel>children</sel>
281
 
          <desc>
282
 
          <p>Return children of this node.
283
 
          </p>
284
 
          <example>
285
 
              - (GSXMLNode*) nextElement: (GSXMLNode*)node
286
 
              {
287
 
                while (node != nil)
288
 
                  {
289
 
                    if ([node type] == XML_ELEMENT_NODE)
290
 
                      {
291
 
                        return node;
292
 
                      }
293
 
                    if ([node children] != nil)
294
 
                      {
295
 
                        node = [self nextElement: [node children]];
296
 
                      }
297
 
                    else
298
 
                      node = [node next];
299
 
                  }
300
 
                return node;
301
 
              }
302
 
           </example>
303
 
          </desc>
304
 
        </method>
305
 
 
306
 
        <method type="GSXMLNode*">
307
 
          <sel>parent</sel>
308
 
          <desc>
309
 
          <p>Return parent of this node.
310
 
            </p>
311
 
          </desc>
312
 
        </method>
313
 
 
314
 
        <method type="GSXMLNode*">
315
 
          <sel>next</sel>
316
 
          <desc>
317
 
          <p>Return next node.
318
 
            </p>
319
 
          </desc>
320
 
        </method>
321
 
 
322
 
        <method type="GSXMLNode*">
323
 
          <sel>prev</sel>
324
 
          <desc>
325
 
          <p>Return previous node.
326
 
            </p>
327
 
          </desc>
328
 
        </method>
329
 
 
330
 
        <method type="GSXMLNode*">
331
 
          <sel>makeChild:</sel>
332
 
          <arg type="GSXMLNamespace*">ns</arg>
333
 
          <sel>name:</sel>
334
 
          <arg type="NSString*">name</arg>
335
 
          <sel>content:</sel>
336
 
          <arg type="NSString*">content</arg>
337
 
          <desc>
338
 
            <p>
339
 
              Creation of a new child element, added at the end of
340
 
              parent children list.
341
 
              ns and content parameters are optional (may be nil).
342
 
              If content is non nil, a child list containing the
343
 
              TEXTs and ENTITY_REFs node will be created.
344
 
              Return previous node.
345
 
            </p>
346
 
            <example>
347
 
 
348
 
  GSXMLNode *n1, *n2;
349
 
  GSXMLDocument *d, *d1;
350
 
 
351
 
  d = [GSXMLDocument documentWithVersion: @"1.0"];
352
 
  [d setRoot: [d makeNodeWithNamespace: nil
353
 
                                  name: @"plist"
354
 
                               content: nil]];
355
 
  [[d root] setProp: @"version" value: @"0.9"];
356
 
  n1 = [[d root] makeChildWithNamespace: nil
357
 
                                   name: @"dict"
358
 
                                content: nil];
359
 
  [n1 makeChildWithNamespace: nil name: @"key" content: @"Year Of Birth"];
360
 
  [n1 makeChildWithNamespace: nil name: @"integer" content: @"65"];
361
 
  [n1 makeChildWithNamespace: nil name: @"key" content: @"Pets Names"];
362
 
  [n1 makeChildWithNamespace: nil name: @"array" content: nil];
363
 
 
364
 
            </example>
365
 
          </desc>
366
 
        </method>
367
 
 
368
 
        <method type="GSXMLNode*">
369
 
          <sel>makeComment:</sel>
370
 
          <arg type="NSString*">content</arg>
371
 
          <desc>
372
 
            <p>
373
 
              Creation of a new comment element, added at the end of
374
 
              parent children list.
375
 
            </p>
376
 
            <example>
377
 
  d = [GSXMLDocument documentWithVersion: @"1.0"];
378
 
 
379
 
  [d setRoot: [d makeNodeWithNamespace: nil name: @"plist" content: nil]];
380
 
  [[d root] setProp: @"version" value: @"0.9"];
381
 
  n1 = [[d root] makeChildWithNamespace: nil name: @"dict" content: nil];
382
 
  [n1 makeComment: @" this is a comment "];
383
 
            </example>
384
 
          </desc>
385
 
        </method>
386
 
 
387
 
        <method type="GSXMLNode*">
388
 
          <sel>makePI:</sel>
389
 
          <arg type="NSString*">content</arg>
390
 
          <desc>
391
 
            <p>
392
 
               Creation of a new process instruction element,
393
 
               added at the end of parent children list.
394
 
            </p>
395
 
            <example>
396
 
  d = [GSXMLDocument documentWithVersion: @"1.0"];
397
 
 
398
 
  [d setRoot: [d makeNodeWithNamespace: nil name: @"plist" content: nil]];
399
 
  [[d root] setProp: @"version" value: @"0.9"];
400
 
  n1 = [[d root] makeChildWithNamespace: nil name: @"dict" content: nil];
401
 
  [n1 makeComment: @" this is a comment "];
402
 
  [n1 makePI: @"pi1" content: @"this is a process instruction"];
403
 
            </example>
404
 
          </desc>
405
 
        </method>
406
 
 
407
 
        <method type="GSXMLAttribute*">
408
 
          <sel>setProp:</sel>
409
 
          <arg type="NSString*">name</arg>
410
 
          <sel>value:</sel>
411
 
          <arg type="NSString*">value</arg>
412
 
          <desc>
413
 
            <p>Set (or reset) an attribute carried by a node.
414
 
            </p>
415
 
            <example>
416
 
  id n1 = [GSXMLNode nodeWithNamespace: nil name: nodeName];
417
 
  [n1 setProp: @"prop1" value: @"value1"];
418
 
  [n1 setProp: @"prop2" value: @"value2"];
419
 
  [n1 setProp: @"prop3" value: @"value3"];
420
 
 
421
 
            </example>
422
 
          </desc>
423
 
        </method>
424
 
 
425
 
        <method type="int">
426
 
          <sel>type</sel>
427
 
          <desc>
428
 
            <p>
429
 
              Return the numeric type code for this node.
430
 
            </p>
431
 
          </desc>
432
 
        </method>
433
 
 
434
 
        <method type="NSString*">
435
 
          <sel>typeDescription</sel>
436
 
          <desc>
437
 
            <p>
438
 
              Return the string type code for this node.
439
 
            </p>
440
 
          </desc>
441
 
        </method>
442
 
 
443
 
      </class>
444
 
    </chapter>
445
 
  </body>
446
 
</gsdoc>
447