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__
1629