8b4981ab820d44e8b86a732fb4a4c0e3308694ab
[platform/upstream/libxml2.git] / os400 / libxmlrpg / tree.rpgle
1       * Summary: interfaces for tree manipulation
2       * Description: this module describes the structures found in an tree
3       *              resulting from an XML or HTML parsing, as well as the API
4       *              provided for various processing on that tree
5       *
6       * Copy: See Copyright for the status of this software.
7       *
8       * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
9
10       /if not defined(XML_TREE_H__)
11       /define XML_TREE_H__
12
13       /include "libxmlrpg/xmlversion"
14       /include "libxmlrpg/xmlstring"
15
16
17       * Some of the basic types pointer to structures:
18
19       * xmlIO.h
20
21      d xmlParserInputBufferPtr...
22      d                 s               *   based(######typedef######)
23
24      d xmlOutputBufferPtr...
25      d                 s               *   based(######typedef######)
26
27       * parser.h
28
29      d xmlParserInputPtr...
30      d                 s               *   based(######typedef######)
31
32      d xmlParserCtxtPtr...
33      d                 s               *   based(######typedef######)
34
35      d xmlSAXLocatorPtr...
36      d                 s               *   based(######typedef######)
37
38      d xmlSAXHandlerPtr...
39      d                 s               *   based(######typedef######)
40
41       * entities.h
42
43      d xmlEntityPtr    s               *   based(######typedef######)
44
45
46       * BASE_BUFFER_SIZE:
47       *
48       * default buffer size 4000.
49
50      d BASE_BUFFER_SIZE...
51      d                 c                   4096
52
53       * LIBXML_NAMESPACE_DICT:
54       *
55       * Defines experimental behaviour:
56       * 1) xmlNs gets an additional field @context (a xmlDoc)
57       * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
58
59       /if defined(DO_NOT_COMPILE)
60       /define LIBXML_NAMESPACE_DICT
61       /endif
62
63       * xmlBufferAllocationScheme:
64       *
65       * A buffer allocation scheme can be defined to either match exactly the
66       * need or double it's allocated size each time it is found too small.
67
68      d xmlBufferAllocationScheme...
69      d                 s             10i 0 based(######typedef######)           enum
70      d  XML_BUFFER_ALLOC_DOUBLEIT...
71      d                 c                   0
72      d  XML_BUFFER_ALLOC_EXACT...
73      d                 c                   1
74      d  XML_BUFFER_ALLOC_IMMUTABLE...
75      d                 c                   2
76      d  XML_BUFFER_ALLOC_IO...
77      d                 c                   3
78      d  XML_BUFFER_ALLOC_HYBRID...
79      d                 c                   4
80
81       * xmlBuffer:
82       *
83       * A buffer structure, this old construct is limited to 2GB and
84       * is being deprecated, use API with xmlBuf instead
85
86      d xmlBufferPtr    s               *   based(######typedef######)
87
88      d xmlBuffer       ds                  based(xmlBufferPtr)
89      d                                     align qualified
90      d  content                        *                                        xmlChar *
91      d  use                          10u 0                                      The buffer size used
92      d  size                         10u 0                                      The buffer size
93      d  alloc                              like(xmlBufferAllocationScheme)      The realloc method
94      d  contentIO                      *                                        xmlChar *
95
96       * xmlBufPtr:
97       *
98       * A pointer to a buffer structure, the actual structure internals are not
99       * public
100
101      d xmlBufPtr       s               *   based(######typedef######)
102
103       * A few public routines for xmlBuf. As those are expected to be used
104       * mostly internally the bulk of the routines are internal in buf.h
105
106      d xmlBufContent   pr              *   extproc('xmlBufContent')             xmlChar *
107      d  buf                                value like(xmlBufPtr)                const
108
109      d xmlBufEnd       pr              *   extproc('xmlBufEnd')                 xmlChar *
110      d  buf                                value like(xmlBufPtr)                const
111
112      d xmlBufUse       pr            10u 0 extproc('xmlBufUse')                 size_t
113      d  buf                                value like(xmlBufPtr)                const
114
115      d xmlBufShrink    pr            10u 0 extproc('xmlBufShrink')              size_t
116      d  buf                                value like(xmlBufPtr)
117      d  len                          10u 0 value                                size_t
118
119       * LIBXML2_NEW_BUFFER:
120       *
121       * Macro used to express that the API use the new buffers for
122       * xmlParserInputBuffer and xmlOutputBuffer. The change was
123       * introduced in 2.9.0.
124
125       /define LIBXML2_NEW_BUFFER
126
127       * XML_XML_NAMESPACE:
128       *
129       * This is the namespace for the special xml: prefix predefined in the
130       * XML Namespace specification.
131
132      d XML_XML_NAMESPACE...
133      d                 c                   'http://www.w3.org/XML/1998/+
134      d                                      namespace'
135
136       * XML_XML_ID:
137       *
138       * This is the name for the special xml:id attribute
139
140      d XML_XML_ID      c                   'xml:id'
141
142       * The different element types carried by an XML tree.
143       *
144       * NOTE: This is synchronized with DOM Level1 values
145       *       See http://www.w3.org/TR/REC-DOM-Level-1/
146       *
147       * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
148       * be deprecated to use an XML_DTD_NODE.
149
150      d xmlElementType  s             10i 0 based(######typedef######)           enum
151      d  XML_ELEMENT_NODE...
152      d                 c                   1
153      d  XML_ATTRIBUTE_NODE...
154      d                 c                   2
155      d  XML_TEXT_NODE  c                   3
156      d  XML_CDATA_SECTION_NODE...
157      d                 c                   4
158      d  XML_ENTITY_REF_NODE...
159      d                 c                   5
160      d  XML_ENTITY_NODE...
161      d                 c                   6
162      d  XML_PI_NODE    c                   7
163      d  XML_COMMENT_NODE...
164      d                 c                   8
165      d  XML_DOCUMENT_NODE...
166      d                 c                   9
167      d  XML_DOCUMENT_TYPE_NODE...
168      d                 c                   10
169      d  XML_DOCUMENT_FRAG_NODE...
170      d                 c                   11
171      d  XML_NOTATION_NODE...
172      d                 c                   12
173      d  XML_HTML_DOCUMENT_NODE...
174      d                 c                   13
175      d  XML_DTD_NODE   c                   14
176      d  XML_ELEMENT_DECL...
177      d                 c                   15
178      d  XML_ATTRIBUTE_DECL...
179      d                 c                   16
180      d  XML_ENTITY_DECL...
181      d                 c                   17
182      d  XML_NAMESPACE_DECL...
183      d                 c                   18
184      d  XML_LOCAL_NAMESPACE...
185      d                 c                   18                                   Alias
186      d  XML_XINCLUDE_START...
187      d                 c                   19
188      d  XML_XINCLUDE_END...
189      d                 c                   20
190       /if defined(LIBXML_DOCB_ENABLED)
191      d  XML_DOCB_DOCUMENT_NODE...
192      d                 c                   21
193       /endif
194
195       * xmlNotation:
196       *
197       * A DTD Notation definition.
198
199      d xmlNotationPtr  s               *   based(######typedef######)
200
201      d xmlNotation     ds                  based(xmlNotationPtr)
202      d                                     align qualified
203      d  name                           *                                        const xmlChar *
204      d  PublicID                       *                                        const xmlChar *
205      d  SystemID                       *                                        const xmlChar *
206
207       * xmlAttributeType:
208       *
209       * A DTD Attribute type definition.
210
211      d xmlAttributeType...
212      d                 s             10i 0 based(######typedef######)           enum
213      d  XML_ATTRIBUTE_CDATA...
214      d                 c                   1
215      d  XML_ATTRIBUTE_ID...
216      d                 c                   2
217      d  XML_ATTRIBUTE_IDREF...
218      d                 c                   3
219      d  XML_ATTRIBUTE_IDREFS...
220      d                 c                   4
221      d  XML_ATTRIBUTE_ENTITY...
222      d                 c                   5
223      d  XML_ATTRIBUTE_ENTITIES...
224      d                 c                   6
225      d  XML_ATTRIBUTE_NMTOKEN...
226      d                 c                   7
227      d  XML_ATTRIBUTE_NMTOKENS...
228      d                 c                   8
229      d  XML_ATTRIBUTE_ENUMERATION...
230      d                 c                   9
231      d  XML_ATTRIBUTE_NOTATION...
232      d                 c                   10
233
234       * xmlAttributeDefault:
235       *
236       * A DTD Attribute default definition.
237
238      d xmlAttributeDefault...
239      d                 s             10i 0 based(######typedef######)           enum
240      d  XML_ATTRIBUTE_NONE...
241      d                 c                   1
242      d  XML_ATTRIBUTE_REQUIRED...
243      d                 c                   2
244      d  XML_ATTRIBUTE_IMPLIED...
245      d                 c                   3
246      d  XML_ATTRIBUTE_FIXED...
247      d                 c                   4
248
249       * xmlEnumeration:
250       *
251       * List structure used when there is an enumeration in DTDs.
252
253      d xmlEnumerationPtr...
254      d                 s               *   based(######typedef######)
255
256      d xmlEnumeration  ds                  based(xmlEnumerationPtr)
257      d                                     align qualified
258      d  next                               like(xmlEnumerationPtr)              Next one
259      d  name                           *                                        const xmlChar *
260
261       * Forward pointer declarations.
262
263      d xmlNodePtr      s               *   based(######typedef######)
264      d xmlDocPtr       s               *   based(######typedef######)
265      d xmlDtdPtr       s               *   based(######typedef######)
266
267       * xmlAttribute:
268       *
269       * An Attribute declaration in a DTD.
270
271      d xmlAttributePtr...
272      d                 s               *   based(######typedef######)
273
274      d xmlAttribute    ds                  based(xmlAttributePtr)
275      d                                     align qualified
276      d  #private                       *                                        Application data
277      d  type                               like(xmlElementType)                 XML_ATTRIBUTE_DECL
278      d  name                           *                                        const xmlChar *
279      d  children                           like(xmlNodePtr)                     NULL
280      d  last                               like(xmlNodePtr)                     NULL
281      d  parent                             like(xmlDtdPtr)                      -> DTD
282      d  next                               like(xmlNodePtr)                     next sibling link
283      d  prev                               like(xmlNodePtr)                     previous sibling lnk
284      d  doc                                like(xmlDocPtr)                      The containing doc
285      d  nexth                              like(xmlAttributePtr)                Next in hash table
286      d  atype                              like(xmlAttributeType)               The attribute type
287      d  def                                like(xmlAttributeDefault)            The default
288      d  defaultValue                   *                                        or const xmlChar *
289      d  tree                               like(xmlEnumerationPtr)              or enum tree
290      d  prefix                         *                                        const xmlChar *
291      d  elem                           *                                        const xmlChar *
292
293       * xmlElementContentType:
294       *
295       * Possible definitions of element content types.
296
297      d xmlElementContentType...
298      d                 s             10i 0 based(######typedef######)           enum
299      d  XML_ELEMENT_CONTENT_PCDATA...
300      d                 c                   1
301      d  XML_ELEMENT_CONTENT_ELEMENT...
302      d                 c                   2
303      d  XML_ELEMENT_CONTENT_SEQ...
304      d                 c                   3
305      d  XML_ELEMENT_CONTENT_OR...
306      d                 c                   4
307
308       * xmlElementContentOccur:
309       *
310       * Possible definitions of element content occurrences.
311
312      d xmlElementContentOccur...
313      d                 s             10i 0 based(######typedef######)           enum
314      d  XML_ELEMENT_CONTENT_ONCE...
315      d                 c                   1
316      d  XML_ELEMENT_CONTENT_OPT...
317      d                 c                   2
318      d  XML_ELEMENT_CONTENT_MULT...
319      d                 c                   3
320      d  XML_ELEMENT_CONTENT_PLUS...
321      d                 c                   4
322
323       * xmlElementContent:
324       *
325       * An XML Element content as stored after parsing an element definition
326       * in a DTD.
327
328      d xmlElementContentPtr...
329      d                 s               *   based(######typedef######)
330
331      d xmlElementContent...
332      d                 ds                  based(xmlElementContentPtr)
333      d                                     align qualified
334      d  type                               like(xmlElementContentType)
335      d  ocur                               like(xmlElementContentOccur)
336      d  name                           *                                        const xmlChar *
337      d  c1                                 like(xmlElementContentPtr)           First child
338      d  c2                                 like(xmlElementContentPtr)           Second child
339      d  parent                             like(xmlElementContentPtr)           Parent
340      d  prefix                         *                                        const xmlChar *
341
342       * xmlElementTypeVal:
343       *
344       * The different possibilities for an element content type.
345
346      d xmlElementTypeVal...
347      d                 s             10i 0 based(######typedef######)           enum
348      d  XML_ELEMENT_TYPE_UNDEFINED...
349      d                 c                   0
350      d  XML_ELEMENT_TYPE_EMPTY...
351      d                 c                   1
352      d  XML_ELEMENT_TYPE_ANY...
353      d                 c                   2
354      d  XML_ELEMENT_TYPE_MIXED...
355      d                 c                   3
356      d  XML_ELEMENT_TYPE_ELEMENT...
357      d                 c                   4
358
359       /include "libxmlrpg/xmlregexp"
360
361       * xmlElement:
362       *
363       * An XML Element declaration from a DTD.
364
365      d xmlElementPtr   s               *   based(######typedef######)
366
367      d xmlElement      ds                  based(xmlElementPtr)
368      d                                     align qualified
369      d  #private                       *                                        Application data
370      d  type                               like(xmlElementType)                 XML_ELEMENT_DECL
371      d  name                           *                                        const xmlChar *
372      d  children                           like(xmlNodePtr)                     NULL
373      d  last                               like(xmlNodePtr)                     NULL
374      d  parent                             like(xmlDtdPtr)                      -> DTD
375      d  next                               like(xmlNodePtr)                     next sibling link
376      d  prev                               like(xmlNodePtr)                     previous sibling lnk
377      d  doc                                like(xmlDocPtr)                      The containing doc
378      d  etype                              like(xmlElementTypeVal)              The type
379      d  content                            like(xmlElementContentPtr)           Allowed elem content
380      d  attributes                         like(xmlAttributePtr)                Declared attributes
381      d  prefix                         *                                        const xmlChar *
382       /if defined(LIBXML_REGEXP_ENABLED)
383      d  contModel                          like(xmlRegexpPtr)                   Validating regexp
384       /else
385      d  contModel                      *
386       /endif
387
388       * XML_LOCAL_NAMESPACE:
389       *
390       * A namespace declaration node.
391
392       * xmlNs:
393       *
394       * An XML namespace.
395       * Note that prefix == NULL is valid, it defines the default namespace
396       * within the subtree (until overridden).
397       *
398       * xmlNsType is unified with xmlElementType.
399
400      d xmlNsType       s                   based(######typedef######)           enum
401      d                                     like(xmlElementType)
402
403      d xmlNsPtr        s               *   based(######typedef######)
404
405      d xmlNs           ds                  based(xmlNsPtr)
406      d                                     align qualified
407      d  next                               like(xmlNsPtr)                       next Ns link
408      d  type                               like(xmlNsType)                      Global or local
409      d  href                           *                                        const xmlChar *
410      d  prefix                         *                                        const xmlChar *
411      d  #private                       *                                        Application data
412      d  context                            like(xmlDocPtr)                      normally an xmlDoc
413
414       * xmlDtd:
415       *
416       * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
417       * the internal subset and for the external subset.
418
419      d xmlDtd          ds                  based(xmlDtdPtr)
420      d                                     align qualified
421      d  #private                       *                                        Application data
422      d  type                               like(xmlElementType)                 XML_DTD_NODE
423      d  name                           *                                        const xmlChar *
424      d  children                           like(xmlNodePtr)                     Property link value
425      d  last                               like(xmlNodePtr)                     Last child link
426      d  parent                             like(xmlDocPtr)                      Child->parent link
427      d  next                               like(xmlNodePtr)                     next sibling link
428      d  prev                               like(xmlNodePtr)                     previous sibling lnk
429      d  doc                                like(xmlDocPtr)                      The containing doc
430      d  notations                      *                                        notations hash table
431      d  elements                       *                                        elements hash table
432      d  entities                       *                                        entities hash table
433      d  ExternalID                     *                                        const xmlChar *
434      d  SystemID                       *                                        const xmlChar *
435      d  pentities                      *                                        param. ent. h table
436
437       * xmlAttr:
438       *
439       * An attribute on an XML node.
440
441      d xmlAttrPtr      s               *   based(######typedef######)
442
443      d xmlAttr         ds                  based(xmlAttrPtr)
444      d                                     align qualified
445      d  #private                       *                                        Application data
446      d  type                               like(xmlElementType)                 XML_ATTRIBUTE_NODE
447      d  name                           *                                        const xmlChar *
448      d  children                           like(xmlNodePtr)                     Property link value
449      d  last                               like(xmlNodePtr)                     NULL
450      d  parent                             like(xmlNodePtr)                     Child->parent link
451      d  next                               like(xmlAttrPtr)                     next sibling link
452      d  prev                               like(xmlAttrPtr)                     previous sibling lnk
453      d  doc                                like(xmlDocPtr)                      The containing doc
454      d  ns                                 like(xmlNsPtr)                       Associated namespace
455      d  atype                              like(xmlAttributeType)               For validation
456      d  psvi                           *                                        Type/PSVI info
457
458       * xmlID:
459       *
460       * An XML ID instance.
461
462      d xmlIdPtr        s               *   based(######typedef######)
463
464      d xmlID           ds                  based(xmlIdPtr)
465      d                                     align qualified
466      d  next                               like(xmlIdPtr)                       Next ID
467      d  attr                               like(xmlAttrPtr)                     Attribute holding it
468      d  name                           *                                        const xmlChar *
469      d  lineno                       10i 0                                      Line # if not avail
470      d  doc                                like(xmlDocPtr)                      Doc holding ID
471
472       * xmlRef:
473       *
474       * An XML IDREF instance.
475
476      d xmlRefPtr       s               *   based(######typedef######)
477
478      d xmlRef          ds                  based(xmlRefPtr)
479      d                                     align qualified
480      d  next                               like(xmlRefPtr)                      Next Ref
481      d  value                          *                                        const xmlChar *
482      d  attr                               like(xmlAttrPtr)                     Attribute holding it
483      d  name                           *                                        const xmlChar *
484      d  lineno                       10i 0                                      Line # if not avail
485
486       * xmlNode:
487       *
488       * A node in an XML tree.
489
490      d xmlNode         ds                  based(xmlNodePtr)
491      d                                     align qualified
492      d  #private                       *                                        Application data
493      d  type                               like(xmlElementType)
494      d  name                           *                                        const xmlChar *
495      d  children                           like(xmlNodePtr)                     Parent->children lnk
496      d  last                               like(xmlNodePtr)                     Last child link
497      d  parent                             like(xmlNodePtr)                     Child->parent link
498      d  next                               like(xmlNodePtr)                     next sibling link
499      d  prev                               like(xmlNodePtr)                     previous sibling lnk
500      d  doc                                like(xmlDocPtr)                      The containing doc
501      d  ns                                 like(xmlNsPtr)                       Associated namespace
502      d  content                        *                                        xmlChar *
503      d  properties                         like(xmlAttrPtr)                     Properties list
504      d  nsDef                              like(xmlNsPtr)                       Node ns definitions
505      d  psvi                           *                                        Type/PSVI info
506      d  line                          5u 0                                      Line number
507      d  extra                         5u 0                                      Data for XPath/XSLT
508
509       * xmlDocProperty
510       *
511       * Set of properties of the document as found by the parser
512       * Some of them are linked to similary named xmlParserOption
513
514      d xmlDocProperties...
515      d                 s             10i 0 based(######typedef######)           enum
516      d  XML_DOC_WELLFORMED...
517      d                 c                   X'00000001'
518      d  XML_DOC_NSVALID...
519      d                 c                   X'00000002'
520      d  XML_DOC_OLD10  c                   X'00000004'
521      d  XML_DOC_DTDVALID...
522      d                 c                   X'00000008'
523      d  XML_DOC_XINCLUDE...
524      d                 c                   X'00000010'
525      d  XML_DOC_USERBUILT...
526      d                 c                   X'00000020'
527      d  XML_DOC_INTERNAL...
528      d                 c                   X'00000030'
529      d  XML_DOC_HTML   c                   X'00000080'
530
531       * xmlDoc:
532       *
533       * An XML document.
534
535      d xmlDoc          ds                  based(xmlDocPtr)
536      d                                     align qualified
537      d  #private                       *                                        Application data
538      d  type                               like(xmlElementType)                 XML_DOCUMENT_NODE
539      d  name                           *                                        const xmlChar *
540      d  children                           like(xmlNodePtr)                     The document tree
541      d  last                               like(xmlNodePtr)                     Last child link
542      d  parent                             like(xmlNodePtr)                     Child->parent link
543      d  next                               like(xmlNodePtr)                     next sibling link
544      d  prev                               like(xmlNodePtr)                     previous sibling lnk
545      d  doc                                like(xmlDocPtr)                      Reference to itself
546      d  compression                  10i 0                                      zlib compression lev
547      d  standalone                   10i 0
548      d  intSubset                          like(xmlDtdPtr)                      Internal subset
549      d  extSubset                          like(xmlDtdPtr)                      External subset
550      d  oldns                              like(xmlNsPtr)                       Global namespace
551      d  version                        *                                        const xmlChar *
552      d  encoding                       *                                        const xmlChar *
553      d  ids                            *                                        IDs hash table
554      d  refs                           *                                        IDREFs hash table
555      d  URL                            *                                        const xmlChar *
556      d  charset                      10i 0                                      In-memory encoding
557      d  dict                           *                                        xmlDictPtr for names
558      d  psvi                           *                                        Type/PSVI ino
559      d  parseFlags                   10i 0                                      xmlParserOption's
560      d  properties                   10i 0                                      xmlDocProperties
561
562       * xmlDOMWrapAcquireNsFunction:
563       * @ctxt:  a DOM wrapper context
564       * @node:  the context node (element or attribute)
565       * @nsName:  the requested namespace name
566       * @nsPrefix:  the requested namespace prefix
567       *
568       * A function called to acquire namespaces (xmlNs) from the wrapper.
569       *
570       * Returns an xmlNsPtr or NULL in case of an error.
571
572      d xmlDOMWrapAcquireNsFunction...
573      d                 s               *   based(######typedef######)
574      d                                     procptr
575
576       * xmlDOMWrapCtxt:
577       *
578       * Context for DOM wrapper-operations.
579
580      d xmlDOMWrapCtxtPtr...
581      d                 s               *   based(######typedef######)
582
583      d xmlDOMWrapCtxt...
584      d                 ds                  based(xmlDOMWrapCtxtPtr)
585      d                                     align qualified
586      d  #private                       *                                        void *
587      d  type                         10i 0
588      d  namespaceMap                   *                                        void *
589      d  getNsForNodeFunc...
590      d                                     like(xmlDOMWrapAcquireNsFunction)
591
592
593       * Variables.
594
595       * Some helper functions
596
597       /undefine XML_TESTVAL
598       /if defined(LIBXML_TREE_ENABLED)
599       /define XML_TESTVAL
600       /elseif defined(LIBXML_XPATH_ENABLED)
601       /define XML_TESTVAL
602       /elseif defined(LIBXML_SCHEMAS_ENABLED)
603       /define XML_TESTVAL
604       /elseif defined(LIBXML_DEBUG_ENABLED)
605       /define XML_TESTVAL
606       /elseif defined(LIBXML_HTML_ENABLED)
607       /define XML_TESTVAL
608       /elseif defined(LIBXML_SAX1_ENABLED)
609       /define XML_TESTVAL
610       /elseif defined(LIBXML_HTML_ENABLED)
611       /define XML_TESTVAL
612       /elseif defined(LIBXML_WRITER_ENABLED)
613       /define XML_TESTVAL
614       /elseif defined(LIBXML_DOCB_ENABLED)
615       /define XML_TESTVAL
616       /endif
617       /if defined(XML_TESTVAL)
618      d xmlValidateNCName...
619      d                 pr            10i 0 extproc('xmlValidateNCName')
620      d  value                          *   value options(*string)               const xmlChar *
621      d  space                        10i 0 value
622
623       /undefine XML_TESTVAL
624       /endif
625
626       /if defined(LIBXML_TREE_ENABLED)
627       /define XML_TESTVAL
628       /elseif defined(LIBXML_SCHEMAS_ENABLED)
629       /define XML_TESTVAL
630       /endif
631       /if defined(XML_TESTVAL)
632      d xmlValidateQName...
633      d                 pr            10i 0 extproc('xmlValidateQName')
634      d  value                          *   value options(*string)               const xmlChar *
635      d  space                        10i 0 value
636
637      d xmlValidateName...
638      d                 pr            10i 0 extproc('xmlValidateName')
639      d  value                          *   value options(*string)               const xmlChar *
640      d  space                        10i 0 value
641
642      d xmlValidateNMToken...
643      d                 pr            10i 0 extproc('xmlValidateNMToken')
644      d  value                          *   value options(*string)               const xmlChar *
645      d  space                        10i 0 value
646
647       /undefine XML_TESTVAL
648       /endif
649
650      d xmlBuildQName   pr              *   extproc('xmlBuildQName')             xmlChar *
651      d  ncname                         *   value options(*string)               const xmlChar *
652      d  prefix                         *   value options(*string)               const xmlChar *
653      d  memory                    65535    options(*varsize: *omit)             xmlChar[]
654      d  len                          10i 0 value                                memory length
655
656      d xmlSplitQName2  pr              *   extproc('xmlSplitQName2')            xmlChar *
657      d  name                           *   value options(*string)               const xmlChar *
658      d  prefix                         *                                        xmlChar *
659
660      d xmlSplitQName3  pr              *   extproc('xmlSplitQName3')            const xmlChar *
661      d  name                           *   value options(*string)               const xmlChar *
662      d  len                          10i 0
663
664       * Handling Buffers, the old ones see @xmlBuf for the new ones.
665
666      d xmlSetBufferAllocationScheme...
667      d                 pr                  extproc(
668      d                                      'xmlSetBufferAllocationScheme')
669      d  scheme                             value
670      d                                     like(xmlBufferAllocationScheme)
671
672      d xmlGetBufferAllocationScheme...
673      d                 pr                  extproc(
674      d                                      'xmlGetBufferAllocationScheme')
675      d                                     like(xmlBufferAllocationScheme)
676
677      d xmlBufferCreate...
678      d                 pr                  extproc('xmlBufferCreate')
679      d                                     like(xmlBufferPtr)
680
681      d xmlBufferCreateSize...
682      d                 pr                  extproc('xmlBufferCreateSize')
683      d                                     like(xmlBufferPtr)
684      d  size                         10u 0 value                                size_t
685
686      d xmlBufferCreateStatic...
687      d                 pr                  extproc('xmlBufferCreateStatic')
688      d                                     like(xmlBufferPtr)
689      d  mem                            *   value
690      d  size                         10u 0 value                                size_t
691
692      d xmlBufferResize...
693      d                 pr            10i 0 extproc('xmlBufferResize')
694      d  buf                                value like(xmlBufferPtr)
695      d  size                         10u 0 value                                size_t
696
697      d xmlBufferFree   pr                  extproc('xmlBufferFree')
698      d  buf                                value like(xmlBufferPtr)
699
700      d xmlBufferDump   pr            10i 0 extproc('xmlBufferDump')
701      d  file                           *   value                                FILE *
702      d  buf                                value like(xmlBufferPtr)
703
704      d xmlBufferAdd    pr            10i 0 extproc('xmlBufferAdd')
705      d  buf                                value like(xmlBufferPtr)
706      d  str                            *   value options(*string)               const xmlChar *
707      d  len                          10i 0 value                                str length
708
709      d xmlBufferAddHead...
710      d                 pr            10i 0 extproc('xmlBufferAddHead')
711      d  buf                                value like(xmlBufferPtr)
712      d  str                            *   value options(*string)               const xmlChar *
713      d  len                          10i 0 value                                str length
714
715      d xmlBufferCat    pr            10i 0 extproc('xmlBufferCat')
716      d  buf                                value like(xmlBufferPtr)
717      d  str                            *   value options(*string)               const xmlChar *
718
719      d xmlBufferCCat   pr            10i 0 extproc('xmlBufferCCat')
720      d  buf                                value like(xmlBufferPtr)
721      d  str                            *   value options(*string)               const char *
722
723      d xmlBufferShrink...
724      d                 pr            10i 0 extproc('xmlBufferShrink')
725      d  buf                                value like(xmlBufferPtr)
726      d  len                          10u 0 value                                str length
727
728      d xmlBufferGrow   pr            10i 0 extproc('xmlBufferGrow')
729      d  buf                                value like(xmlBufferPtr)
730      d  len                          10u 0 value                                str length
731
732      d xmlBufferEmpty  pr                  extproc('xmlBufferEmpty')
733      d  buf                                value like(xmlBufferPtr)
734
735      d xmlBufferContent...
736      d                 pr              *   extproc('xmlBufferContent')          const xmlChar *
737      d  buf                                value like(xmlBufferPtr)
738
739      d xmlBufferDetach...
740      d                 pr              *   extproc('xmlBufferDetach')           xmlChar *
741      d  buf                                value like(xmlBufferPtr)
742
743      d xmlBufferSetAllocationScheme...
744      d                 pr                  extproc(
745      d                                      'xmlBufferSetAllocationScheme')
746      d  buf                                value like(xmlBufferPtr)
747      d  scheme                             value
748      d                                     like(xmlBufferAllocationScheme)
749
750      d xmlBufferLength...
751      d                 pr            10i 0 extproc('xmlBufferLength')
752      d  buf                                value like(xmlBufferPtr)
753
754       * Creating/freeing new structures.
755
756      d xmlCreateIntSubset...
757      d                 pr                  extproc('xmlCreateIntSubset')
758      d                                     like(xmlDtdPtr)
759      d  doc                                value like(xmlDocPtr)
760      d  name                           *   value options(*string)               const xmlChar *
761      d  ExternalID                     *   value options(*string)               const xmlChar *
762      d  SystemlID                      *   value options(*string)               const xmlChar *
763
764      d xmlNewDtd       pr                  extproc('xmlNewDtd')
765      d                                     like(xmlDtdPtr)
766      d  doc                                value like(xmlDocPtr)
767      d  name                           *   value options(*string)               const xmlChar *
768      d  ExternalID                     *   value options(*string)               const xmlChar *
769      d  SystemlID                      *   value options(*string)               const xmlChar *
770
771      d xmlGetIntSubset...
772      d                 pr                  extproc('xmlGetIntSubset')
773      d                                     like(xmlDtdPtr)
774      d  doc                                value like(xmlDocPtr)
775
776      d xmlFreeDtd      pr                  extproc('xmlFreeDtd')
777      d  cur                                value like(xmlDtdPtr)
778
779       /if defined(LIBXML_LEGACY_ENABLED)
780      d xmlNewGlobalNs  pr                  extproc('xmlNewGlobalNs')
781      d                                     like(xmlNsPtr)
782      d  doc                                value like(xmlDocPtr)
783      d  href                           *   value options(*string)               const xmlChar *
784      d  prefix                         *   value options(*string)               const xmlChar *
785       /endif                                                                    LIBXML_LEGACY_ENABLD
786
787      d xmlNewNs        pr                  extproc('xmlNewNs')
788      d                                     like(xmlNsPtr)
789      d  node                               value like(xmlNodePtr)
790      d  href                           *   value options(*string)               const xmlChar *
791      d  prefix                         *   value options(*string)               const xmlChar *
792
793      d xmlFreeNs       pr                  extproc('xmlFreeNs')
794      d  cur                                value like(xmlNsPtr)
795
796      d xmlFreeNsList   pr                  extproc('xmlFreeNsList')
797      d  cur                                value like(xmlNsPtr)
798
799      d xmlNewDoc       pr                  extproc('xmlNewDoc')
800      d                                     like(xmlDocPtr)
801      d  version                        *   value options(*string)               const xmlChar *
802
803      d xmlFreeDoc      pr                  extproc('xmlFreeDoc')
804      d  cur                                value like(xmlDocPtr)
805
806      d xmlNewDocProp   pr                  extproc('xmlNewDocProp')
807      d                                     like(xmlAttrPtr)
808      d  name                           *   value options(*string)               const xmlChar *
809      d  value                          *   value options(*string)               const xmlChar *
810
811       /if defined(LIBXML_TREE_ENABLED)
812       /define XML_TESTVAL
813       /elseif defined(LIBXML_HTML_ENABLED)
814       /define XML_TESTVAL
815       /elseif defined(LIBXML_SCHEMAS_ENABLED)
816       /define XML_TESTVAL
817       /endif
818       /if defined(XML_TESTVAL)
819      d xmlNewProp      pr                  extproc('xmlNewProp')
820      d                                     like(xmlAttrPtr)
821      d  node                               value like(xmlNodePtr)
822      d  name                           *   value options(*string)               const xmlChar *
823      d  value                          *   value options(*string)               const xmlChar *
824
825       /undefine XML_TESTVAL
826       /endif
827
828      d xmlNewNsProp    pr                  extproc('xmlNewNsProp')
829      d                                     like(xmlAttrPtr)
830      d  node                               value like(xmlNodePtr)
831      d  ns                                 value like(xmlNsPtr)
832      d  name                           *   value options(*string)               const xmlChar *
833      d  value                          *   value options(*string)               const xmlChar *
834
835      d xmlNewNsPropEatName...
836      d                 pr                  extproc('xmlNewNsPropEatName')
837      d                                     like(xmlAttrPtr)
838      d  node                               value like(xmlNodePtr)
839      d  ns                                 value like(xmlNsPtr)
840      d  name                           *   value                                xmlChar *
841      d  value                          *   value options(*string)               const xmlChar *
842
843      d xmlFreePropList...
844      d                 pr                  extproc('xmlFreePropList')
845      d  cur                                value like(xmlAttrPtr)
846
847      d xmlFreeProp     pr                  extproc('xmlFreeProp')
848      d  cur                                value like(xmlAttrPtr)
849
850      d xmlCopyProp     pr                  extproc('xmlCopyProp')
851      d                                     like(xmlAttrPtr)
852      d  target                             value like(xmlNodePtr)
853      d  cur                                value like(xmlAttrPtr)
854
855      d xmlCopyPropList...
856      d                 pr                  extproc('xmlCopyPropList')
857      d                                     like(xmlAttrPtr)
858      d  target                             value like(xmlNodePtr)
859      d  cur                                value like(xmlAttrPtr)
860
861       /if defined(LIBXML_TREE_ENABLED)
862      d xmlCopyDtd      pr                  extproc('xmlCopyDtd')
863      d                                     like(xmlDtdPtr)
864      d  dtd                                value like(xmlDtdPtr)
865       /endif                                                                    LIBXML_TREE_ENABLED
866
867       /if defined(LIBXML_TREE_ENABLED)
868       /define XML_TESTVAL
869       /elseif defined(LIBXML_SCHEMAS_ENABLED)
870       /define XML_TESTVAL
871       /endif
872       /if defined(XML_TESTVAL)
873      d xmlCopyDoc      pr                  extproc('xmlCopyDoc')
874      d                                     like(xmlDocPtr)
875      d  doc                                value like(xmlDocPtr)
876      d  recursive                    10i 0 value
877
878       /undefine XML_TESTVAL
879       /endif
880
881       * Creating new nodes.
882
883      d xmlNewDocNode   pr                  extproc('xmlNewDocNode')
884      d                                     like(xmlNodePtr)
885      d  doc                                value like(xmlDocPtr)
886      d  ns                                 value like(xmlNsPtr)
887      d  name                           *   value options(*string)               const xmlChar *
888      d  content                        *   value options(*string)               const xmlChar *
889
890      d xmlNewDocNodeEatName...
891      d                 pr                  extproc('xmlNewDocNodeEatName')
892      d                                     like(xmlNodePtr)
893      d  doc                                value like(xmlDocPtr)
894      d  ns                                 value like(xmlNsPtr)
895      d  name                           *   value                                xmlChar *
896      d  content                        *   value options(*string)               const xmlChar *
897
898      d xmlNewNode      pr                  extproc('xmlNewNode')
899      d                                     like(xmlNodePtr)
900      d  ns                                 value like(xmlNsPtr)
901      d  name                           *   value options(*string)               const xmlChar *
902
903      d xmlNewNodeEatName...
904      d                 pr                  extproc('xmlNewNodeEatName')
905      d                                     like(xmlNodePtr)
906      d  ns                                 value like(xmlNsPtr)
907      d  name                           *   value                                xmlChar *
908
909       /if defined(LIBXML_TREE_ENABLED)
910       /define XML_TESTVAL
911       /elseif defined(LIBXML_SCHEMAS_ENABLED)
912       /define XML_TESTVAL
913       /endif
914       /if defined(XML_TESTVAL)
915      d xmlNewChild     pr                  extproc('xmlNewChild')
916      d                                     like(xmlNodePtr)
917      d  parent                             value like(xmlNodePtr)
918      d  ns                                 value like(xmlNsPtr)
919      d  name                           *   value options(*string)               const xmlChar *
920      d  content                        *   value options(*string)               const xmlChar *
921
922       /undefine XML_TESTVAL
923       /endif
924
925      d xmlNewDocText   pr                  extproc('xmlNewDocText')
926      d                                     like(xmlNodePtr)
927      d  doc                                value like(xmlDocPtr)
928      d  content                        *   value options(*string)               const xmlChar *
929
930      d xmlNewText      pr                  extproc('xmlNewText')
931      d                                     like(xmlNodePtr)
932      d  content                        *   value options(*string)               const xmlChar *
933
934      d xmlNewDocPI     pr                  extproc('xmlNewDocPI')
935      d                                     like(xmlNodePtr)
936      d  doc                                value like(xmlDocPtr)
937      d  name                           *   value options(*string)               const xmlChar *
938      d  content                        *   value options(*string)               const xmlChar *
939
940      d xmlNewPI        pr                  extproc('xmlNewPI')
941      d                                     like(xmlNodePtr)
942      d  name                           *   value options(*string)               const xmlChar *
943      d  content                        *   value options(*string)               const xmlChar *
944
945      d xmlNewDocTextLen...
946      d                 pr                  extproc('xmlNewDocTextLen')
947      d                                     like(xmlNodePtr)
948      d  doc                                value like(xmlDocPtr)
949      d  content                        *   value options(*string)               const xmlChar *
950      d  len                          10i 0 value
951
952      d xmlNewTextLen   pr                  extproc('xmlNewTextLen')
953      d                                     like(xmlNodePtr)
954      d  content                        *   value options(*string)               const xmlChar *
955      d  len                          10i 0 value
956
957      d xmlNewDocComment...
958      d                 pr                  extproc('xmlNewDocComment')
959      d                                     like(xmlNodePtr)
960      d  doc                                value like(xmlDocPtr)
961      d  content                        *   value options(*string)               const xmlChar *
962
963      d xmlNewComment   pr                  extproc('xmlNewComment')
964      d                                     like(xmlNodePtr)
965      d  content                        *   value options(*string)               const xmlChar *
966
967      d xmlNewCDataBlock...
968      d                 pr                  extproc('xmlNewCDataBlock')
969      d                                     like(xmlNodePtr)
970      d  doc                                value like(xmlDocPtr)
971      d  content                        *   value options(*string)               const xmlChar *
972      d  len                          10i 0 value
973
974      d xmlNewCharRef   pr                  extproc('xmlNewCharRef')
975      d                                     like(xmlNodePtr)
976      d  doc                                value like(xmlDocPtr)
977      d  name                           *   value options(*string)               const xmlChar *
978
979      d xmlNewReference...
980      d                 pr                  extproc('xmlNewReference')
981      d                                     like(xmlNodePtr)
982      d  doc                                value like(xmlDocPtr)
983      d  name                           *   value options(*string)               const xmlChar *
984
985      d xmlCopyNode     pr                  extproc('xmlCopyNode')
986      d                                     like(xmlNodePtr)
987      d  node                               value like(xmlNodePtr)
988      d  recursive                    10i 0 value
989
990      d xmlDocCopyNode  pr                  extproc('xmlDocCopyNode')
991      d                                     like(xmlNodePtr)
992      d  node                               value like(xmlNodePtr)
993      d  doc                                value like(xmlDocPtr)
994      d  recursive                    10i 0 value
995
996      d xmlDocCopyNodeList...
997      d                 pr                  extproc('xmlDocCopyNodeList')
998      d                                     like(xmlNodePtr)
999      d  doc                                value like(xmlDocPtr)
1000      d  node                               value like(xmlNodePtr)
1001
1002      d xmlCopyNodeList...
1003      d                 pr                  extproc('xmlCopyNodeList')
1004      d                                     like(xmlNodePtr)
1005      d  node                               value like(xmlNodePtr)
1006
1007       /if defined(LIBXML_TREE_ENABLED)
1008      d xmlNewTextChild...
1009      d                 pr                  extproc('xmlNewTextChild')
1010      d                                     like(xmlNodePtr)
1011      d  parent                             value like(xmlNodePtr)
1012      d  ns                                 value like(xmlNsPtr)
1013      d  name                           *   value options(*string)               const xmlChar *
1014      d  content                        *   value options(*string)               const xmlChar *
1015
1016      d xmlNewDocRawNode...
1017      d                 pr                  extproc('xmlNewDocRawNode')
1018      d                                     like(xmlNodePtr)
1019      d  doc                                value like(xmlDocPtr)
1020      d  ns                                 value like(xmlNsPtr)
1021      d  name                           *   value options(*string)               const xmlChar *
1022      d  content                        *   value options(*string)               const xmlChar *
1023
1024      d xmlNewDocFragment...
1025      d                 pr                  extproc('xmlNewDocFragment')
1026      d                                     like(xmlNodePtr)
1027      d  doc                                value like(xmlDocPtr)
1028       /endif                                                                    LIBXML_TREE_ENABLED
1029
1030       * Navigating.
1031
1032      d xmlNewDocFragment...
1033      d xmlGetLineNo    pr            20i 0 extproc('xmlGetLineNo')
1034      d  node                               value like(xmlNodePtr)
1035
1036       /if defined(LIBXML_TREE_ENABLED)
1037       /define XML_TESTVAL
1038       /elseif defined(LIBXML_DEBUG_ENABLED)
1039       /define XML_TESTVAL
1040       /endif
1041       /if defined(XML_TESTVAL)
1042      d xmlGetNodePath  pr              *   extproc('xmlGetNodePath')            xmlChar *
1043      d  node                               value like(xmlNodePtr)
1044
1045       /undefine XML_TESTVAL
1046       /endif
1047
1048      d xmlDocGetRootElement...
1049      d                 pr                  extproc('xmlDocGetRootElement')
1050      d                                     like(xmlNodePtr)
1051      d  doc                                value like(xmlDocPtr)
1052
1053      d xmlGetLastChild...
1054      d                 pr                  extproc('xmlGetLastChild')
1055      d                                     like(xmlNodePtr)
1056      d  parent                             value like(xmlNodePtr)
1057
1058      d xmlNodeIsText   pr            10i 0 extproc('xmlNodeIsText')
1059      d  node                               value like(xmlNodePtr)
1060
1061      d xmlIsBlankNode  pr            10i 0 extproc('xmlIsBlankNode')
1062      d  node                               value like(xmlNodePtr)
1063
1064       * Changing the structure.
1065
1066       /if defined(LIBXML_TREE_ENABLED)
1067       /define XML_TESTVAL
1068       /elseif defined(LIBXML_WRITER_ENABLED)
1069       /define XML_TESTVAL
1070       /endif
1071       /if defined(XML_TESTVAL)
1072      d xmlDocSetRootElement...
1073      d                 pr                  extproc('xmlDocSetRootElement')
1074      d                                     like(xmlNodePtr)
1075      d  doc                                value like(xmlDocPtr)
1076      d  root                               value like(xmlNodePtr)
1077
1078       /undefine XML_TESTVAL
1079       /endif
1080
1081       /if defined(LIBXML_TREE_ENABLED)
1082      d xmlNodeSetName  pr                  extproc('xmlNodeSetName')
1083      d  node                               value like(xmlNodePtr)
1084      d  name                           *   value options(*string)               const xmlChar *
1085       /endif                                                                    LIBXML_TREE_ENABLED
1086
1087      d xmlAddChild     pr                  extproc('xmlAddChild')
1088      d                                     like(xmlNodePtr)
1089      d  parent                             value like(xmlNodePtr)
1090      d  cur                                value like(xmlNodePtr)
1091
1092      d xmlAddChildList...
1093      d                 pr                  extproc('xmlAddChildList')
1094      d                                     like(xmlNodePtr)
1095      d  parent                             value like(xmlNodePtr)
1096      d  cur                                value like(xmlNodePtr)
1097
1098       /if defined(LIBXML_TREE_ENABLED)
1099       /define XML_TESTVAL
1100       /elseif defined(LIBXML_WRITER_ENABLED)
1101       /define XML_TESTVAL
1102       /endif
1103       /if defined(XML_TESTVAL)
1104      d xmlReplaceNode  pr                  extproc('xmlReplaceNode')
1105      d                                     like(xmlNodePtr)
1106      d  old                                value like(xmlNodePtr)
1107      d  cur                                value like(xmlNodePtr)
1108
1109       /undefine XML_TESTVAL
1110       /endif
1111
1112       /if defined(LIBXML_TREE_ENABLED)
1113       /define XML_TESTVAL
1114       /elseif defined(LIBXML_HTML_ENABLED)
1115       /define XML_TESTVAL
1116       /elseif defined(LIBXML_SCHEMAS_ENABLED)
1117       /define XML_TESTVAL
1118       /endif
1119       /if defined(XML_TESTVAL)
1120      d xmlAddPrevSibling...
1121      d                 pr                  extproc('xmlAddPrevSibling')
1122      d                                     like(xmlNodePtr)
1123      d  cur                                value like(xmlNodePtr)
1124      d  elem                               value like(xmlNodePtr)
1125
1126       /undefine XML_TESTVAL
1127       /endif
1128
1129      d xmlAddSibling   pr                  extproc('xmlAddSibling')
1130      d                                     like(xmlNodePtr)
1131      d  cur                                value like(xmlNodePtr)
1132      d  elem                               value like(xmlNodePtr)
1133
1134      d xmlAddNextSibling...
1135      d                 pr                  extproc('xmlAddNextSibling')
1136      d                                     like(xmlNodePtr)
1137      d  cur                                value like(xmlNodePtr)
1138      d  elem                               value like(xmlNodePtr)
1139
1140      d xmlUnlinkNode   pr                  extproc('xmlUnlinkNode')
1141      d  cur                                value like(xmlNodePtr)
1142
1143      d xmlTextMerge    pr                  extproc('xmlTextMerge')
1144      d                                     like(xmlNodePtr)
1145      d  first                              value like(xmlNodePtr)
1146      d  second                             value like(xmlNodePtr)
1147
1148      d xmlTextConcat   pr            10i 0 extproc('xmlTextConcat')
1149      d  node                               value like(xmlNodePtr)
1150      d  content                        *   value options(*string)               const xmlChar *
1151      d  len                          10i 0 value
1152
1153      d xmlFreeNodeList...
1154      d                 pr                  extproc('xmlFreeNodeList')
1155      d  cur                                value like(xmlNodePtr)
1156
1157      d xmlFreeNode     pr                  extproc('xmlFreeNode')
1158      d  cur                                value like(xmlNodePtr)
1159
1160      d xmlSetTreeDoc   pr                  extproc('xmlSetTreeDoc')
1161      d  tree                               value like(xmlNodePtr)
1162      d  doc                                value like(xmlDocPtr)
1163
1164      d xmlSetListDoc   pr                  extproc('xmlSetListDoc')
1165      d  list                               value like(xmlNodePtr)
1166      d  doc                                value like(xmlDocPtr)
1167
1168       * Namespaces.
1169
1170      d xmlSearchNs     pr                  extproc('xmlSearchNs')
1171      d                                     like(xmlNsPtr)
1172      d  doc                                value like(xmlDocPtr)
1173      d  node                               value like(xmlNodePtr)
1174      d  nameSpace                      *   value options(*string)               const xmlChar *
1175
1176      d xmlSearchNsByHref...
1177      d                 pr                  extproc('xmlSearchNsByHref')
1178      d                                     like(xmlNsPtr)
1179      d  doc                                value like(xmlDocPtr)
1180      d  node                               value like(xmlNodePtr)
1181      d  href                           *   value options(*string)               const xmlChar *
1182
1183       /if defined(LIBXML_TREE_ENABLED)
1184       /define XML_TESTVAL
1185       /elseif defined(LIBXML_XPATH_ENABLED)
1186       /define XML_TESTVAL
1187       /elseif defined(LIBXML_SCHEMAS_ENABLED)
1188       /define XML_TESTVAL
1189       /endif
1190       /if defined(XML_TESTVAL)
1191      d xmlGetNsList    pr              *   extproc('xmlGetNsList')              xmlNsPtr *
1192      d  doc                                value like(xmlDocPtr)
1193      d  node                               value like(xmlNodePtr)
1194
1195       /undefine XML_TESTVAL
1196       /endif
1197
1198      d xmlSetNs        pr                  extproc('xmlSetNs')
1199      d  node                               value like(xmlNodePtr)
1200      d  ns                                 value like(xmlNsPtr)
1201
1202      d xmlCopyNamespace...
1203      d                 pr                  extproc('xmlCopyNamespace')
1204      d                                     like(xmlNsPtr)
1205      d  cur                                value like(xmlNsPtr)
1206
1207      d xmlCopyNamespaceList...
1208      d                 pr                  extproc('xmlCopyNamespaceList')
1209      d                                     like(xmlNsPtr)
1210      d  cur                                value like(xmlNsPtr)
1211
1212       * Changing the content.
1213
1214       /if defined(LIBXML_TREE_ENABLED)
1215       /define XML_TESTVAL
1216       /elseif defined(LIBXML_XINCLUDE_ENABLED)
1217       /define XML_TESTVAL
1218       /elseif defined(LIBXML_SCHEMAS_ENABLED)
1219       /define XML_TESTVAL
1220       /elseif defined(LIBXML_HTML_ENABLED)
1221       /define XML_TESTVAL
1222       /endif
1223       /if defined(XML_TESTVAL)
1224      d xmlSetProp      pr                  extproc('xmlSetProp')
1225      d                                     like(xmlAttrPtr)
1226      d  node                               value like(xmlNodePtr)
1227      d  name                           *   value options(*string)               const xmlChar *
1228      d  value                          *   value options(*string)               const xmlChar *
1229
1230      d xmlSetNsProp    pr                  extproc('xmlSetNsProp')
1231      d                                     like(xmlAttrPtr)
1232      d  node                               value like(xmlNodePtr)
1233      d  ns                                 value like(xmlNsPtr)
1234      d  name                           *   value options(*string)               const xmlChar *
1235      d  value                          *   value options(*string)               const xmlChar *
1236
1237       /undefine XML_TESTVAL
1238       /endif
1239
1240      d xmlGetNoNsProp  pr              *   extproc('xmlGetNoNsProp')            xmlChar *
1241      d  node                               value like(xmlNodePtr)
1242      d  name                           *   value options(*string)               const xmlChar *
1243
1244      d xmlGetProp      pr              *   extproc('xmlGetProp')                xmlChar *
1245      d  node                               value like(xmlNodePtr)
1246      d  name                           *   value options(*string)               const xmlChar *
1247
1248      d xmlHasProp      pr                  extproc('xmlHasProp')
1249      d                                     like(xmlAttrPtr)
1250      d  node                               value like(xmlNodePtr)
1251      d  name                           *   value options(*string)               const xmlChar *
1252
1253      d xmlHasNsProp    pr                  extproc('xmlHasNsProp')
1254      d                                     like(xmlAttrPtr)
1255      d  node                               value like(xmlNodePtr)
1256      d  name                           *   value options(*string)               const xmlChar *
1257      d  nameSpace                      *   value options(*string)               const xmlChar *
1258
1259      d xmlGetNsProp    pr              *   extproc('xmlGetNsProp')              xmlChar *
1260      d  node                               value like(xmlNodePtr)
1261      d  name                           *   value options(*string)               const xmlChar *
1262      d  nameSpace                      *   value options(*string)               const xmlChar *
1263
1264      d xmlStringGetNodeList...
1265      d                 pr                  extproc('xmlStringGetNodeList')
1266      d                                     like(xmlNodePtr)
1267      d  doc                                value like(xmlDocPtr)
1268      d  value                          *   value options(*string)               const xmlChar *
1269
1270      d xmlStringLenGetNodeList...
1271      d                 pr                  extproc('xmlStringLenGetNodeList')
1272      d                                     like(xmlNodePtr)
1273      d  doc                                value like(xmlDocPtr)
1274      d  value                          *   value options(*string)               const xmlChar *
1275      d  len                          10i 0 value
1276
1277      d xmlNodeListGetString...
1278      d                 pr              *   extproc('xmlNodeListGetString')      xmlChar *
1279      d  doc                                value like(xmlDocPtr)
1280      d  list                               value like(xmlNodePtr)
1281      d  inLine                       10i 0 value
1282
1283       /if defined(LIBXML_TREE_ENABLED)
1284      d xmlNodeListGetRawString...
1285      d                 pr              *   extproc('xmlNodeListGetRawString')   xmlChar *
1286      d  doc                                value like(xmlDocPtr)
1287      d  list                               value like(xmlNodePtr)
1288      d  inLine                       10i 0 value
1289       /endif                                                                    LIBXML_TREE_ENABLED
1290
1291      d xmlNodeSetContent...
1292      d                 pr                  extproc('xmlNodeSetContent')
1293      d  cur                                value like(xmlNodePtr)
1294      d  content                        *   value options(*string)               const xmlChar *
1295
1296       /if defined(LIBXML_TREE_ENABLED)
1297      d xmlNodeSetContentLen...
1298      d                 pr                  extproc('xmlNodeSetContentLen')
1299      d  cur                                value like(xmlNodePtr)
1300      d  content                        *   value options(*string)               const xmlChar *
1301      d  len                          10i 0 value
1302       /endif                                                                    LIBXML_TREE_ENABLED
1303
1304      d xmlNodeAddContent...
1305      d                 pr                  extproc('xmlNodeAddContent')
1306      d  cur                                value like(xmlNodePtr)
1307      d  content                        *   value options(*string)               const xmlChar *
1308
1309      d xmlNodeAddContentLen...
1310      d                 pr                  extproc('xmlNodeAddContentLen')
1311      d  cur                                value like(xmlNodePtr)
1312      d  content                        *   value options(*string)               const xmlChar *
1313      d  len                          10i 0 value
1314
1315      d xmlNodeGetContent...
1316      d                 pr              *   extproc('xmlNodeGetContent')         xmlChar *
1317      d  cur                                value like(xmlNodePtr)
1318
1319      d xmlNodeBufGetContent...
1320      d                 pr            10i 0 extproc('xmlNodeBufGetContent')
1321      d  buffer                             value like(xmlBufferPtr)
1322      d  cur                                value like(xmlNodePtr)
1323
1324      d xmlBufGetNodeContent...
1325      d                 pr            10i 0 extproc('xmlBufGetNodeContent')
1326      d  buf                                value like(xmlBufPtr)
1327      d  cur                                value like(xmlNodePtr)
1328
1329      d xmlNodeGetLang  pr              *   extproc('xmlNodeGetLang')            xmlChar *
1330      d  cur                                value like(xmlNodePtr)
1331
1332      d xmlNodeGetSpacePreserve...
1333      d                 pr            10i 0 extproc('xmlNodeGetSpacePreserve')
1334      d  cur                                value like(xmlNodePtr)
1335
1336       /if defined(LIBXML_TREE_ENABLED)
1337      d xmlNodeSetLang  pr                  extproc('xmlNodeSetLang')
1338      d  cur                                value like(xmlNodePtr)
1339      d  lang                           *   value options(*string)               const xmlChar *
1340
1341      d xmlNodeSetSpacePreserve...
1342      d                 pr                  extproc('xmlNodeSetSpacePreserve')
1343      d  cur                                value like(xmlNodePtr)
1344      d  val                          10i 0 value
1345       /endif                                                                    LIBXML_TREE_ENABLED
1346
1347      d xmlNodeGetBase  pr              *   extproc('xmlNodeGetBase')            xmlChar *
1348      d  doc                                value like(xmlDocPtr)
1349      d  cur                                value like(xmlNodePtr)
1350
1351       /if defined(LIBXML_TREE_ENABLED)
1352       /define XML_TESTVAL
1353       /elseif defined(LIBXML_XINCLUDE_ENABLED)
1354       /define XML_TESTVAL
1355       /endif
1356       /if defined(XML_TESTVAL)
1357      d xmlNodeSetBase  pr                  extproc('xmlNodeSetBase')
1358      d  node                               value like(xmlNodePtr)
1359      d  uri                            *   value options(*string)               const xmlChar *
1360
1361       /undefine XML_TESTVAL
1362       /endif
1363
1364       * Removing content.
1365
1366      d xmlRemoveProp   pr            10i 0 extproc('xmlRemoveProp')
1367      d  cur                                value like(xmlAttrPtr)
1368
1369       /if defined(LIBXML_TREE_ENABLED)
1370       /define XML_TESTVAL
1371       /elseif defined(LIBXML_SCHEMAS_ENABLED)
1372       /define XML_TESTVAL
1373       /endif
1374       /if defined(XML_TESTVAL)
1375      d xmlUnsetNsProp  pr            10i 0 extproc('xmlUnsetNsProp')
1376      d  node                               value like(xmlNodePtr)
1377      d  ns                                 value like(xmlNsPtr)
1378      d  name                           *   value options(*string)               const xmlChar *
1379
1380      d xmlUnsetProp    pr            10i 0 extproc('xmlUnsetProp')
1381      d  node                               value like(xmlNodePtr)
1382      d  name                           *   value options(*string)               const xmlChar *
1383
1384       /undefine XML_TESTVAL
1385       /endif
1386
1387       * Internal, don't use.
1388
1389      d xmlBufferWriteCharacter...                                               Warning: renamed
1390      d                 pr                  extproc('xmlBufferWriteCHAR')
1391      d  buf                                value like(xmlBufferPtr)
1392      d  string                         *   value options(*string)               const xmlChar *
1393
1394      d xmlBufferWriteChar...
1395      d                 pr                  extproc('xmlBufferWriteChar')
1396      d  buf                                value like(xmlBufferPtr)
1397      d  string                         *   value options(*string)               const xmlChar *
1398
1399      d xmlBufferWriteQuotedString...
1400      d                 pr                  extproc('xmlBufferWriteQuotedString')
1401      d  buf                                value like(xmlBufferPtr)
1402      d  string                         *   value options(*string)               const xmlChar *
1403
1404       /if defined(LIBXML_OUTPUT_ENABLED)
1405      d xmlAttrSerializeTxtContent...
1406      d                 pr                  extproc('xmlAttrSerializeTxtContent')
1407      d  buf                                value like(xmlBufferPtr)
1408      d  attr                               value like(xmlAttrPtr)
1409      d  string                         *   value options(*string)               const xmlChar *
1410       /endif                                                                    LIBXML_OUTPUT_ENABLD
1411
1412       /if defined(LIBXML_TREE_ENABLED)
1413
1414       * Namespace handling.
1415
1416      d xmlReconciliateNs...
1417      d                 pr            10i 0 extproc('xmlReconciliateNs')
1418      d  doc                                value like(xmlDocPtr)
1419      d  tree                               value like(xmlNodePtr)
1420       /endif
1421
1422       /if defined(LIBXML_OUTPUT_ENABLED)
1423
1424       * Saving.
1425
1426      d xmlDocDumpFormatMemory...
1427      d                 pr                  extproc('xmlDocDumpFormatMemory')
1428      d  cur                                value like(xmlDocPtr)
1429      d  mem                            *                                        xmlChar * (*)
1430      d  size                         10i 0
1431      d  format                       10i 0 value
1432
1433      d xmlDocDumpMemory...
1434      d                 pr                  extproc('xmlDocDumpMemory')
1435      d  cur                                value like(xmlDocPtr)
1436      d  mem                            *                                        xmlChar * (*)
1437      d  size                         10i 0
1438
1439      d xmlDocDumpMemoryEnc...
1440      d                 pr                  extproc('xmlDocDumpMemoryEnc')
1441      d  out_doc                            value like(xmlDocPtr)
1442      d  doc_txt_ptr                    *                                        xmlChar * (*)
1443      d  doc_txt_len                  10i 0
1444      d  txt_encoding                   *   value options(*string)               const char *
1445
1446      d xmlDocDumpFormatMemoryEnc...
1447      d                 pr                  extproc('xmlDocDumpFormatMemoryEnc')
1448      d  out_doc                            value like(xmlDocPtr)
1449      d  doc_txt_ptr                    *                                        xmlChar * (*)
1450      d  doc_txt_len                  10i 0
1451      d  txt_encoding                   *   value options(*string)               const char *
1452      d  format                       10i 0 value
1453
1454      d xmlDocFormatDump...
1455      d                 pr            10i 0 extproc('xmlDocFormatDump')
1456      d  f                              *   value                                FILE *
1457      d  cur                                value like(xmlDocPtr)
1458      d  format                       10i 0 value
1459
1460      d xmlDocDump      pr            10i 0 extproc('xmlDocDump')
1461      d  f                              *   value                                FILE *
1462      d  cur                                value like(xmlDocPtr)
1463
1464      d xmlElemDump     pr                  extproc('xmlElemDump')
1465      d  f                              *   value                                FILE *
1466      d  doc                                value like(xmlDocPtr)
1467      d  cur                                value like(xmlNodePtr)
1468
1469      d xmlSaveFile     pr            10i 0 extproc('xmlSaveFile')
1470      d  filename                       *   value options(*string)               const char *
1471      d  cur                                value like(xmlDocPtr)
1472
1473      d xmlSaveFormatFile...
1474      d                 pr            10i 0 extproc('xmlSaveFormatFile')
1475      d  filename                       *   value options(*string)               const char *
1476      d  cur                                value like(xmlDocPtr)
1477      d  format                       10i 0 value
1478
1479      d xmlBufNodeDump  pr            10u 0 extproc('xmlBufNodeDump')            size_t
1480      d  buf                                value like(xmlBufPtr)
1481      d  doc                                value like(xmlDocPtr)
1482      d  cur                                value like(xmlNodePtr)
1483      d  level                        10i 0 value
1484      d  format                       10i 0 value
1485
1486      d xmlNodeDump     pr            10i 0 extproc('xmlNodeDump')
1487      d  buf                                value like(xmlBufferPtr)
1488      d  doc                                value like(xmlDocPtr)
1489      d  cur                                value like(xmlNodePtr)
1490      d  level                        10i 0 value
1491      d  format                       10i 0 value
1492
1493      d xmlSaveFileTo   pr            10i 0 extproc('xmlSaveFileTo')
1494      d  buf                                value like(xmlOutputBufferPtr)
1495      d  cur                                value like(xmlDocPtr)
1496      d  encoding                       *   value options(*string)               const char *
1497
1498      d xmlSaveFormatFileTo...
1499      d                 pr            10i 0 extproc('xmlSaveFormatFileTo')
1500      d  buf                                value like(xmlOutputBufferPtr)
1501      d  cur                                value like(xmlDocPtr)
1502      d  encoding                       *   value options(*string)               const char *
1503      d  format                       10i 0 value
1504
1505      d xmlNodeDumpOutput...
1506      d                 pr                  extproc('xmlNodeDumpOutput')
1507      d  buf                                value like(xmlOutputBufferPtr)
1508      d  doc                                value like(xmlDocPtr)
1509      d  cur                                value like(xmlNodePtr)
1510      d  level                        10i 0 value
1511      d  format                       10i 0 value
1512      d  encoding                       *   value options(*string)               const char *
1513
1514      d xmlSaveFormatFileEnc...
1515      d                 pr            10i 0 extproc('xmlSaveFormatFileEnc')
1516      d  filename                       *   value options(*string)               const char *
1517      d  cur                                value like(xmlDocPtr)
1518      d  encoding                       *   value options(*string)               const char *
1519      d  format                       10i 0 value
1520
1521      d xmlSaveFileEnc  pr            10i 0 extproc('xmlSaveFileEnc')
1522      d  filename                       *   value options(*string)               const char *
1523      d  cur                                value like(xmlDocPtr)
1524      d  encoding                       *   value options(*string)               const char *
1525       /endif                                                                    LIBXML_OUTPUT_ENABLD
1526
1527       * XHTML
1528
1529      d xmlIsXHTML      pr            10i 0 extproc('xmlIsXHTML')
1530      d  systemID                       *   value options(*string)               const xmlChar *
1531      d  publicID                       *   value options(*string)               const xmlChar *
1532
1533       * Compression.
1534
1535      d xmlGetDocCompressMode...
1536      d                 pr            10i 0 extproc('xmlGetDocCompressMode')
1537      d  doc                                value like(xmlDocPtr)
1538
1539      d xmlSetDocCompressMode...
1540      d                 pr                  extproc('xmlSetDocCompressMode')
1541      d  doc                                value like(xmlDocPtr)
1542      d  mode                         10i 0 value
1543
1544      d xmlGetCompressMode...
1545      d                 pr            10i 0 extproc('xmlGetCompressMode')
1546
1547      d xmlSetCompressMode...
1548      d                 pr                  extproc('xmlSetCompressMode')
1549      d  mode                         10i 0 value
1550
1551       * DOM-wrapper helper functions.
1552
1553      d xmlDOMWrapNewCtxt...
1554      d                 pr                  extproc('xmlDOMWrapNewCtxt')
1555      d                                     like(xmlDOMWrapCtxtPtr)
1556
1557      d xmlDOMWrapFreeCtxt...
1558      d                 pr                  extproc('xmlDOMWrapFreeCtxt')
1559      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
1560
1561      d xmlDOMWrapReconcileNamespaces...
1562      d                 pr            10i 0 extproc(
1563      d                                      'xmlDOMWrapReconcileNamespaces')
1564      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
1565      d  elem                               value like(xmlNodePtr)
1566      d  options                      10i 0 value
1567
1568      d xmlDOMWrapAdoptNode...
1569      d                 pr            10i 0 extproc('xmlDOMWrapAdoptNode')
1570      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
1571      d  sourceDoc                          value like(xmlDocPtr)
1572      d  node                               value like(xmlNodePtr)
1573      d  destDoc                            value like(xmlDocPtr)
1574      d  destParent                         value like(xmlNodePtr)
1575      d  options                      10i 0 value
1576
1577      d xmlDOMWrapRemoveNode...
1578      d                 pr            10i 0 extproc('xmlDOMWrapRemoveNode')
1579      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
1580      d  doc                                value like(xmlDocPtr)
1581      d  node                               value like(xmlNodePtr)
1582      d  options                      10i 0 value
1583
1584      d xmlDOMWrapCloneNode...
1585      d                 pr            10i 0 extproc('xmlDOMWrapCloneNode')
1586      d  ctxt                               value like(xmlDOMWrapCtxtPtr)
1587      d  sourceDoc                          value like(xmlDocPtr)
1588      d  node                               value like(xmlNodePtr)
1589      d  clonedNode                         like(xmlNodePtr)
1590      d  destDoc                            value like(xmlDocPtr)
1591      d  destParent                         value like(xmlNodePtr)
1592      d  options                      10i 0 value
1593
1594       /if defined(LIBXML_TREE_ENABLED)
1595
1596       * 5 interfaces from DOM ElementTraversal, but different in entities
1597       * traversal.
1598
1599      d xmlChildElementCount...
1600      d                 pr            20u 0 extproc('xmlChildElementCount')
1601      d  parent                             value like(xmlNodePtr)
1602
1603      d xmlNextElementSibling...
1604      d                 pr                  extproc('xmlNextElementSibling')
1605      d                                     like(xmlNodePtr)
1606      d  node                               value like(xmlNodePtr)
1607
1608      d xmlFirstElementChild...
1609      d                 pr                  extproc('xmlFirstElementChild')
1610      d                                     like(xmlNodePtr)
1611      d  parent                             value like(xmlNodePtr)
1612
1613      d xmlLastElementChild...
1614      d                 pr                  extproc('xmlLastElementChild')
1615      d                                     like(xmlNodePtr)
1616      d  parent                             value like(xmlNodePtr)
1617
1618      d xmlPreviousElementSibling...
1619      d                 pr                  extproc('xmlPreviousElementSibling')
1620      d                                     like(xmlNodePtr)
1621      d  node                               value like(xmlNodePtr)
1622       /endif
1623
1624       /if not defined(XML_PARSER_H__)
1625       /include "libxmlrpg/xmlmemory"
1626       /endif
1627
1628       /endif                                                                    XML_TREE_H__