added Info.plist
[TestXSLT.git] / libsablot / doc / apidoc / jsdom-ref.xml
1 <?xml version='1.0'?>
2 <API id='Sablotron Extensions API'>
3
4   <FOOT>
5     &amp;copy; 2001-2002 Ginger Alliance<BR/>
6     <I>revision 02-08-05</I><BR/>
7   </FOOT>
8
9   <!-- General -->
10
11   <ENTRY id='.Introduction'>
12     <TYPE value='.General'/>
13     <SUMMARY>
14       This reference guide describes the DOM API for Sablotron Extension
15       functions in JavaScript. Sablotron supports an extension element
16       funct:script element (where funct prefix is bound to the 
17       'http://exslt.org/functions' namespace URI) with 
18       language="func:ecmascript" or language="func:javascript" (just 
19       "ecmascript" or "javascript" work as well).
20     </SUMMARY>
21     <DESCRIPTION>
22       The API implementation follows the ECMAScript/DOM2 Language Binding 
23       defined in <S>DOM Level2</S>, Appendix E.<P/>
24
25       However, there are few exceptions from the specifications:<P/>
26
27       <B>*</B> The DOM model is read only<BR/>
28       <B>*</B> DOM functions handling namespaces (with NS in their name) are 
29       not supported (throw NOT_SUPPORTED exception).<BR/>
30       <B>*</B> XSLTContext.stringValue method is not supported.<BR/>
31       <B>*</B> Document.getElementsByTagName{NS} methods aren't supported.<BR/>
32       <B>*</B> Element.getElementsByTagName{NS} methods aren't supported.<BR/>
33       <B>*</B> DTD definition nodes are not supported.<P/>
34
35       As the model is read-only and because of distinctions in the DOM
36       and the XPath models, some objects can't be ever instantiated.
37       Those objects (DocumentFragment, Text, Comment, CDATASection, 
38       DocumentType, Notation, Entity, EntityReference, ProcessingInstruction)
39       are not supported.<P/>
40
41       See <C>.Objects</C> for the list of implemented objects.<P/>
42
43       Type <C>.Conversions</C> and <C>XSLTContext</C> object binding are 
44       implemented according to <S>XSLT 1.1</S>, Appendix C3.
45
46     </DESCRIPTION>
47     <EXTERNALREF name="DOM Level2" value="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/"/>
48     <EXTERNALREF name="XSLT 1.1" value="http://www.w3.org/TR/xslt11/"/>
49   </ENTRY>
50
51   <ENTRY id='.Objects'>
52     <TYPE value='.General'/>
53     <DESCRIPTION>
54       A global object <C>XSLTContext</C> provides an access to XSLT 
55       and XPath expession context.
56       <P/>
57       The following DOM objects are available:<BR/>
58       <C>DOMException</C><BR/>
59       <C>DOMImplementation</C><BR/>
60       <C>Document</C><BR/>
61       <C>Node</C><BR/>
62       <C>NodeList</C><BR/>
63       <C>NamedNodeMap</C><BR/>
64       <C>CharacterData</C><BR/>
65       <C>Attr</C><BR/>
66       <C>Element</C><BR/>
67     </DESCRIPTION>
68   </ENTRY>
69
70   <ENTRY id='.Conversions'>
71     <TYPE value='.General'/>
72     <DESCRIPTION>
73       The following function argument conversions are performed:<P/>
74       <B>*</B> An XPath string object is mapped to an ECMAScript string 
75       value.<BR/>
76       <B>*</B> An XPath number object is mapped to an ECMAScript number 
77       value.<BR/>
78       <B>*</B> An XPath boolean object is mapped to an ECMAScript boolean 
79       value.<BR/>
80       <B>*</B> An XPath node-set object is mapped to the ECMAScript binding
81       for the DOM <C>NodeList</C>.<BR/>
82       <B>*</B> An XSLT external object is mapped to the ECMAScript object that
83       it wraps.<BR/>
84       <P/>
85       The following conversions are performed on return values:<P/>
86       <B>*</B> An ECMAScript string value or String object is mapped to an 
87       XPath string object.<BR/>
88       <B>*</B> An ECMAScript number value or Number object is mapped to an 
89       XPath number object.<BR/>
90       <B>*</B> An ECMAScript boolean value or Boolean object is mapped to an 
91       XPath boolean object.<BR/>
92       <B>*</B> An ECMAScript object that is an instance of either 
93       <C>Document</C>, <C>Node</C>, <C>NodeList</C>, <C>Attr</C>, 
94       <C>Element</C> or <C>CharacterData</C> are  mapped to an XPath 
95       node-set.<BR/> 
96       <B>*</B> The ECMAScript null value is mapped to an XSLT external 
97       object.<BR/>
98       <B>*</B> The ECMAScript undefined value is mapped to an empty 
99       node-set.<BR/>
100       <B>*</B> Any other ECMAScript object is mapped to an XSLT external 
101       object<BR/>
102       <P/>
103     </DESCRIPTION>
104   </ENTRY>
105
106   <ENTRY id='.Example'>
107     <TYPE value='.General'/>
108     <SUMMARY>
109       An example how to use the DOM in JavaScript extension functions. The 
110       function returns a sum of all attributes in a nodeset.
111     </SUMMARY>
112     <EXAMPLE>
113 Template:
114 --------------------
115 &amp;lt;?xml version="1.0"?&amp;gt;
116 &amp;lt;xsl:stylesheet version="1.0"
117   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
118   xmlns:func="http://www.exslt.org/functions"
119   xmlns:my="http://gingerall.org/sablot/myfunc"
120   extension-element-prefixes="func"
121   exclude-result-prefixes="my"&amp;gt;
122       
123   &amp;lt;xsl:output method="xml" indent="yes"/&amp;gt;
124       
125   &amp;lt;func:script implements-prefix="my" language="javascript"&amp;gt;&amp;lt;![CDATA[
126       
127   function attrSum(nodeset) {
128     var sum = 0;
129     for (i = 0; i &amp;lt; nodeset.length; i++) {
130       for (j = 0; j &amp;lt; nodeset[i].attributes.length; j++) {
131         sum += Number(nodeset[i].attributes.item(j));
132       }
133     }  
134     return sum;
135   }
136       
137   ]]&amp;gt;
138   &amp;lt;xsl:fallback&amp;gt;
139     &amp;lt;xsl:text&amp;gt;JS extension no supported!&amp;lt;/xsl:text&amp;gt;
140   &amp;lt;/xsl:fallback&amp;gt;
141   &amp;lt;/func:script&amp;gt;
142
143
144   &amp;lt;xsl:template match="/root"&amp;gt;
145     &amp;lt;root&amp;gt;
146       &amp;lt;xsl:choose&amp;gt;
147         &amp;lt;xsl:when test="function-available('my:attrSum')"&amp;gt;
148           &amp;lt;xsl:text&amp;gt;The sum of attributes: &amp;lt;/xsl:text&amp;gt;
149           &amp;lt;xsl:value-of select="my:attrSum(node)"/&amp;gt;
150         &amp;lt;/xsl:when&amp;gt;
151         &amp;lt;xsl:otherwise&amp;gt;Function not available!&amp;lt;/xsl:otherwise&amp;gt;
152       &amp;lt;/xsl:choose&amp;gt;
153     &amp;lt;/root&amp;gt;
154   &amp;lt;/xsl:template&amp;gt;
155         
156       
157 &amp;lt;/xsl:stylesheet&amp;gt;
158
159 Data:
160 --------------------
161 &amp;lt;?xml version="1.0"?&amp;gt;
162 &amp;lt;root&amp;gt;
163       
164   &amp;lt;node a="1" b="2"/&amp;gt;
165   &amp;lt;node c="10"/&amp;gt;
166   &amp;lt;node a="5" b="6" c="7"/&amp;gt;
167
168 &amp;lt;/root&amp;gt;
169
170 Result:
171 --------------------
172 &amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;
173 &amp;lt;root&amp;gt;The sum of attributes: 31&amp;lt;/root&amp;gt;
174
175     </EXAMPLE>
176   </ENTRY>
177
178   <ENTRY id='.Debugging'>
179     <TYPE value='.General'/>
180     <SUMMARY>
181       To facilitate the debugging of JS scripts it's possible to
182       write to Sablotron's log file from a script.
183     </SUMMARY>
184     <SYNTAX>
185       log(string)
186       <PARAM name="string" type="String">
187         String value.
188       </PARAM>
189     </SYNTAX>
190     <DESCRIPTION>
191       This function writes a string to Sablotron's log file. The log file
192       must be specified either from the command line 
193       <C>sabcmd -L logfile ...</C> or with the <C>SablotSetLog</C> 
194       API function.
195     </DESCRIPTION>
196   </ENTRY>
197
198   <!-- Objects -->
199
200   <ENTRY id='XSLTContext'>
201     <TYPE value='Objects'/>
202     <DESCRIPTION>
203       The XSLTContext global object has the following properties:<BR/>
204       <C>XSLTContext.contextNode</C><BR/>
205       <C>XSLTContext.contextPosition</C><BR/>
206       <C>XSLTContext.contextSize</C><BR/>
207       <C>XSLTContext.currentNode</C><BR/>
208       <C>XSLTContext.ownerDocument</C><BR/>
209     </DESCRIPTION>
210   </ENTRY>
211
212   <ENTRY id='DOMException'>
213     <TYPE value='Objects'/>
214     <DESCRIPTION>
215       The DOMException object has the following properties:<BR/>
216       <C>DOMException.code</C><P/>
217
218       The DOMException class has the following constants:<P/>
219       DOMException.INDEX_SIZE_ERR, type Number, value 1.<BR/>
220       DOMException.DOMSTRING_SIZE_ERR, type Number, value 2.<BR/>
221       DOMException.HIERARCHY_REQUEST_ERR, type Number, value 3.<BR/>
222       DOMException.WRONG_DOCUMENT_ERR, type Number, value 4.<BR/>
223       DOMException.INVALID_CHARACTER_ERR, type Number, value 5.<BR/>
224       DOMException.NO_DATA_ALLOWED_ERR, type Number, value 6.<BR/>
225       DOMException.NO_MODIFICATION_ALLOWED_ERR, type Number, value 7.<BR/>
226       DOMException.NOT_FOUND_ERR, type Number, value 8.<BR/>
227       DOMException.NOT_SUPPORTED_ERR, type Number, value 9.<BR/>
228       DOMException.INUSE_ATTRIBUTE_ERR, type Number, value 10.<BR/>
229       DOMException.INVALID_STATE_ERR, type Number, value 11.<BR/>
230       DOMException.SYNTAX_ERR, type Number, value 12.<BR/>
231       DOMException.INVALID_MODIFICATION_ERR, type Number, value 13.<BR/>
232       DOMException.NAMESPACE_ERR, type Number, value 14.<BR/>
233       DOMException.INVALID_ACCESS_ERR, type Number, value 15.<BR/>
234     </DESCRIPTION>
235   </ENTRY>
236
237   <ENTRY id='DOMImplementation'>
238     <TYPE value='Objects'/>
239     <DESCRIPTION>
240       The DOMImplementation object has the following methods:<BR/>
241       <C>DOMImplementation.hasFeature()</C><BR/>
242     </DESCRIPTION>
243   </ENTRY>
244
245   <ENTRY id='Document'>
246     <TYPE value='Objects'/>
247     <DESCRIPTION>
248       Document has the all the properties and methods of the <C>Node</C> 
249       object as well as the properties and methods defined below.<P/>
250
251       The Document object has the following properties:<BR/>
252       <C>Document.implementation</C><BR/>
253       <C>Document.documentElement</C><BR/>
254     </DESCRIPTION>
255   </ENTRY>
256
257   <ENTRY id='Node'>
258     <TYPE value='Objects'/>
259     <DESCRIPTION>
260       The Node object has the following properties:<BR/>
261       <C>Node.nodeName</C><BR/>
262       <C>Node.nodeValue</C><BR/>
263       <C>Node.nodeType</C><BR/>
264       <C>Node.parentNode</C><BR/>
265       <C>Node.childNodes</C><BR/>
266       <C>Node.firstChild</C><BR/>
267       <C>Node.lastChild</C><BR/>
268       <C>Node.previousSibling</C><BR/>
269       <C>Node.nextSibling</C><BR/>
270       <C>Node.attributes</C><BR/>
271       <C>Node.ownerDocument</C><BR/>
272       <C>Node.namespaceURI</C><BR/>
273       <C>Node.prefix</C><BR/>
274       <C>Node.localName</C><BR/>
275       <P/>
276
277       The Node object has the following methods:<BR/>
278       <C>Node.hasChildNodes()</C><BR/>
279       <C>Node.isSupported()</C><BR/>
280       <C>Node.hasAttributes()</C><BR/>
281       <P/>
282
283       The Node class has the following constants:<P/>
284       Node.ELEMENT_NODE, type Number, value 1.<BR/>
285       Node.ATTRIBUTE_NODE, type Number, value 2.<BR/>
286       Node.TEXT_NODE, type Number, value 3.<BR/>
287       Node.CDATA_SECTION_NODE, type Number, value 4.<BR/>
288       Node.ENTITY_REFERENCE_NODE, type Number, value 5.<BR/>
289       Node.ENTITY_NODE, type Number, value 6.<BR/>
290       Node.PROCESSING_INSTRUCTION_NODE, type Number, value 7.<BR/>
291       Node.COMMENT_NODE, type Number, value 8.<BR/>
292       Node.DOCUMENT_NODE, type Number, value 9.<BR/>
293       Node.DOCUMENT_TYPE_NODE, type Number, value 10.<BR/>
294       Node.DOCUMENT_FRAGMENT_NODE, type Number, value 11.<BR/>
295       Node.NOTATION_NODE, type Number, value 12.<BR/>
296     </DESCRIPTION>
297   </ENTRY>
298
299   <ENTRY id='NodeList'>
300     <TYPE value='Objects'/>
301     <DESCRIPTION>
302       The NodeList object has the following properties:<BR/>
303       <C>NodeList.length</C><BR/>
304       <P/>
305
306       The NodeList object has the following methods:<BR/>
307       <C>NodeList.item()</C><BR/>
308       <P/>
309     </DESCRIPTION>
310   </ENTRY>
311
312   <ENTRY id='NamedNodeMap'>
313     <TYPE value='Objects'/>
314     <DESCRIPTION>
315       The NamedNodeMap object has the following properties:<BR/>
316       <C>NamedNodeMap.length</C><BR/>
317       <P/>
318
319       The NamedNodeMap object has the following methods:<BR/>
320       <C>NamedNodeMap.getNamedItem()</C><BR/>
321       <C>NamedNodeMap.item()</C><BR/>
322       <P/>
323     </DESCRIPTION>
324   </ENTRY>
325
326   <ENTRY id='CharacterData'>
327     <TYPE value='Objects'/>
328     <DESCRIPTION>
329       CharacterData has the all the properties and methods of the <C>Node</C>
330       object as well as the properties and methods defined below.<P/>
331
332       The CharacterData object has the following properties:<BR/>
333       <C>CharacterData.data</C><BR/>
334       <C>CharacterData.length</C><BR/>
335       <P/>
336
337       The CharacterData object has the following methods:<BR/>
338       <C>CharacterData.substringData()</C><BR/>
339       <P/>
340     </DESCRIPTION>
341   </ENTRY>
342
343   <ENTRY id='Attr'>
344     <TYPE value='Objects'/>
345     <DESCRIPTION>
346       Attr has the all the properties and methods of the <C>Node</C> object 
347       as well as the properties and methods defined below.<P/>
348
349       The Attr object has the following properties:<BR/>
350       <C>Attr.name</C><BR/>
351       <C>Attr.specified</C><BR/>
352       <C>Attr.value</C><BR/>
353       <C>Attr.ownerElement</C><BR/>
354       <P/>
355     </DESCRIPTION>
356   </ENTRY>
357
358   <ENTRY id='Element'>
359     <TYPE value='Objects'/>
360     <DESCRIPTION>
361       Element has the all the properties and methods of the <C>Node</C>
362       object as well as the properties and methods defined below.<P/>
363
364       The Element object has the following properties:<BR/>
365       <C>Element.tagName</C><BR/>
366       <P/>
367
368       The Element object has the following methods:<BR/>
369       <C>Element.getAttribute()</C><BR/>
370       <C>Element.getAttributeNode()</C><BR/>
371       <C>Element.hasAttribute()</C><BR/>
372       <P/>
373     </DESCRIPTION>
374   </ENTRY>
375
376   <!-- DOMException Object -->
377
378   <ENTRY id="DOMException.code">
379     <TYPE value="DOMException"/>
380     <SYNTAX>
381       code
382       <PARAM name="(PROP)" type="Number">
383         This property is of type Number.
384       </PARAM>
385     </SYNTAX>
386     <NOTE>
387       This function always returns FALSE currently.
388     </NOTE>
389   </ENTRY>
390
391   <!-- DOMImplementation Object -->
392
393   <ENTRY id="DOMImplementation.hasFeature()">
394     <TYPE value="DOMImplementation"/>
395     <SYNTAX>
396       hasFeature(feature, version)
397       <PARAM name="feature" type="String">
398         The feature parameter is of type String.
399       </PARAM>
400       <PARAM name="version" type="String">
401         The version parameter is of type String.
402       </PARAM>
403       <PARAM name="(RET)" type="Boolean">
404         This method returns a Boolean.
405       </PARAM>
406     </SYNTAX>
407     <DESCRIPTION>
408       This function always returns FALSE currently.
409     </DESCRIPTION>
410   </ENTRY>
411
412   <!-- Document Object -->
413  
414   <ENTRY id="Document.implementation">
415     <TYPE value="Document"/>
416     <SYNTAX>
417       implementation
418       <PARAM name="(PROP)" type="DOMImplementation">
419         This read-only property is a DocumentType object.
420       </PARAM>
421     </SYNTAX>
422   </ENTRY>
423
424   <ENTRY id="Document.documentElement">
425     <TYPE value="Document"/>
426     <SYNTAX>
427       documentElement
428       <PARAM name="(PROP)" type="Element">
429         This read-only property is an Element object.
430       </PARAM>
431     </SYNTAX>
432   </ENTRY>
433
434   <!-- Node Object -->
435
436   <ENTRY id="Node.nodeName">
437     <TYPE value="Node"/>
438     <SYNTAX>
439       nodeName
440       <PARAM name="(PROP)" type="String">
441         This read-only property is of type String.
442       </PARAM>
443     </SYNTAX>
444   </ENTRY>
445
446   <ENTRY id="Node.nodeValue">
447     <TYPE value="Node"/>
448     <SYNTAX>
449       nodeValue
450       <PARAM name="(PROP)" type="String">
451         This property is of type String. 
452       </PARAM>
453     </SYNTAX>
454     <NOTE>
455       This property can raise a <C>DOMException</C> object on setting and can 
456       raise a <C>DOMException</C> object on retrieval.
457     </NOTE>
458   </ENTRY>
459
460   <ENTRY id="Node.nodeType">
461     <TYPE value="Node"/>
462     <SYNTAX>
463       nodeType
464       <PARAM name="(PROP)" type="Number">
465         This read-only property is of type Number.
466       </PARAM>
467     </SYNTAX>
468     <DESCRIPTION>
469       See <C>Node</C> class constants.
470     </DESCRIPTION>
471   </ENTRY>
472
473   <ENTRY id="Node.parentNode">
474     <TYPE value="Node"/>
475     <SYNTAX>
476       parentNode
477       <PARAM name="(PROP)" type="Node">
478         This read-only property is a Node object.
479       </PARAM>
480     </SYNTAX>
481   </ENTRY>
482
483   <ENTRY id="Node.childNodes">
484     <TYPE value="Node"/>
485     <SYNTAX>
486       childNodes
487       <PARAM name="(PROP)" type="NodeList">
488         This read-only property is a NodeList object.
489       </PARAM>
490     </SYNTAX>
491   </ENTRY>
492
493   <ENTRY id="Node.firstChild">
494     <TYPE value="Node"/>
495     <SYNTAX>
496       firstChild
497       <PARAM name="(PROP)" type="Node">
498         This read-only property is a Node object.
499       </PARAM>
500     </SYNTAX>
501   </ENTRY>
502
503   <ENTRY id="Node.lastChild">
504     <TYPE value="Node"/>
505     <SYNTAX>
506       lastChild
507       <PARAM name="(PROP)" type="Node">
508         This read-only property is a Node object.
509       </PARAM>
510     </SYNTAX>
511   </ENTRY>
512
513   <ENTRY id="Node.previousSibling">
514     <TYPE value="Node"/>
515     <SYNTAX>
516       previousSibling
517       <PARAM name="(PROP)" type="Node">
518         This read-only property is a Node object.
519       </PARAM>
520     </SYNTAX>
521   </ENTRY>
522
523   <ENTRY id="Node.nextSibling">
524     <TYPE value="Node"/>
525     <SYNTAX>
526       nextSibling
527       <PARAM name="(PROP)" type="Node">
528         This read-only property is a Node object.
529       </PARAM>
530     </SYNTAX>
531   </ENTRY>
532   
533   <ENTRY id="Node.attributes">
534     <TYPE value="Node"/>
535     <SYNTAX>
536       attributes
537       <PARAM name="(PROP)" type="NamedNodeMap">
538         This read-only property is a NamedNodeMap object.
539       </PARAM>
540     </SYNTAX>
541   </ENTRY>
542
543   <ENTRY id="Node.ownerDocument">
544     <TYPE value="Node"/>
545     <SYNTAX>
546       ownerDocument
547       <PARAM name="(PROP)" type="Document">
548         This read-only property is a Document object.
549       </PARAM>
550     </SYNTAX>
551   </ENTRY>
552
553   <ENTRY id="Node.namespaceURI">
554     <TYPE value="Node"/>
555     <SYNTAX>
556       namespaceURI
557       <PARAM name="(PROP)" type="String">
558         This read-only property is of type String.
559       </PARAM>
560     </SYNTAX>
561   </ENTRY>
562         
563   <ENTRY id="Node.prefix">
564     <TYPE value="Node"/>
565     <SYNTAX>
566       prefix
567       <PARAM name="(PROP)" type="String">
568         This property is of type String.
569       </PARAM>
570     </SYNTAX>
571     <NOTE>
572       This property can raise a <C>DOMException</C> object on setting.
573     </NOTE>
574   </ENTRY>
575
576   <ENTRY id="Node.localName">
577     <TYPE value="Node"/>
578     <SYNTAX>
579       localName
580       <PARAM name="(PROP)" type="String">
581         This read-only property is of type String.
582       </PARAM>
583     </SYNTAX>
584   </ENTRY>
585
586   <ENTRY id="Node.hasAttributes()">
587     <TYPE value="Node"/>
588     <SYNTAX>
589       hasAttributes()
590       <PARAM name="(RET)" type="Boolean">
591         This method returns a Boolean.
592       </PARAM>
593     </SYNTAX>
594   </ENTRY>
595
596   <ENTRY id="Node.hasChildNodes()">
597     <TYPE value="Node"/>
598     <SYNTAX>
599       hasChildNodes()
600       <PARAM name="(RET)" type="Boolean">
601         This method returns a Boolean.
602       </PARAM>
603     </SYNTAX>
604   </ENTRY>
605
606   <ENTRY id="Node.isSupported()">
607     <TYPE value="Node"/>
608     <SYNTAX>
609       isSupported(feature, version)
610       <PARAM name="feature" type="String">
611         The feature parameter is of type String.
612       </PARAM>
613       <PARAM name="version" type="String">
614         The version parameter is of type String.
615       </PARAM>
616       <PARAM name="(RET)" type="Boolean">
617         This method returns a Boolean.
618       </PARAM>
619     </SYNTAX>
620     <NOTE>
621       This function always returns FALSE currently.
622     </NOTE>
623   </ENTRY>
624
625   <!-- NodeList Object -->
626
627   <ENTRY id="NodeList.length">
628     <TYPE value="NodeList"/>
629     <SYNTAX>
630       length
631       <PARAM name="(PROP)" type="Number">
632         This read-only property is of type Number.
633       </PARAM>
634     </SYNTAX>
635   </ENTRY>
636
637   <ENTRY id="NodeList.item()">
638     <TYPE value="NodeList"/>
639     <SYNTAX>
640       item(index)
641       <PARAM name="index" type="Number">
642         The index parameter is of type Number.
643       </PARAM>
644       <PARAM name="(RET)" type="Node">
645         This method returns a Node object.
646       </PARAM>
647     </SYNTAX>
648     <NOTE>
649       This object can also be dereferenced using square bracket notation 
650       (e.g. obj[1]). Dereferencing with an integer index is equivalent to 
651       invoking the item method with that index.
652     </NOTE>
653     <NOTE>
654       The very first item has index 0.
655     </NOTE>
656   </ENTRY>
657
658   <!-- NamedNodeMap Object -->
659
660   <ENTRY id="NamedNodeMap.length">
661     <TYPE value="NamedNodeMap"/>
662     <SYNTAX>
663       length
664       <PARAM name="(PROP)" type="Number">
665         This read-only property is of type Number.
666       </PARAM>
667     </SYNTAX>
668   </ENTRY>
669
670   <ENTRY id="NamedNodeMap.item()">
671     <TYPE value="NamedNodeMap"/>
672     <SYNTAX>
673       item(index)
674       <PARAM name="index" type="Number">
675         The index parameter is of type Number.
676       </PARAM>
677       <PARAM name="(RET)" type="Node">
678         This method returns a Node object.
679       </PARAM>
680     </SYNTAX>
681     <NOTE>
682       The very first item has index 0.
683     </NOTE>
684   </ENTRY>
685
686   <ENTRY id="NamedNodeMap.getNamedItem()">
687     <TYPE value="NamedNodeMap"/>
688     <SYNTAX>
689       getNamedItem(name)
690       <PARAM name="name" type="String">
691         The name parameter is of type String.
692       </PARAM>
693       <PARAM name="(RET)" type="Node">
694         This method returns a Node object.
695       </PARAM>
696     </SYNTAX>
697   </ENTRY>
698
699   <!-- CharacterData Object -->
700
701   <ENTRY id="CharacterData.data">
702     <TYPE value="CharacterData"/>
703     <SYNTAX>
704       data
705       <PARAM name="(PROP)" type="String">
706         This property is of type String.
707       </PARAM>
708     </SYNTAX>
709     <NOTE>
710       This property can raise a <C>DOMException</C> object on setting and can 
711       raise a <C>DOMException</C> object on retrieval.length
712     </NOTE>
713   </ENTRY>
714
715   <ENTRY id="CharacterData.length">
716     <TYPE value="CharacterData"/>
717     <SYNTAX>
718       length
719       <PARAM name="(PROP)" type="Number">
720         This read-only property is of type Number.
721       </PARAM>
722     </SYNTAX>
723   </ENTRY>
724
725   <ENTRY id="CharacterData.substringData()">
726     <TYPE value="CharacterData"/>
727     <SYNTAX>
728       substringData(offset, count)
729       <PARAM name="offset" type="Number">
730         The offset parameter is of type Number.
731       </PARAM>
732       <PARAM name="count" type="Number">
733         The count parameter is of type Number.
734       </PARAM>
735       <PARAM name="(RET)" type="Node">
736         This method returns a String.
737       </PARAM>
738     </SYNTAX>
739     <NOTE>
740       This method can raise a <C>DOMException</C> object.
741     </NOTE>
742     <NOTE>
743       The very first item has index 0.
744     </NOTE>
745   </ENTRY>
746
747   <!-- Attr Object -->
748
749   <ENTRY id="Attr.name">
750     <TYPE value="Attr"/>
751     <SYNTAX>
752       name
753       <PARAM name="(PROP)" type="String">
754         This read-only property is of type String.
755       </PARAM>
756     </SYNTAX>
757   </ENTRY>
758
759   <ENTRY id="Attr.specified">
760     <TYPE value="Attr"/>
761     <SYNTAX>
762       specified
763       <PARAM name="(PROP)" type="Boolean">
764         This read-only property is of type Boolean.
765       </PARAM>
766     </SYNTAX>
767   </ENTRY>
768
769   <ENTRY id="Attr.value">
770     <TYPE value="Attr"/>
771     <SYNTAX>
772       value
773       <PARAM name="(PROP)" type="String">
774         This property is of type String.
775       </PARAM>
776     </SYNTAX>
777     <NOTE>
778       This property can raise a <C>DOMException</C> object on setting.
779     </NOTE>
780   </ENTRY>
781
782   <ENTRY id="Attr.ownerElement">
783     <TYPE value="Attr"/>
784     <SYNTAX>
785       ownerElement
786       <PARAM name="(PROP)" type="Element">
787         This read-only property is a Element object.
788       </PARAM>
789     </SYNTAX>
790   </ENTRY>
791
792   <!-- Element Object -->
793
794   <ENTRY id="Element.tagName">
795     <TYPE value="Element"/>
796     <SYNTAX>
797       tagName
798       <PARAM name="(PROP)" type="String">
799         This read-only property is of type String.
800       </PARAM>
801     </SYNTAX>
802   </ENTRY>
803
804   <ENTRY id="Element.getAttribute()">
805     <TYPE value="Element"/>
806     <SYNTAX>
807       getAttribute(name)
808       <PARAM name="name" type="String">
809         The name parameter is of type String.
810       </PARAM>
811       <PARAM name="(RET)" type="String">
812         This method returns a String.
813       </PARAM>
814     </SYNTAX>
815   </ENTRY>
816
817   <ENTRY id="Element.getAttributeNode()">
818     <TYPE value="Element"/>
819     <SYNTAX>
820       getAttributeNode(name)
821       <PARAM name="name" type="String">
822         The name parameter is of type String.
823       </PARAM>
824       <PARAM name="(RET)" type="Attr">
825         This method returns a Attr object.
826       </PARAM>
827     </SYNTAX>
828   </ENTRY>
829
830   <ENTRY id="Element.hasAttribute()">
831     <TYPE value="Element"/>
832     <SYNTAX>
833       hasAttribute(name)
834       <PARAM name="name" type="String">
835         The name parameter is of type String.
836       </PARAM>
837       <PARAM name="(RET)" type="Boolean">
838         This method returns a Boolean.
839       </PARAM>
840     </SYNTAX>
841   </ENTRY>
842
843   <!-- XSLTContext Object -->
844
845   <ENTRY id="XSLTContext.contextNode">
846     <TYPE value="XSLTContext"/>
847     <SYNTAX>
848       contextNode
849       <PARAM name="(PROP)" type="Node">
850         Context node from XPath expression context.
851       </PARAM>
852     </SYNTAX>
853   </ENTRY>
854
855   <ENTRY id="XSLTContext.contextPosition">
856     <TYPE value="XSLTContext"/>
857     <SYNTAX>
858       contextPosition
859       <PARAM name="(PROP)" type="Number">
860         Context position from XPath expression context.
861       </PARAM>
862     </SYNTAX>
863   </ENTRY>
864
865   <ENTRY id="XSLTContext.contextSize">
866     <TYPE value="XSLTContext"/>
867     <SYNTAX>
868       contextSize
869       <PARAM name="(PROP)" type="Number">
870         Context size from XPath expression context.
871       </PARAM>
872     </SYNTAX>
873   </ENTRY>
874
875   <ENTRY id="XSLTContext.currentNode">
876     <TYPE value="XSLTContext"/>
877     <SYNTAX>
878       currentNode
879       <PARAM name="(PROP)" type="Node">
880         Current node from XSLT context.
881       </PARAM>
882     </SYNTAX>
883   </ENTRY>
884
885   <ENTRY id="XSLTContext.ownerDocument">
886     <TYPE value="XSLTContext"/>
887     <SYNTAX>
888       ownerDocument
889       <PARAM name="(PROP)" type="Document">
890         Document to be used for creating nodes.
891       </PARAM>
892     </SYNTAX>
893   </ENTRY>
894
895 </API>