Bump to libxml2 2.9.4
[platform/upstream/libxml2.git] / os400 / libxmlrpg / parser.rpgle
1       * Summary: the core parser module
2       * Description: Interfaces, constants and types related to the XML parser
3       *
4       * Copy: See Copyright for the status of this software.
5       *
6       * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
7
8       /if not defined(XML_PARSER_H__)
9       /define XML_PARSER_H__
10
11       /include "libxmlrpg/xmlversion"
12       /include "libxmlrpg/xmlTypesC"
13       /include "libxmlrpg/tree"
14       /include "libxmlrpg/dict"
15       /include "libxmlrpg/hash"
16       /include "libxmlrpg/valid"
17       /include "libxmlrpg/entities"
18       /include "libxmlrpg/xmlerror"
19       /include "libxmlrpg/xmlstring"
20
21       * XML_DEFAULT_VERSION:
22       *
23       * The default version of XML used: 1.0
24
25      d XML_DEFAULT_VERSION...
26      d                 c                   '1.0'
27
28       * xmlParserInput:
29       *
30       * An xmlParserInput is an input flow for the XML processor.
31       * Each entity parsed is associated an xmlParserInput (except the
32       * few predefined ones). This is the case both for internal entities
33       * - in which case the flow is already completely in memory - or
34       * external entities - in which case we use the buf structure for
35       * progressive reading and I18N conversions to the internal UTF-8 format.
36
37       * xmlParserInputDeallocate:
38       * @str:  the string to deallocate
39       *
40       * Callback for freeing some parser input allocations.
41
42      d xmlParserInputDeallocate...
43      d                 s               *   based(######typedef######)
44      d                                     procptr
45
46       * Input buffer
47
48      d xmlParserInput  ds                  based(xmlParserInputPtr)
49      d                                     align qualified
50      d  buf                                like(xmlParserInputBufferPtr)        UTF-8 encoded buffer
51      d  filename                       *                                        const char *
52      d  directory                      *                                        const char *
53      d  base                           *                                        const char *
54      d  cur                            *                                        const char *
55      d  end                            *                                        const char *
56      d  length                             like(xmlCint)                        Length if known
57      d  line                               like(xmlCint)                        Current line
58      d  col                                like(xmlCint)                        Current column
59       *
60       * NOTE: consumed is only tested for equality in the parser code,
61       *       so even if there is an overflow this should not give troubles
62       *       for parsing very large instances.
63       *
64      d  consumed                           like(xmlCulong)                      # consumed xmlChars
65      d  free                               like(xmlParserInputDeallocate)       base deallocator
66      d  encoding                       *                                        const xmlChar *
67      d  version                        *                                        const xmlChar *
68      d  standalone                         like(xmlCint)                        Standalone entity ?
69      d  id                                 like(xmlCint)                        Entity unique ID
70
71       * xmlParserNodeInfo:
72       *
73       * The parser can be asked to collect Node informations, i.e. at what
74       * place in the file they were detected.
75       * NOTE: This is off by default and not very well tested.
76
77      d xmlParserNodeInfoPtr...
78      d                 s               *   based(######typedef######)
79
80      d xmlParserNodeInfo...
81      d                 ds                  based(xmlParserNodeInfoPtr)
82      d                                     align qualified
83      d  node                               like(xmlNodePtr)                     const
84       * Position & line # that text that created the node begins & ends on
85      d  begin_pos                          like(xmlCulong)
86      d  begin_line                         like(xmlCulong)
87      d  end_pos                            like(xmlCulong)
88      d  end_line                           like(xmlCulong)
89
90      d xmlParserNodeInfoSeqPtr...
91      d                 s               *   based(######typedef######)
92
93      d xmlParserNodeInfoSeq...
94      d                 ds                  based(xmlParserNodeInfoSeqPtr)
95      d                                     align qualified
96      d  maximum                            like(xmlCulong)
97      d  length                             like(xmlCulong)
98      d  buffer                             like(xmlParserNodeInfoPtr)
99
100       * xmlParserInputState:
101       *
102       * The parser is now working also as a state based parser.
103       * The recursive one use the state info for entities processing.
104
105      d xmlParserInputState...
106      d                 s                   based(######typedef######)
107      d                                     like(xmlCenum)
108      d  XML_PARSER_EOF...                                                       Nothing to parse
109      d                 c                   -1
110      d  XML_PARSER_START...                                                     Nothing parsed
111      d                 c                   0
112      d  XML_PARSER_MISC...                                                      Misc* b4 int subset
113      d                 c                   1
114      d  XML_PARSER_PI  c                   2                                    In proc instr
115      d  XML_PARSER_DTD...                                                       In some DTD content
116      d                 c                   3
117      d  XML_PARSER_PROLOG...                                                    Misc* after int sbst
118      d                 c                   4
119      d  XML_PARSER_COMMENT...                                                   Within a comment
120      d                 c                   5
121      d  XML_PARSER_START_TAG...                                                 Within a start tag
122      d                 c                   6
123      d  XML_PARSER_CONTENT...                                                   Within the content
124      d                 c                   7
125      d  XML_PARSER_CDATA_SECTION...                                             Within a CDATA
126      d                 c                   8
127      d  XML_PARSER_END_TAG...                                                   Within a closing tag
128      d                 c                   9
129      d  XML_PARSER_ENTITY_DECL...                                               In an entity decl
130      d                 c                   10
131      d  XML_PARSER_ENTITY_VALUE...                                              In entity decl value
132      d                 c                   11
133      d  XML_PARSER_ATTRIBUTE_VALUE...                                           In attribute value
134      d                 c                   12
135      d  XML_PARSER_SYSTEM_LITERAL...                                            In a SYSTEM value
136      d                 c                   13
137      d  XML_PARSER_EPILOG...                                                    Last end tag Misc*
138      d                 c                   14
139      d  XML_PARSER_IGNORE...                                                    In IGNORED section
140      d                 c                   15
141      d  XML_PARSER_PUBLIC_LITERAL...                                            In a PUBLIC value
142      d                 c                   16
143
144       * XML_DETECT_IDS:
145       *
146       * Bit in the loadsubset context field to tell to do ID/REFs lookups.
147       * Use it to initialize xmlLoadExtDtdDefaultValue.
148
149      d XML_DETECT_IDS  c                   2
150
151       * XML_COMPLETE_ATTRS:
152       *
153       * Bit in the loadsubset context field to tell to do complete the
154       * elements attributes lists with the ones defaulted from the DTDs.
155       * Use it to initialize xmlLoadExtDtdDefaultValue.
156
157      d XML_COMPLETE_ATTRS...
158      d                 c                   4
159
160       * XML_SKIP_IDS:
161       *
162       * Bit in the loadsubset context field to tell to not do ID/REFs
163       *   registration.
164       * Used to initialize xmlLoadExtDtdDefaultValue in some special cases.
165
166      d XML_SKIP_IDS    c                   8
167
168       * xmlParserMode:
169       *
170       * A parser can operate in various modes
171
172      d xmlParserMode   s                   based(######typedef######)
173      d                                     like(xmlCenum)
174      d  XML_PARSE_UNKNOWN...
175      d                 c                   0
176      d  XML_PARSE_DOM...
177      d                 c                   1
178      d  XML_PARSE_SAX...
179      d                 c                   2
180      d  XML_PARSE_PUSH_DOM...
181      d                 c                   3
182      d  XML_PARSE_PUSH_SAX...
183      d                 c                   4
184      d  XML_PARSE_READER...
185      d                 c                   5
186
187       * xmlParserCtxt:
188       *
189       * The parser context.
190       * NOTE This doesn't completely define the parser state, the (current ?)
191       *      design of the parser uses recursive function calls since this allow
192       *      and easy mapping from the production rules of the specification
193       *      to the actual code. The drawback is that the actual function call
194       *      also reflect the parser state. However most of the parsing routines
195       *      takes as the only argument the parser context pointer, so migrating
196       *      to a state based parser for progressive parsing shouldn't be too
197       *      hard.
198
199      d xmlParserCtxt   ds                  based(xmlParserCtxtPtr)
200      d                                     align qualified
201      d  sax                                like(xmlSAXHandlerPtr)               The SAX handler
202      d  userData                       *                                        SAX only-4 DOM build
203      d  myDoc                              like(xmlDocPtr)                      Document being built
204      d  wellFormed                         like(xmlCint)                        Well formed doc ?
205      d  replaceEntities...                                                      Replace entities ?
206      d                                     like(xmlCint)
207      d  version                        *                                        const xmlChar *
208      d  encoding                       *                                        const xmlChar *
209      d  standalone                         like(xmlCint)                        Standalone document
210      d  html                               like(xmlCint)                        HTML state/type
211       *
212       * Input stream stack
213       *
214      d  input                              like(xmlParserInputPtr)              Current input stream
215      d  inputNr                            like(xmlCint)                        # current in streams
216      d  inputMax                           like(xmlCint)                        Max # of in streams
217      d  inputTab                       *                                        xmlParserInputPtr *
218       *
219       * Node analysis stack only used for DOM building
220       *
221      d  node                               like(xmlNodePtr)                     Current parsed node
222      d  nodeNr                             like(xmlCint)                        Parsing stack depth
223      d  nodeMax                            like(xmlCint)                        Max stack depth
224      d  nodeTab                        *                                        xmlNodePtr *
225       *
226      d  record_info                        like(xmlCint)                        Keep node info ?
227      d  node_seq                           likeds(xmlParserNodeInfoSeq)         Parsed nodes info
228       *
229      d  errNo                              like(xmlCint)                        Error code
230       *
231      d  hasExternalSubset...
232      d                                     like(xmlCint)
233      d  hasPErefs                          like(xmlCint)
234      d  external                           like(xmlCint)                        Parsing ext. entity?
235       *
236      d  valid                              like(xmlCint)                        Valid document ?
237      d  validate                           like(xmlCint)                        Try to validate ?
238      d  vctxt                              likeds(xmlValidCtxt)                 Validity context
239       *
240      d  instate                            like(xmlParserInputState)            Current input type
241      d  token                              like(xmlCint)                        Next look-ahead char
242       *
243      d  directory                      *                                        char *
244       *
245       * Node name stack
246       *
247      d  name                           *                                        const xmlChar *
248      d  nameNr                             like(xmlCint)                        Parsing stack depth
249      d  nameMax                            like(xmlCint)                        Max stack depth
250      d  nameTab                        *                                        const xmlChar * *
251       *
252      d  nbChars                            like(xmlClong)                       # xmlChars processed
253      d  checkIndex                         like(xmlClong)                       4 progressive parse
254      d  keepBlanks                         like(xmlCint)                        Ugly but ...
255      d  disableSAX                         like(xmlCint)                        Disable SAX cllbacks
256      d  inSubset                           like(xmlCint)                        In int 1/ext 2 sbset
257      d  intSubName                     *                                        const xmlChar *
258      d  extSubURI                      *                                        const xmlChar *
259      d  extSubSytem                    *                                        const xmlChar *
260       *
261       * xml:space values
262       *
263      d  space                          *                                        int *
264      d  spaceNr                            like(xmlCint)                        Parsing stack depth
265      d  spaceMax                           like(xmlCint)                        Max stack depth
266      d  spaceTab                       *                                        int *
267       *
268      d  depth                              like(xmlCint)                        To detect loops
269      d  entity                             like(xmlParserInputPtr)              To check boundaries
270      d  charset                            like(xmlCint)                        In-memory content
271      d  nodelen                            like(xmlCint)                        Speed up parsing
272      d  nodemem                            like(xmlCint)                        Speed up parsing
273      d  pedantic                           like(xmlCint)                        Enb. pedantic warng
274      d  #private                       *                                        void *
275       *
276      d  loadsubset                         like(xmlCint)                        Load ext. subset ?
277      d  linenumbers                        like(xmlCint)                        Set line numbers ?
278      d  catalogs                       *                                        void *
279      d  recovery                           like(xmlCint)                        Run in recovery mode
280      d  progressive                        like(xmlCint)                        Progressive parsing?
281      d  dict                               like(xmlDictPtr)                     Parser dictionary
282      d  atts                           *                                        const xmlChar *
283      d  maxatts                            like(xmlCint)                        Above array size
284      d  docdict                            like(xmlCint)                        Use dictionary ?
285       *
286       * pre-interned strings
287       *
288      d  str_xml                        *                                        const xmlChar *
289      d  str_xmlns                      *                                        const xmlChar *
290      d  str_xml_ms                     *                                        const xmlChar *
291       *
292       * Everything below is used only by the new SAX mode
293       *
294      d  sax2                               like(xmlCint)                        New SAX mode ?
295      d  nsNr                               like(xmlCint)                        # inherited nmspaces
296      d  nsMax                              like(xmlCint)                        Array size
297      d  nsTab                          *                                        const xmlChar *
298      d  attallocs                      *                                        int *
299      d  pushTab                        *                                        void *
300      d  attsDefault                        like(xmlHashTablePtr)                Defaulted attrs
301      d  attsSpecial                        like(xmlHashTablePtr)                non-CDATA attrs
302      d  nsWellFormed                       like(xmlCint)                        Doc namespace OK ?
303      d  options                            like(xmlCint)                        Extra options
304       *
305       * Those fields are needed only for treaming parsing so far
306       *
307      d  dictNames                          like(xmlCint)                        Dict names in tree ?
308      d  freeElemsNr                        like(xmlCint)                        # free element nodes
309      d  freeElems                          like(xmlNodePtr)                     Free elem nodes list
310      d  freeAttrsNr                        like(xmlCint)                        # free attr. nodes
311      d  freeAttrs                          like(xmlAttrPtr)                     Free attr noes list
312       *
313       * the complete error informations for the last error.
314       *
315      d  lastError                          likeds(xmlError)
316      d  parseMode                          like(xmlParserMode)                  The parser mode
317      d  nbentities                         like(xmlCulong)                      # entity references
318      d  sizeentities                       like(xmlCulong)                      Parsed entities size
319       *
320       * for use by HTML non-recursive parser
321       *
322      d  nodeInfo                           like(xmlParserNodeInfoPtr)           Current NodeInfo
323      d  nodeInfoNr                         like(xmlCint)                        Parsing stack depth
324      d  nodeInfoMax                        like(xmlCint)                        Max stack depth
325      d  nodeInfoTab                    *                                        xmlParserNodeInfo *
326       *
327      d  input_id                           like(xmlCint)                        Label inputs ?
328      d  sizeentcopy                        like(xmlCulong)                      Entity copy volume
329
330       * xmlSAXLocator:
331       *
332       * A SAX Locator.
333
334      d xmlSAXLocator   ds                  based(xmlSAXLocatorPtr)
335      d                                     align qualified
336      d  getPublicId                    *   procptr
337      d  getSystemId                    *   procptr
338      d  getLineNumber                  *   procptr
339      d  getColumnNumber...
340      d                                 *   procptr
341
342       * xmlSAXHandler:
343       *
344       * A SAX handler is bunch of callbacks called by the parser when
345       * processing of the input generate data or structure informations.
346
347       * resolveEntitySAXFunc:
348       * @ctx:  the user data (XML parser context)
349       * @publicId: The public ID of the entity
350       * @systemId: The system ID of the entity
351       *
352       * Callback:
353       * The entity loader, to control the loading of external entities,
354       * the application can either:
355       *    - override this resolveEntity() callback in the SAX block
356       *    - or better use the xmlSetExternalEntityLoader() function to
357       *      set up it's own entity resolution routine
358       *
359       * Returns the xmlParserInputPtr if inlined or NULL for DOM behaviour.
360
361      d resolveEntitySAXFunc...
362      d                 s               *   based(######typedef######)
363      d                                     procptr
364
365       * internalSubsetSAXFunc:
366       * @ctx:  the user data (XML parser context)
367       * @name:  the root element name
368       * @ExternalID:  the external ID
369       * @SystemID:  the SYSTEM ID (e.g. filename or URL)
370       *
371       * Callback on internal subset declaration.
372
373      d internalSubsetSAXFunc...
374      d                 s               *   based(######typedef######)
375      d                                     procptr
376
377       * externalSubsetSAXFunc:
378       * @ctx:  the user data (XML parser context)
379       * @name:  the root element name
380       * @ExternalID:  the external ID
381       * @SystemID:  the SYSTEM ID (e.g. filename or URL)
382       *
383       * Callback on external subset declaration.
384
385      d externalSubsetSAXFunc...
386      d                 s               *   based(######typedef######)
387      d                                     procptr
388
389       * getEntitySAXFunc:
390       * @ctx:  the user data (XML parser context)
391       * @name: The entity name
392       *
393       * Get an entity by name.
394       *
395       * Returns the xmlEntityPtr if found.
396
397      d getEntitySAXFunc...
398      d                 s               *   based(######typedef######)
399      d                                     procptr
400
401       * getParameterEntitySAXFunc:
402       * @ctx:  the user data (XML parser context)
403       * @name: The entity name
404       *
405       * Get a parameter entity by name.
406       *
407       * Returns the xmlEntityPtr if found.
408
409      d getParameterEntitySAXFunc...
410      d                 s               *   based(######typedef######)
411      d                                     procptr
412
413       * entityDeclSAXFunc:
414       * @ctx:  the user data (XML parser context)
415       * @name:  the entity name
416       * @type:  the entity type
417       * @publicId: The public ID of the entity
418       * @systemId: The system ID of the entity
419       * @content: the entity value (without processing).
420       *
421       * An entity definition has been parsed.
422
423      d entityDeclSAXFunc...
424      d                 s               *   based(######typedef######)
425      d                                     procptr
426
427       * notationDeclSAXFunc:
428       * @ctx:  the user data (XML parser context)
429       * @name: The name of the notation
430       * @publicId: The public ID of the entity
431       * @systemId: The system ID of the entity
432       *
433       * What to do when a notation declaration has been parsed.
434
435      d notationDeclSAXFunc...
436      d                 s               *   based(######typedef######)
437      d                                     procptr
438
439       * attributeDeclSAXFunc:
440       * @ctx:  the user data (XML parser context)
441       * @elem:  the name of the element
442       * @fullname:  the attribute name
443       * @type:  the attribute type
444       * @def:  the type of default value
445       * @defaultValue: the attribute default value
446       * @tree:  the tree of enumerated value set
447       *
448       * An attribute definition has been parsed.
449
450      d attributeDeclSAXFunc...
451      d                 s               *   based(######typedef######)
452      d                                     procptr
453
454       * elementDeclSAXFunc:
455       * @ctx:  the user data (XML parser context)
456       * @name:  the element name
457       * @type:  the element type
458       * @content: the element value tree
459       *
460       * An element definition has been parsed.
461
462      d elementDeclSAXFunc...
463      d                 s               *   based(######typedef######)
464      d                                     procptr
465
466       * unparsedEntityDeclSAXFunc:
467       * @ctx:  the user data (XML parser context)
468       * @name: The name of the entity
469       * @publicId: The public ID of the entity
470       * @systemId: The system ID of the entity
471       * @notationName: the name of the notation
472       *
473       * What to do when an unparsed entity declaration is parsed.
474
475      d unparsedEntityDeclSAXFunc...
476      d                 s               *   based(######typedef######)
477      d                                     procptr
478
479       * setDocumentLocatorSAXFunc:
480       * @ctx:  the user data (XML parser context)
481       * @loc: A SAX Locator
482       *
483       * Receive the document locator at startup, actually xmlDefaultSAXLocator.
484       * Everything is available on the context, so this is useless in our case.
485
486      d setDocumentLocatorSAXFunc...
487      d                 s               *   based(######typedef######)
488      d                                     procptr
489
490       * startDocumentSAXFunc:
491       * @ctx:  the user data (XML parser context)
492       *
493       * Called when the document start being processed.
494
495      d startDocumentSAXFunc...
496      d                 s               *   based(######typedef######)
497      d                                     procptr
498
499       * endDocumentSAXFunc:
500       * @ctx:  the user data (XML parser context)
501       *
502       * Called when the document end has been detected.
503
504      d endDocumentSAXFunc...
505      d                 s               *   based(######typedef######)
506      d                                     procptr
507
508       * startElementSAXFunc:
509       * @ctx:  the user data (XML parser context)
510       * @name:  The element name, including namespace prefix
511       * @atts:  An array of name/value attributes pairs, NULL terminated
512       *
513       * Called when an opening tag has been processed.
514
515      d startElementSAXFunc...
516      d                 s               *   based(######typedef######)
517      d                                     procptr
518
519       * endElementSAXFunc:
520       * @ctx:  the user data (XML parser context)
521       * @name:  The element name
522       *
523       * Called when the end of an element has been detected.
524
525      d endElementSAXFunc...
526      d                 s               *   based(######typedef######)
527      d                                     procptr
528
529       * attributeSAXFunc:
530       * @ctx:  the user data (XML parser context)
531       * @name:  The attribute name, including namespace prefix
532       * @value:  The attribute value
533       *
534       * Handle an attribute that has been read by the parser.
535       * The default handling is to convert the attribute into an
536       * DOM subtree and past it in a new xmlAttr element added to
537       * the element.
538
539      d attributeSAXFunc...
540      d                 s               *   based(######typedef######)
541      d                                     procptr
542
543       * referenceSAXFunc:
544       * @ctx:  the user data (XML parser context)
545       * @name:  The entity name
546       *
547       * Called when an entity reference is detected.
548
549      d referenceSAXFunc...
550      d                 s               *   based(######typedef######)
551      d                                     procptr
552
553       * charactersSAXFunc:
554       * @ctx:  the user data (XML parser context)
555       * @ch:  a xmlChar string
556       * @len: the number of xmlChar
557       *
558       * Receiving some chars from the parser.
559
560      d charactersSAXFunc...
561      d                 s               *   based(######typedef######)
562      d                                     procptr
563
564       * ignorableWhitespaceSAXFunc:
565       * @ctx:  the user data (XML parser context)
566       * @ch:  a xmlChar string
567       * @len: the number of xmlChar
568       *
569       * Receiving some ignorable whitespaces from the parser.
570       * UNUSED: by default the DOM building will use characters.
571
572      d ignorableWhitespaceSAXFunc...
573      d                 s               *   based(######typedef######)
574      d                                     procptr
575
576       * processingInstructionSAXFunc:
577       * @ctx:  the user data (XML parser context)
578       * @target:  the target name
579       * @data: the PI data's
580       *
581       * A processing instruction has been parsed.
582
583      d processingInstructionSAXFunc...
584      d                 s               *   based(######typedef######)
585      d                                     procptr
586
587       * commentSAXFunc:
588       * @ctx:  the user data (XML parser context)
589       * @value:  the comment content
590       *
591       * A comment has been parsed.
592
593      d commentSAXFunc...
594      d                 s               *   based(######typedef######)
595      d                                     procptr
596
597       * cdataBlockSAXFunc:
598       * @ctx:  the user data (XML parser context)
599       * @value:  The pcdata content
600       * @len:  the block length
601       *
602       * Called when a pcdata block has been parsed.
603
604      d cdataBlockSAXFunc...
605      d                 s               *   based(######typedef######)
606      d                                     procptr
607
608       * warningSAXFunc:
609       * @ctx:  an XML parser context
610       * @msg:  the message to display/transmit
611       * @...:  extra parameters for the message display
612       *
613       * Display and format a warning messages, callback.
614
615      d warningSAXFunc...
616      d                 s               *   based(######typedef######)
617      d                                     procptr
618
619       * errorSAXFunc:
620       * @ctx:  an XML parser context
621       * @msg:  the message to display/transmit
622       * @...:  extra parameters for the message display
623       *
624       * Display and format an error messages, callback.
625
626      d errorSAXFunc...
627      d                 s               *   based(######typedef######)
628      d                                     procptr
629
630       * fatalErrorSAXFunc:
631       * @ctx:  an XML parser context
632       * @msg:  the message to display/transmit
633       * @...:  extra parameters for the message display
634       *
635       * Display and format fatal error messages, callback.
636       * Note: so far fatalError() SAX callbacks are not used, error()
637       *       get all the callbacks for errors.
638
639      d fatalErrorSAXFunc...
640      d                 s               *   based(######typedef######)
641      d                                     procptr
642
643       * isStandaloneSAXFunc:
644       * @ctx:  the user data (XML parser context)
645       *
646       * Is this document tagged standalone?
647       *
648       * Returns 1 if true
649
650      d isStandaloneSAXFunc...
651      d                 s               *   based(######typedef######)
652      d                                     procptr
653
654       * hasInternalSubsetSAXFunc:
655       * @ctx:  the user data (XML parser context)
656       *
657       * Does this document has an internal subset.
658       *
659       * Returns 1 if true
660
661      d hasInternalSubsetSAXFunc...
662      d                 s               *   based(######typedef######)
663      d                                     procptr
664
665       * hasExternalSubsetSAXFunc:
666       * @ctx:  the user data (XML parser context)
667       *
668       * Does this document has an external subset?
669       *
670       * Returns 1 if true
671
672      d hasExternalSubsetSAXFunc...
673      d                 s               *   based(######typedef######)
674      d                                     procptr
675
676       ************************************************************************
677       *                                                                      *
678       *                      The SAX version 2 API extensions                *
679       *                                                                      *
680       ************************************************************************
681
682       * XML_SAX2_MAGIC:
683       *
684       * Special constant found in SAX2 blocks initialized fields
685
686      d XML_SAX2_MAGIC  c                   X'DEEDBEAF'
687
688       * startElementNsSAX2Func:
689       * @ctx:           the user data (XML parser context)
690       * @localname:     the local name of the element
691       * @prefix:        the element namespace prefix if available
692       * @URI:           the element namespace name if available
693       * @nb_namespaces: number of namespace definitions on that node
694       * @namespaces:    pointer to the array of prefix/URI pairs namespace
695       *                 definitions
696       * @nb_attributes:  the number of attributes on that node
697       * @nb_defaulted:   the number of defaulted attributes. The defaulted
698       *                  ones are at the end of the array
699       * @attributes:     pointer to the array of
700       *                  (localname/prefix/URI/value/end) attribute values.
701       *
702       * SAX2 callback when an element start has been detected by the parser.
703       * It provides the namespace informations for the element, as well as
704       * the new namespace declarations on the element.
705
706      d startElementNsSAX2Func...
707      d                 s               *   based(######typedef######)
708      d                                     procptr
709
710       * endElementNsSAX2Func:
711       * @ctx:  the user data (XML parser context)
712       * @localname:  the local name of the element
713       * @prefix:  the element namespace prefix if available
714       * @URI:  the element namespace name if available
715       *
716       * SAX2 callback when an element end has been detected by the parser.
717       * It provides the namespace informations for the element.
718
719      d endElementNsSAX2Func...
720      d                 s               *   based(######typedef######)
721      d                                     procptr
722
723      d xmlSAXHandler   ds                  based(xmlSAXHandlerPtr)
724      d                                     align qualified
725      d  internalSubset...
726      d                                     like(internalSubsetSAXFunc)
727      d  isStandalone                       like(isStandaloneSAXFunc)
728      d  hasInternalSubset...
729      d                                     like(hasInternalSubsetSAXFunc)
730      d  hasExternalSubset...
731      d                                     like(hasExternalSubsetSAXFunc)
732      d  resolveEntity                      like(resolveEntitySAXFunc)
733      d  getEntity                          like(getEntitySAXFunc)
734      d  entityDecl                         like(entityDeclSAXFunc)
735      d  notationDecl                       like(notationDeclSAXFunc)
736      d  attributeDecl                      like(attributeDeclSAXFunc)
737      d  elementDecl                        like(elementDeclSAXFunc)
738      d  unparsedEntityDecl...
739      d                                     like(unparsedEntityDeclSAXFunc)
740      d  setDocumentLocator...
741      d                                     like(setDocumentLocatorSAXFunc)
742      d  startDocument                      like(startDocumentSAXFunc)
743      d  endDocument                        like(endDocumentSAXFunc)
744      d  startElement                       like(startElementSAXFunc)
745      d  endElement                         like(endElementSAXFunc)
746      d  reference                          like(referenceSAXFunc)
747      d  characters                         like(charactersSAXFunc)
748      d  ignorableWhitespace...
749      d                                     like(ignorableWhitespaceSAXFunc)
750      d  processingInstruction...
751      d                                     like(processingInstructionSAXFunc)
752      d  comment                            like(commentSAXFunc)
753      d  warning                            like(warningSAXFunc)
754      d  error                              like(errorSAXFunc)
755      d  fatalError                         like(fatalErrorSAXFunc)
756      d  getParameterEntity...
757      d                                     like(getParameterEntitySAXFunc)
758      d  cdataBlock                         like(cdataBlockSAXFunc)
759      d  externalSubset...
760      d                                     like(externalSubsetSAXFunc)
761      d  initialized                        like(xmlCuint)
762       *
763       * The following fields are extensions available only on version 2
764       *
765      d  #private                       *                                        void *
766      d  startElementNs...
767      d                                     like(startElementNsSAX2Func)
768      d  endELementNs                       like(endElementNsSAX2Func)
769      d  serror                             like(xmlStructuredErrorFunc)
770
771       * SAX Version 1
772
773      d xmlSAXHandlerV1Ptr...
774      d                 s               *   based(######typedef######)
775
776      d xmlSAXHandlerV1...
777      d                 ds                  based(xmlSAXHandlerV1Ptr)
778      d                                     align qualified
779      d  internalSubset...
780      d                                     like(internalSubsetSAXFunc)
781      d  isStandalone                       like(isStandaloneSAXFunc)
782      d  hasInternalSubset...
783      d                                     like(hasInternalSubsetSAXFunc)
784      d  hasExternalSubset...
785      d                                     like(hasExternalSubsetSAXFunc)
786      d  resolveEntity                      like(resolveEntitySAXFunc)
787      d  getEntity                          like(getEntitySAXFunc)
788      d  entityDecl                         like(entityDeclSAXFunc)
789      d  notationDecl                       like(notationDeclSAXFunc)
790      d  attributeDecl                      like(attributeDeclSAXFunc)
791      d  elementDecl                        like(elementDeclSAXFunc)
792      d  unparsedEntityDecl...
793      d                                     like(unparsedEntityDeclSAXFunc)
794      d  setDocumentLocator...
795      d                                     like(setDocumentLocatorSAXFunc)
796      d  startDocument                      like(startDocumentSAXFunc)
797      d  endDocument                        like(endDocumentSAXFunc)
798      d  startElement                       like(startElementSAXFunc)
799      d  endElement                         like(endElementSAXFunc)
800      d  reference                          like(referenceSAXFunc)
801      d  characters                         like(charactersSAXFunc)
802      d  ignorableWhitespace...
803      d                                     like(ignorableWhitespaceSAXFunc)
804      d  processingInstruction...
805      d                                     like(processingInstructionSAXFunc)
806      d  comment                            like(commentSAXFunc)
807      d  warning                            like(warningSAXFunc)
808      d  error                              like(errorSAXFunc)
809      d  fatalError                         like(fatalErrorSAXFunc)
810      d  getParameterEntity...
811      d                                     like(getParameterEntitySAXFunc)
812      d  cdataBlock                         like(cdataBlockSAXFunc)
813      d  externalSubset...
814      d                                     like(externalSubsetSAXFunc)
815      d  initialized                        like(xmlCuint)
816
817       * xmlExternalEntityLoader:
818       * @URL: The System ID of the resource requested
819       * @ID: The Public ID of the resource requested
820       * @context: the XML parser context
821       *
822       * External entity loaders types.
823       *
824       * Returns the entity input parser.
825
826      d xmlExternalEntityLoader...
827      d                 s               *   based(######typedef######)
828      d                                     procptr
829
830       /include "libxmlrpg/encoding"
831       /include "libxmlrpg/xmlIO"
832       /include "libxmlrpg/globals"
833
834       * Init/Cleanup
835
836      d xmlInitParser   pr                  extproc('xmlInitParser')
837
838      d xmlCleanupParser...
839      d                 pr                  extproc('xmlCleanupParser')
840
841       * Input functions
842
843      d xmlParserInputRead...
844      d                 pr                  extproc('xmlParserInputRead')
845      d                                     like(xmlCint)
846      d  in                                 value like(xmlParserInputPtr)
847      d  len                                value like(xmlCint)
848
849      d xmlParserInputGrow...
850      d                 pr                  extproc('xmlParserInputGrow')
851      d                                     like(xmlCint)
852      d  in                                 value like(xmlParserInputPtr)
853      d  len                                value like(xmlCint)
854
855       * Basic parsing Interfaces
856
857       /if defined(LIBXML_SAX1_ENABLED)
858      d xmlParseDoc     pr                  extproc('xmlParseDoc')
859      d                                     like(xmlDocPtr)
860      d  cur                            *   value options(*string)               const xmlChar *
861
862      d xmlParseFile    pr                  extproc('xmlParseFile')
863      d                                     like(xmlDocPtr)
864      d  filename                       *   value options(*string)               const char *
865
866      d xmlParseMemory  pr                  extproc('xmlParseMemory')
867      d                                     like(xmlDocPtr)
868      d  buffer                         *   value options(*string)               const char *
869      d  size                               value like(xmlCint)
870       /endif                                                                    LIBXML_SAX1_ENABLED
871
872      d xmlSubstituteEntitiesDefault...
873      d                 pr                  extproc(
874      d                                      'xmlSubstituteEntitiesDefault')
875      d                                     like(xmlCint)
876      d  val                                value like(xmlCint)
877
878      d xmlKeepBlanksDefault...
879      d                 pr                  extproc('xmlKeepBlanksDefault')
880      d                                     like(xmlCint)
881      d  val                                value like(xmlCint)
882
883      d xmlStopParser   pr                  extproc('xmlStopParser')
884      d  ctxt                               value like(xmlParserCtxtPtr)
885
886      d xmlPedanticParserDefault...
887      d                 pr                  extproc('xmlPedanticParserDefault')
888      d                                     like(xmlCint)
889      d  val                                value like(xmlCint)
890
891      d xmlLineNumbersDefault...
892      d                 pr                  extproc('xmlLineNumbersDefault')
893      d                                     like(xmlCint)
894      d  val                                value like(xmlCint)
895
896       /if defined(LIBXML_SAX1_ENABLED)
897       * Recovery mode
898
899      d xmlRecoverDoc   pr                  extproc('xmlRecoverDoc')
900      d                                     like(xmlDocPtr)
901      d  cur                            *   value options(*string)               const xmlChar *
902
903      d xmlRecoverMemory...
904      d                 pr                  extproc('xmlRecoverMemory')
905      d                                     like(xmlDocPtr)
906      d  buffer                         *   value options(*string)               const char *
907      d  size                               value like(xmlCint)
908
909      d xmlRecoverFile  pr                  extproc('xmlRecoverFile')
910      d                                     like(xmlDocPtr)
911      d  filename                       *   value options(*string)               const char *
912       /endif                                                                    LIBXML_SAX1_ENABLED
913
914       * Less common routines and SAX interfaces
915
916      d xmlParseDocument...
917      d                 pr                  extproc('xmlParseDocument')
918      d                                     like(xmlCint)
919      d  ctxt                               value like(xmlParserCtxtPtr)
920
921      d xmlParseExtParsedEnt...
922      d                 pr                  extproc('xmlParseExtParsedEnt')
923      d                                     like(xmlCint)
924      d  ctxt                               value like(xmlParserCtxtPtr)
925
926       /if defined(LIBXML_SAX1_ENABLED)
927      d xmlSAXUserParseFile...
928      d                 pr                  extproc('xmlSAXUserParseFile')
929      d                                     like(xmlCint)
930      d  sax                                value like(xmlSAXHandlerPtr)
931      d  user_data                      *   value                                void *
932      d  filename                       *   value options(*string)               const char *
933
934      d xmlSAXUserParseMemory...
935      d                 pr                  extproc('xmlSAXUserParseMemory')
936      d                                     like(xmlCint)
937      d  sax                                value like(xmlSAXHandlerPtr)
938      d  user_data                      *   value                                void *
939      d  buffer                         *   value options(*string)               const char *
940      d  size                               value like(xmlCint)
941
942      d xmlSAXParseDoc  pr                  extproc('xmlSAXParseDoc')
943      d                                     like(xmlDocPtr)
944      d  sax                                value like(xmlSAXHandlerPtr)
945      d  cur                            *   value options(*string)               const xmlChar *
946      d  recovery                           value like(xmlCint)
947
948      d xmlSAXParseMemory...
949      d                 pr                  extproc('xmlSAXParseMemory')
950      d                                     like(xmlDocPtr)
951      d  sax                                value like(xmlSAXHandlerPtr)
952      d  buffer                         *   value options(*string)               const char *
953      d  size                               value like(xmlCint)
954      d  recovery                           value like(xmlCint)
955
956      d xmlSAXParseMemoryWithData...
957      d                 pr                  extproc('xmlSAXParseMemoryWithData')
958      d                                     like(xmlDocPtr)
959      d  sax                                value like(xmlSAXHandlerPtr)
960      d  buffer                         *   value options(*string)               const char *
961      d  size                               value like(xmlCint)
962      d  recovery                           value like(xmlCint)
963      d  data                           *   value                                void *
964
965      d xmlSAXParseFile...
966      d                 pr                  extproc('xmlSAXParseFile')
967      d                                     like(xmlDocPtr)
968      d  sax                                value like(xmlSAXHandlerPtr)
969      d  filename                       *   value options(*string)               const char *
970      d  recovery                           value like(xmlCint)
971
972      d xmlSAXParseFileWithData...
973      d                 pr                  extproc('xmlSAXParseFileWithData')
974      d                                     like(xmlDocPtr)
975      d  sax                                value like(xmlSAXHandlerPtr)
976      d  filename                       *   value options(*string)               const char *
977      d  recovery                           value like(xmlCint)
978      d  data                           *   value                                void *
979
980      d xmlSAXParseEntity...
981      d                 pr                  extproc('xmlSAXParseEntity')
982      d                                     like(xmlDocPtr)
983      d  sax                                value like(xmlSAXHandlerPtr)
984      d  filename                       *   value options(*string)               const char *
985
986      d xmlParseEntity...
987      d                 pr                  extproc('xmlParseEntity')
988      d                                     like(xmlDocPtr)
989      d  filename                       *   value options(*string)               const char *
990       /endif                                                                    LIBXML_SAX1_ENABLED
991
992       /if defined(LIBXML_VALID_ENABLED)
993      d xmlSAXParseDTD  pr                  extproc('xmlSAXParseDTD')
994      d                                     like(xmlDtdPtr)
995      d  sax                                value like(xmlSAXHandlerPtr)
996      d  ExternalID                     *   value options(*string)               const xmlChar *
997      d  SystemID                       *   value options(*string)               const xmlChar *
998
999      d xmlParseDTD     pr                  extproc('xmlParseDTD')
1000      d                                     like(xmlDtdPtr)
1001      d  ExternalID                     *   value options(*string)               const xmlChar *
1002      d  SystemID                       *   value options(*string)               const xmlChar *
1003
1004      d xmlIOParseDTD   pr                  extproc('xmlIOParseDTD')
1005      d                                     like(xmlDtdPtr)
1006      d  sax                                value like(xmlSAXHandlerPtr)
1007      d  input                              value like(xmlParserInputBufferPtr)
1008      d  enc                                value like(xmlCharEncoding)
1009       /endif                                                                    LIBXML_VALID_ENABLED
1010
1011       /if defined(LIBXML_SAX1_ENABLED)
1012      d xmlParseBalancedChunkMemory...
1013      d                 pr                  extproc(
1014      d                                      'xmlParseBalancedChunkMemory')
1015      d                                     like(xmlCint)
1016      d  doc                                value like(xmlDocPtr)
1017      d  sax                                value like(xmlSAXHandlerPtr)
1018      d  user_data                      *   value                                void *
1019      d  depth                              value like(xmlCint)
1020      d  user_data                      *   value                                void *
1021      d  string                         *   value options(*string)               const xmlChar *
1022      d  lst                            *   value                                xmlNodePtr *
1023       /endif                                                                    LIBXML_SAX1_ENABLED
1024
1025      d xmlParseInNodeContext...
1026      d                 pr                  extproc('xmlParseInNodeContext')
1027      d                                     like(xmlParserErrors)
1028      d  node                               value like(xmlNodePtr)
1029      d  data                           *   value options(*string)               const char *
1030      d  datalen                            value like(xmlCint)
1031      d  options                            value like(xmlCint)
1032      d  lst                            *   value                                xmlNodePtr *
1033
1034       /if defined(LIBXML_SAX1_ENABLED)
1035      d xmlParseBalancedChunkMemoryRecover...
1036      d                 pr                  extproc(
1037      d                                     'xmlParseBalancedChunkMemoryRecover')
1038      d                                     like(xmlCint)
1039      d  doc                                value like(xmlDocPtr)
1040      d  sax                                value like(xmlSAXHandlerPtr)
1041      d  user_data                      *   value                                void *
1042      d  depth                              value like(xmlCint)
1043      d  string                         *   value options(*string)               const xmlChar *
1044      d  lst                            *   value                                xmlNodePtr *
1045      d  recover                            value like(xmlCint)
1046
1047      d xmlParseExternalEntity...
1048      d                 pr                  extproc('xmlParseExternalEntity')
1049      d                                     like(xmlCint)
1050      d  doc                                value like(xmlDocPtr)
1051      d  sax                                value like(xmlSAXHandlerPtr)
1052      d  user_data                      *   value                                void *
1053      d  depth                              value like(xmlCint)
1054      d  URL                            *   value options(*string)               const xmlChar *
1055      d  ID                             *   value options(*string)               const xmlChar *
1056      d  lst                            *   value                                xmlNodePtr *
1057       /endif                                                                    LIBXML_SAX1_ENABLED
1058
1059      d xmlParseCtxtExternalEntity...
1060      d                 pr                  extproc('xmlParseCtxtExternalEntity')
1061      d                                     like(xmlCint)
1062      d  sax                                value like(xmlSAXHandlerPtr)
1063      d  URL                            *   value options(*string)               const xmlChar *
1064      d  ID                             *   value options(*string)               const xmlChar *
1065      d  lst                            *   value                                xmlNodePtr *
1066
1067       * Parser contexts handling.
1068
1069      d xmlNewParserCtxt...
1070      d                 pr                  extproc('xmlNewParserCtxt')
1071      d                                     like(xmlParserCtxtPtr)
1072
1073      d xmlInitParserCtxt...
1074      d                 pr                  extproc('xmlInitParserCtxt')
1075      d                                     like(xmlCint)
1076      d  ctxt                               value like(xmlParserCtxtPtr)
1077
1078      d xmlClearParserCtxt...
1079      d                 pr                  extproc('xmlClearParserCtxt')
1080      d  ctxt                               value like(xmlParserCtxtPtr)
1081
1082      d xmlFreeParserCtxt...
1083      d                 pr                  extproc('xmlFreeParserCtxt')
1084      d  ctxt                               value like(xmlParserCtxtPtr)
1085
1086       /if defined(LIBXML_SAX1_ENABLED)
1087      d xmlSetupParserForBuffer...
1088      d                 pr                  extproc('xmlSetupParserForBuffer')
1089      d  ctxt                               value like(xmlParserCtxtPtr)
1090      d  buffer                         *   value options(*string)               const xmlChar *
1091      d  filename                       *   value options(*string)               const char *
1092       /endif                                                                    LIBXML_SAX1_ENABLED
1093
1094      d xmlCreateDocParserCtxt...
1095      d                 pr                  extproc('xmlCreateDocParserCtxt')
1096      d                                     like(xmlParserCtxtPtr)
1097      d  cur                            *   value options(*string)               const xmlChar *
1098
1099       /if defined(LIBXML_LEGACY_ENABLED)
1100       * Reading/setting optional parsing features.
1101
1102      d xmlGetFeaturesList...
1103      d                 pr                  extproc('xmlGetFeaturesList')
1104      d                                     like(xmlCint)
1105      d  len                                like(xmlCint)
1106      d  result                         *                                        const char *(*)
1107
1108      d xmlGetFeature   pr                  extproc('xmlGetFeature')
1109      d                                     like(xmlCint)
1110      d  ctxt                               value like(xmlParserCtxtPtr)
1111      d  name                           *   value options(*string)               const char *
1112      d  result                         *   value                                void *
1113
1114      d xmlSetFeature   pr                  extproc('xmlSetFeature')
1115      d                                     like(xmlCint)
1116      d  ctxt                               value like(xmlParserCtxtPtr)
1117      d  name                           *   value options(*string)               const char *
1118      d  result                         *   value                                void *
1119       /endif                                                                    LIBXML_LEGACY_ENABLD
1120
1121       /if defined(LIBXML_PUSH_ENABLED)
1122       * Interfaces for the Push mode.
1123
1124      d xmlCreatePushParserCtxt...
1125      d                 pr                  extproc('xmlCreatePushParserCtxt')
1126      d                                     like(xmlParserCtxtPtr)
1127      d  sax                                value like(xmlSAXHandlerPtr)
1128      d  user_data                      *   value                                void *
1129      d  chunk                          *   value options(*string)               const char *
1130      d  size                               value like(xmlCint)
1131      d  filename                       *   value options(*string)               const char *
1132
1133      d xmlParseChunk   pr                  extproc('xmlParseChunk')
1134      d                                     like(xmlCint)
1135      d  ctxt                               value like(xmlParserCtxtPtr)
1136      d  chunk                          *   value options(*string)               const char *
1137      d  size                               value like(xmlCint)
1138      d  terminate                          value like(xmlCint)
1139       /endif                                                                    LIBXML_PUSH_ENABLED
1140
1141       * Special I/O mode.
1142
1143      d xmlCreateIOParserCtxt...
1144      d                 pr                  extproc('xmlCreateIOParserCtxt')
1145      d                                     like(xmlParserCtxtPtr)
1146      d  sax                                value like(xmlSAXHandlerPtr)
1147      d  user_data                      *   value                                void *
1148      d  ioread                             value like(xmlInputReadCallback)
1149      d  ioclose                            value like(xmlInputCloseCallback)
1150      d  ioctx                          *   value                                void *
1151      d  enc                                value like(xmlCharEncoding)
1152
1153      d xmlNewIOInputStream...
1154      d                 pr                  extproc('xmlNewIOInputStream')
1155      d                                     like(xmlParserInputPtr)
1156      d  ctxt                               value like(xmlParserCtxtPtr)
1157      d  input                              value like(xmlParserInputBufferPtr)
1158      d  enc                                value like(xmlCharEncoding)
1159
1160       * Node infos.
1161
1162      d xmlParserFindNodeInfo...
1163      d                 pr              *   extproc('xmlParserFindNodeInfo')     xmlParserNodeInfo *
1164      d  ctxt                               value like(xmlParserCtxtPtr)
1165      d  node                               value like(xmlNodePtr)               const
1166
1167      d xmlInitNodeInfoSeq...
1168      d                 pr                  extproc('xmlInitNodeInfoSeq')
1169      d  seq                                value like(xmlParserNodeInfoSeqPtr)
1170
1171      d xmlClearNodeInfoSeq...
1172      d                 pr                  extproc('xmlClearNodeInfoSeq')
1173      d  seq                                value like(xmlParserNodeInfoSeqPtr)
1174
1175      d xmlParserFindNodeInfoIndex...
1176      d                 pr                  extproc('xmlParserFindNodeInfoIndex')
1177      d                                     like(xmlCulong)
1178      d  seq                                value like(xmlParserNodeInfoSeqPtr)
1179      d  node                               value like(xmlNodePtr)               const
1180
1181      d xmlParserAddNodeInfo...
1182      d                 pr                  extproc('xmlParserAddNodeInfo')
1183      d  ctxt                               value like(xmlParserCtxtPtr)
1184      d  info                               value like(xmlParserNodeInfoPtr)     const
1185
1186       * External entities handling actually implemented in xmlIO.
1187
1188      d xmlSetExternalEntityLoader...
1189      d                 pr                  extproc('xmlSetExternalEntityLoader')
1190      d  f                                  value like(xmlExternalEntityLoader)
1191
1192      d xmlGetExternalEntityLoader...
1193      d                 pr                  extproc('xmlGetExternalEntityLoader')
1194      d                                     like(xmlExternalEntityLoader)
1195
1196      d xmlLoadExternalEntity...
1197      d                 pr                  extproc('xmlLoadExternalEntity')
1198      d                                     like(xmlParserInputPtr)
1199      d  URL                            *   value options(*string)               const char *
1200      d  ID                             *   value options(*string)               const char *
1201      d  ctxt                               value like(xmlParserCtxtPtr)
1202
1203       * Index lookup, actually implemented in the encoding module
1204
1205      d xmlByteConsumed...
1206      d                 pr                  extproc('xmlByteConsumed')
1207      d                                     like(xmlClong)
1208      d  ctxt                               value like(xmlParserCtxtPtr)
1209
1210       * New set of simpler/more flexible APIs
1211
1212       * xmlParserOption:
1213       *
1214       * This is the set of XML parser options that can be passed down
1215       * to the xmlReadDoc() and similar calls.
1216
1217      d xmlParserOption...
1218      d                 s                   based(######typedef######)
1219      d                                     like(xmlCenum)
1220      d  XML_PARSE_RECOVER...                                                    Recover on errors
1221      d                 c                   X'00000001'
1222      d  XML_PARSE_NOENT...                                                      Substitute entities
1223      d                 c                   X'00000002'
1224      d  XML_PARSE_DTDLOAD...                                                    Load external subset
1225      d                 c                   X'00000004'
1226      d  XML_PARSE_DTDATTR...                                                    Default DTD attrs
1227      d                 c                   X'00000008'
1228      d  XML_PARSE_DTDVALID...                                                   Validate with DTD
1229      d                 c                   X'00000010'
1230      d  XML_PARSE_NOERROR...                                                    Suppress err reports
1231      d                 c                   X'00000020'
1232      d  XML_PARSE_NOWARNING...                                                  Suppr warn reports
1233      d                 c                   X'00000040'
1234      d  XML_PARSE_PEDANTIC...                                                   Pedantic err report
1235      d                 c                   X'00000080'
1236      d  XML_PARSE_NOBLANKS...                                                   Remove blank nodes
1237      d                 c                   X'00000100'
1238      d  XML_PARSE_SAX1...                                                       Use SAX1 internally
1239      d                 c                   X'00000200'
1240      d  XML_PARSE_XINCLUDE...                                                   Impl XInclude subst
1241      d                 c                   X'00000400'
1242      d  XML_PARSE_NONET...                                                      Forbid netwrk access
1243      d                 c                   X'00000800'
1244      d  XML_PARSE_NODICT...                                                     No contxt dict reuse
1245      d                 c                   X'00001000'
1246      d  XML_PARSE_NSCLEAN...                                                    Rmv redndnt ns decls
1247      d                 c                   X'00002000'
1248      d  XML_PARSE_NOCDATA...                                                    CDATA as text nodes
1249      d                 c                   X'00004000'
1250      d  XML_PARSE_NOXINCNODE...                                                 No XINCL START/END
1251      d                 c                   X'00008000'
1252      d  XML_PARSE_COMPACT...                                                    Compact text nodes
1253      d                 c                   X'00010000'
1254      d  XML_PARSE_OLD10...                                                      B4 upd5 compatible
1255      d                 c                   X'00020000'
1256      d  XML_PARSE_NOBASEFIX...                                                  No XINC xml:base fix
1257      d                 c                   X'00040000'
1258      d  XML_PARSE_HUGE...                                                       No parsing limit
1259      d                 c                   X'00080000'
1260      d  XML_PARSE_OLDSAX...                                                     Use SAX2 b4 2.7.0
1261      d                 c                   X'00100000'
1262      d  XML_PARSE_IGNORE_ENC...                                                 No int doc code hint
1263      d                 c                   X'00200000'
1264      d  XML_PARSE_BIG_LINES...                                                  Big line#-->PSVI fld
1265      d                 c                   X'00400000'
1266
1267      d xmlCtxtReset    pr                  extproc('xmlCtxtReset')
1268      d  ctxt                               value like(xmlParserCtxtPtr)
1269
1270      d xmlCtxtResetPush...
1271      d                 pr                  extproc('xmlCtxtResetPush')
1272      d                                     like(xmlCint)
1273      d  ctxt                               value like(xmlParserCtxtPtr)
1274      d  chunk                          *   value options(*string)               const char *
1275      d  size                               value like(xmlCint)
1276      d  filename                       *   value options(*string)               const char *
1277      d  encoding                       *   value options(*string)               const char *
1278
1279      d xmlCtxtUseOptions...
1280      d                 pr                  extproc('xmlCtxtUseOptions')
1281      d                                     like(xmlCint)
1282      d  ctxt                               value like(xmlParserCtxtPtr)
1283      d  options                            value like(xmlCint)
1284
1285      d xmlReadDoc      pr                  extproc('xmlReadDoc')
1286      d                                     like(xmlDocPtr)
1287      d  cur                            *   value options(*string)               const xmlChar *
1288      d  URL                            *   value options(*string)               const char *
1289      d  encoding                       *   value options(*string)               const char *
1290      d  options                            value like(xmlCint)
1291
1292      d xmlReadFile     pr                  extproc('xmlReadFile')
1293      d                                     like(xmlDocPtr)
1294      d  URL                            *   value options(*string)               const char *
1295      d  encoding                       *   value options(*string)               const char *
1296      d  options                            value like(xmlCint)
1297
1298      d xmlReadMemory   pr                  extproc('xmlReadMemory')
1299      d                                     like(xmlDocPtr)
1300      d  buffer                         *   value options(*string)               const char *
1301      d  size                               value like(xmlCint)
1302      d  URL                            *   value options(*string)               const char *
1303      d  encoding                       *   value options(*string)               const char *
1304      d  options                            value like(xmlCint)
1305
1306      d xmlReadFd       pr                  extproc('xmlReadFd')
1307      d                                     like(xmlDocPtr)
1308      d  fd                                 value like(xmlCint)
1309      d  URL                            *   value options(*string)               const char *
1310      d  encoding                       *   value options(*string)               const char *
1311      d  options                            value like(xmlCint)
1312
1313      d xmlReadIO       pr                  extproc('xmlReadIO')
1314      d                                     like(xmlDocPtr)
1315      d  ioread                             value like(xmlInputReadCallback)
1316      d  ioclose                            value like(xmlInputCloseCallback)
1317      d  ioctx                          *   value                                void *
1318      d  URL                            *   value options(*string)               const char *
1319      d  encoding                       *   value options(*string)               const char *
1320      d  options                            value like(xmlCint)
1321
1322      d xmlCtxtReadDoc  pr                  extproc('xmlCtxtReadDoc')
1323      d                                     like(xmlDocPtr)
1324      d  ctxt                               value like(xmlParserCtxtPtr)
1325      d  cur                            *   value options(*string)               const xmlChar *
1326      d  URL                            *   value options(*string)               const char *
1327      d  encoding                       *   value options(*string)               const char *
1328      d  options                            value like(xmlCint)
1329
1330      d xmlCtxtReadFile...
1331      d                 pr                  extproc('xmlCtxtReadFile')
1332      d                                     like(xmlDocPtr)
1333      d  ctxt                               value like(xmlParserCtxtPtr)
1334      d  filename                       *   value options(*string)               const char *
1335      d  encoding                       *   value options(*string)               const char *
1336      d  options                            value like(xmlCint)
1337
1338      d xmlCtxtReadMemory...
1339      d                 pr                  extproc('xmlCtxtReadMemory')
1340      d                                     like(xmlDocPtr)
1341      d  ctxt                               value like(xmlParserCtxtPtr)
1342      d  buffer                         *   value options(*string)               const char *
1343      d  size                               value like(xmlCint)
1344      d  URL                            *   value options(*string)               const char *
1345      d  encoding                       *   value options(*string)               const char *
1346      d  options                            value like(xmlCint)
1347
1348      d xmlCtxtReadFd   pr                  extproc('xmlCtxtReadFd')
1349      d                                     like(xmlDocPtr)
1350      d  ctxt                               value like(xmlParserCtxtPtr)
1351      d  fd                                 value like(xmlCint)
1352      d  URL                            *   value options(*string)               const char *
1353      d  encoding                       *   value options(*string)               const char *
1354      d  options                            value like(xmlCint)
1355
1356      d xmlCtxtReadIO   pr                  extproc('xmlCtxtReadIO')
1357      d                                     like(xmlDocPtr)
1358      d  ctxt                               value like(xmlParserCtxtPtr)
1359      d  ioread                             value like(xmlInputReadCallback)
1360      d  ioclose                            value like(xmlInputCloseCallback)
1361      d  ioctx                          *   value                                void *
1362      d  URL                            *   value options(*string)               const char *
1363      d  encoding                       *   value options(*string)               const char *
1364      d  options                            value like(xmlCint)
1365
1366       * Library wide options
1367
1368       * xmlFeature:
1369       *
1370       * Used to examine the existance of features that can be enabled
1371       * or disabled at compile-time.
1372       * They used to be called XML_FEATURE_xxx but this clashed with Expat
1373
1374      d xmlFeature      s                   based(######typedef######)
1375      d                                     like(xmlCenum)
1376      d  XML_WITH_THREAD...
1377      d                 c                   1
1378      d  XML_WITH_TREE  c                   2
1379      d  XML_WITH_OUTPUT...
1380      d                 c                   3
1381      d  XML_WITH_PUSH  c                   4
1382      d  XML_WITH_READER...
1383      d                 c                   5
1384      d  XML_WITH_PATTERN...
1385      d                 c                   6
1386      d  XML_WITH_WRITER...
1387      d                 c                   7
1388      d  XML_WITH_SAX1  c                   8
1389      d  XML_WITH_FTP   c                   9
1390      d  XML_WITH_HTTP  c                   10
1391      d  XML_WITH_VALID...
1392      d                 c                   11
1393      d  XML_WITH_HTML  c                   12
1394      d  XML_WITH_LEGACY...
1395      d                 c                   13
1396      d  XML_WITH_C14N  c                   14
1397      d  XML_WITH_CATALOG...
1398      d                 c                   15
1399      d  XML_WITH_XPATH...
1400      d                 c                   16
1401      d  XML_WITH_XPTR  c                   17
1402      d  XML_WITH_XINCLUDE...
1403      d                 c                   18
1404      d  XML_WITH_ICONV...
1405      d                 c                   19
1406      d  XML_WITH_ISO8859X...
1407      d                 c                   20
1408      d  XML_WITH_UNICODE...
1409      d                 c                   21
1410      d  XML_WITH_REGEXP...
1411      d                 c                   22
1412      d  XML_WITH_AUTOMATA...
1413      d                 c                   23
1414      d  XML_WITH_EXPR  c                   24
1415      d  XML_WITH_SCHEMAS...
1416      d                 c                   25
1417      d  XML_WITH_SCHEMATRON...
1418      d                 c                   26
1419      d  XML_WITH_MODULES...
1420      d                 c                   27
1421      d  XML_WITH_DEBUG...
1422      d                 c                   28
1423      d  XML_WITH_DEBUG_MEM...
1424      d                 c                   29
1425      d  XML_WITH_DEBUG_RUN...
1426      d                 c                   30
1427      d  XML_WITH_ZLIB  c                   31
1428      d  XML_WITH_ICU   c                   32
1429      d  XML_WITH_LZMA  c                   33
1430      d  XML_WITH_NONE  c                   99999
1431
1432      d xmlHasFeature   pr                  extproc('xmlHasFeature')
1433      d                                     like(xmlCint)
1434      d  feature                            value like(xmlFeature)
1435
1436       /endif                                                                    XML_PARSER_H__