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