1 * Summary: the XMLReader implementation
2 * Description: API of the XML streaming API based on C# interfaces.
4 * Copy: See Copyright for the status of this software.
6 * Author: Patrick Monnerat <pm@datasphere.ch>, DATASPHERE S.A.
8 /if not defined(XML_XMLREADER_H__)
9 /define XML_XMLREADER_H__
11 /include "libxmlrpg/xmlversion"
12 /include "libxmlrpg/tree"
13 /include "libxmlrpg/xmlIO"
15 /if defined(LIBXML_SCHEMAS_ENABLED)
16 /include "libxmlrpg/relaxng"
17 /include "libxmlrpg/xmlschemas"
20 * xmlParserSeverities:
22 * How severe an error callback is when the per-reader error callback API
25 d xmlParserSeverities...
26 d s 10i 0 based(######typedef######) enum
27 d XML_PARSER_SEVERITY_VALIDITY_WARNING...
29 d XML_PARSER_SEVERITY_VALIDITY_ERROR...
31 d XML_PARSER_SEVERITY_WARNING...
33 d XML_PARSER_SEVERITY_ERROR...
36 /if defined(LIBXML_READER_ENABLED)
40 * Internal state values for the reader.
42 d xmlTextReaderMode...
43 d s 10i 0 based(######typedef######) enum
44 d XML_TEXTREADER_MODE_INITIAL...
46 d XML_TEXTREADER_MODE_INTERACTIVE...
48 d XML_TEXTREADER_MODE_ERROR...
50 d XML_TEXTREADER_MODE_EOF...
52 d XML_TEXTREADER_MODE_CLOSED...
54 d XML_TEXTREADER_MODE_READING...
57 * xmlParserProperties:
59 * Some common options to use with xmlTextReaderSetParserProp, but it
60 * is better to use xmlParserOption and the xmlReaderNewxxx and
61 * xmlReaderForxxx APIs now.
63 d xmlParserProperties...
64 d s 10i 0 based(######typedef######) enum
65 d XML_PARSER_LOADDTD...
67 d XML_PARSER_DEFAULTATTRS...
69 d XML_PARSER_VALIDATE...
71 d XML_PARSER_SUBST_ENTITIES...
76 * Predefined constants for the different types of nodes.
78 d xmlReaderTypes s 10i 0 based(######typedef######) enum
79 d XML_READER_TYPE_NONE...
81 d XML_READER_TYPE_ELEMENT...
83 d XML_READER_TYPE_ATTRIBUTE...
85 d XML_READER_TYPE_TEXT...
87 d XML_READER_TYPE_CDATA...
89 d XML_READER_TYPE_ENTITY_REFERENCE...
91 d XML_READER_TYPE_ENTITY...
93 d XML_READER_TYPE_PROCESSING_INSTRUCTION...
95 d XML_READER_TYPE_COMMENT...
97 d XML_READER_TYPE_DOCUMENT...
99 d XML_READER_TYPE_DOCUMENT_TYPE...
101 d XML_READER_TYPE_DOCUMENT_FRAGMENT...
103 d XML_READER_TYPE_NOTATION...
105 d XML_READER_TYPE_WHITESPACE...
107 d XML_READER_TYPE_SIGNIFICANT_WHITESPACE...
109 d XML_READER_TYPE_END_ELEMENT...
111 d XML_READER_TYPE_END_ENTITY...
113 d XML_READER_TYPE_XML_DECLARATION...
118 * Pointer to an xmlReader context.
120 d xmlTextReaderPtr...
121 d s * based(######typedef######)
123 * Constructors & Destructor
125 d xmlNewTextReader...
126 d pr extproc('xmlNewTextReader')
127 d like(xmlTextReaderPtr)
128 d input value like(xmlParserInputBufferPtr)
129 d URI * value options(*string) const char *
131 d xmlNewTextReaderFilename...
132 d pr extproc('xmlNewTextReaderFilename')
133 d like(xmlTextReaderPtr)
134 d URI * value options(*string) const char *
136 d xmlFreeTextReader...
137 d pr extproc('xmlFreeTextReader')
138 d reader value like(xmlTextReaderPtr)
140 d xmlTextReaderSetup...
141 d pr 10i 0 extproc('xmlTextReaderSetup')
142 d reader value like(xmlTextReaderPtr)
143 d input value like(xmlParserInputBufferPtr)
144 d URL * value options(*string) const char *
145 d encoding * value options(*string) const char *
146 d options 10i 0 value
150 d xmlTextReaderRead...
151 d pr 10i 0 extproc('xmlTextReaderRead')
152 d reader value like(xmlTextReaderPtr)
154 /if defined(LIBXML_WRITER_ENABLED)
155 d xmlTextReaderReadInnerXml...
156 d pr * extproc('xmlTextReaderReadInnerXml') xmlChar *
157 d reader value like(xmlTextReaderPtr)
159 d xmlTextReaderReadOuterXml...
160 d pr * extproc('xmlTextReaderReadOuterXml') xmlChar *
161 d reader value like(xmlTextReaderPtr)
164 d xmlTextReaderReadString...
165 d pr * extproc('xmlTextReaderReadString') xmlChar *
166 d reader value like(xmlTextReaderPtr)
168 d xmlTextReaderReadAttributeValue...
170 d 'xmlTextReaderReadAttributeValue')
171 d reader value like(xmlTextReaderPtr)
173 * Attributes of the node
175 d xmlTextReaderAttributeCount...
177 d 'xmlTextReaderAttributeCount')
178 d reader value like(xmlTextReaderPtr)
180 d xmlTextReaderDepth...
181 d pr 10i 0 extproc('xmlTextReaderDepth')
182 d reader value like(xmlTextReaderPtr)
184 d xmlTextReaderHasAttributes...
185 d pr 10i 0 extproc('xmlTextReaderHasAttributes')
186 d reader value like(xmlTextReaderPtr)
188 d xmlTextReaderHasValue...
189 d pr 10i 0 extproc('xmlTextReaderHasValue')
190 d reader value like(xmlTextReaderPtr)
192 d xmlTextReaderIsDefault...
193 d pr 10i 0 extproc('xmlTextReaderIsDefault')
194 d reader value like(xmlTextReaderPtr)
196 d xmlTextReaderIsEmptyElement...
198 d 'xmlTextReaderIsEmptyElement')
199 d reader value like(xmlTextReaderPtr)
201 d xmlTextReaderNodeType...
202 d pr 10i 0 extproc('xmlTextReaderNodeType')
203 d reader value like(xmlTextReaderPtr)
205 d xmlTextReaderQuoteChar...
206 d pr 10i 0 extproc('xmlTextReaderQuoteChar')
207 d reader value like(xmlTextReaderPtr)
209 d xmlTextReaderReadState...
210 d pr 10i 0 extproc('xmlTextReaderReadState')
211 d reader value like(xmlTextReaderPtr)
213 d xmlTextReaderIsNamespaceDecl...
215 d 'xmlTextReaderIsNamespaceDecl')
216 d reader value like(xmlTextReaderPtr)
218 d xmlTextReaderConstBaseUri...
219 d pr * extproc('xmlTextReaderConstBaseUri') const xmlChar *
220 d reader value like(xmlTextReaderPtr)
222 d xmlTextReaderConstLocalName...
223 d pr * extproc( const xmlChar *
224 d 'xmlTextReaderConstLocalName')
225 d reader value like(xmlTextReaderPtr)
227 d xmlTextReaderConstName...
228 d pr * extproc('xmlTextReaderConstName') const xmlChar *
229 d reader value like(xmlTextReaderPtr)
231 d xmlTextReaderConstNamespaceUri...
232 d pr * extproc( const xmlChar *
233 d 'xmlTextReaderConstNamespaceUri')
234 d reader value like(xmlTextReaderPtr)
236 d xmlTextReaderConstPrefix...
237 d pr * extproc('xmlTextReaderConstPrefix') const xmlChar *
238 d reader value like(xmlTextReaderPtr)
240 d xmlTextReaderConstXmlLang...
241 d pr * extproc('xmlTextReaderConstXmlLang') const xmlChar *
242 d reader value like(xmlTextReaderPtr)
244 d xmlTextReaderConstString...
245 d pr * extproc('xmlTextReaderConstString') const xmlChar *
246 d reader value like(xmlTextReaderPtr)
247 d str * value options(*string) const xmlChar *
249 d xmlTextReaderConstValue...
250 d pr * extproc('xmlTextReaderConstValue') const xmlChar *
251 d reader value like(xmlTextReaderPtr)
253 * use the Const version of the routine for
254 * better performance and simpler code
256 d xmlTextReaderBaseUri...
257 d pr * extproc('xmlTextReaderBaseUri') xmlChar *
258 d reader value like(xmlTextReaderPtr)
260 d xmlTextReaderLocalName...
261 d pr * extproc('xmlTextReaderLocalName') xmlChar *
262 d reader value like(xmlTextReaderPtr)
264 d xmlTextReaderName...
265 d pr * extproc('xmlTextReaderName') xmlChar *
266 d reader value like(xmlTextReaderPtr)
268 d xmlTextReaderNamespaceUri...
269 d pr * extproc('xmlTextReaderNamespaceUri') xmlChar *
270 d reader value like(xmlTextReaderPtr)
272 d xmlTextReaderPrefix...
273 d pr * extproc('xmlTextReaderPrefix') xmlChar *
274 d reader value like(xmlTextReaderPtr)
276 d xmlTextReaderXmlLang...
277 d pr * extproc('xmlTextReaderXmlLang') xmlChar *
278 d reader value like(xmlTextReaderPtr)
280 d xmlTextReaderValue...
281 d pr * extproc('xmlTextReaderValue') xmlChar *
282 d reader value like(xmlTextReaderPtr)
284 * Methods of the XmlTextReader
286 d xmlTextReaderClose...
287 d pr 10i 0 extproc('xmlTextReaderClose')
288 d reader value like(xmlTextReaderPtr)
290 d xmlTextReaderGetAttributeNo...
291 d pr * extproc( xmlChar *
292 d 'xmlTextReaderGetAttributeNo')
293 d reader value like(xmlTextReaderPtr)
296 d xmlTextReaderGetAttribute...
297 d pr * extproc('xmlTextReaderGetAttribute') xmlChar *
298 d reader value like(xmlTextReaderPtr)
299 d name * value options(*string) const xmlChar *
301 d xmlTextReaderGetAttributeNs...
302 d pr * extproc( xmlChar *
303 d 'xmlTextReaderGetAttributeNs')
304 d reader value like(xmlTextReaderPtr)
305 d localName * value options(*string) const xmlChar *
306 d namespaceURI * value options(*string) const xmlChar *
308 d xmlTextReaderGetRemainder...
309 d pr extproc('xmlTextReaderGetRemainder')
310 d like(xmlParserInputBufferPtr)
311 d reader value like(xmlTextReaderPtr)
313 d xmlTextReaderLookupNamespace...
314 d pr * extproc( xmlChar *
315 d 'xmlTextReaderLookupNamespace')
316 d reader value like(xmlTextReaderPtr)
317 d prefix * value options(*string) const xmlChar *
319 d xmlTextReaderMoveToAttributeNo...
321 d 'xmlTextReaderMoveToAttributeNo')
322 d reader value like(xmlTextReaderPtr)
325 d xmlTextReaderMoveToAttribute...
327 d 'xmlTextReaderMoveToAttribute')
328 d reader value like(xmlTextReaderPtr)
329 d name * value options(*string) const xmlChar *
331 d xmlTextReaderMoveToAttributeNs...
333 d 'xmlTextReaderMoveToAttributeNs')
334 d reader value like(xmlTextReaderPtr)
335 d localName * value options(*string) const xmlChar *
336 d namespaceURI * value options(*string) const xmlChar *
338 d xmlTextReaderMoveToFirstAttribute...
340 d 'xmlTextReaderMoveToFirstAttribute')
341 d reader value like(xmlTextReaderPtr)
343 d xmlTextReaderMoveToNextAttribute...
345 d 'xmlTextReaderMoveToNextAttribute')
346 d reader value like(xmlTextReaderPtr)
348 d xmlTextReaderMoveToElement...
349 d pr 10i 0 extproc('xmlTextReaderMoveToElement')
350 d reader value like(xmlTextReaderPtr)
352 d xmlTextReaderNormalization...
353 d pr 10i 0 extproc('xmlTextReaderNormalization')
354 d reader value like(xmlTextReaderPtr)
356 d xmlTextReaderConstEncoding...
357 d pr * extproc('xmlTextReaderConstEncoding')const xmlChar *
358 d reader value like(xmlTextReaderPtr)
362 d xmlTextReaderSetParserProp...
363 d pr 10i 0 extproc('xmlTextReaderSetParserProp')
364 d reader value like(xmlTextReaderPtr)
368 d xmlTextReaderGetParserProp...
369 d pr 10i 0 extproc('xmlTextReaderGetParserProp')
370 d reader value like(xmlTextReaderPtr)
373 d xmlTextReaderCurrentNode...
374 d pr extproc('xmlTextReaderCurrentNode')
376 d reader value like(xmlTextReaderPtr)
378 d xmlTextReaderGetParserLineNumber...
380 d 'xmlTextReaderGetParserLineNumber')
381 d reader value like(xmlTextReaderPtr)
383 d xmlTextReaderGetParserColumnNumber...
385 d 'xmlTextReaderGetParserColumnNumber')
386 d reader value like(xmlTextReaderPtr)
388 d xmlTextReaderPreserve...
389 d pr extproc('xmlTextReaderPreserve')
391 d reader value like(xmlTextReaderPtr)
393 /if defined(LIBXML_PATTERN_ENABLED)
394 d xmlTextReaderPreservePattern...
396 d 'xmlTextReaderPreservePattern')
397 d reader value like(xmlTextReaderPtr)
398 d pattern * value options(*string) const xmlChar *
399 d namespaces * const xmlChar *(*)
400 /endif LIBXML_PATTERN_ENBLD
402 d xmlTextReaderCurrentDoc...
403 d pr extproc('xmlTextReaderCurrentDoc')
405 d reader value like(xmlTextReaderPtr)
407 d xmlTextReaderExpand...
408 d pr extproc('xmlTextReaderExpand')
410 d reader value like(xmlTextReaderPtr)
412 d xmlTextReaderNext...
413 d pr 10i 0 extproc('xmlTextReaderNext')
414 d reader value like(xmlTextReaderPtr)
416 d xmlTextReaderNextSibling...
417 d pr 10i 0 extproc('xmlTextReaderNextSibling')
418 d reader value like(xmlTextReaderPtr)
420 d xmlTextReaderIsValid...
421 d pr 10i 0 extproc('xmlTextReaderIsValid')
422 d reader value like(xmlTextReaderPtr)
424 /if defined(LIBXML_SCHEMAS_ENABLED)
425 d xmlTextReaderRelaxNGValidate...
427 d 'xmlTextReaderRelaxNGValidate')
428 d reader value like(xmlTextReaderPtr)
429 d rng * value options(*string) const char *
431 d xmlTextReaderRelaxNGValidateCtxt...
433 d 'xmlTextReaderRelaxNGValidateCtxt')
434 d reader value like(xmlTextReaderPtr)
435 d ctxt value like(xmlRelaxNGValidCtxtPtr)
436 d options 10i 0 value
438 d xmlTextReaderRelaxNGSetSchema...
440 d 'xmlTextReaderRelaxNGSetSchema')
441 d reader value like(xmlTextReaderPtr)
442 d schema value like(xmlRelaxNGPtr)
444 d xmlTextReaderSchemaValidate...
446 d 'xmlTextReaderSchemaValidate')
447 d reader value like(xmlTextReaderPtr)
448 d xsd * value options(*string) const char *
450 d xmlTextReaderSchemaValidateCtxt...
452 d 'xmlTextReaderSchemaValidateCtxt')
453 d reader value like(xmlTextReaderPtr)
454 d ctxt value like(xmlSchemaValidCtxtPtr)
455 d options 10i 0 value
457 d xmlTextReaderSetSchema...
458 d pr 10i 0 extproc('xmlTextReaderSetSchema')
459 d reader value like(xmlTextReaderPtr)
460 d schema value like(xmlSchemaPtr)
463 d xmlTextReaderConstXmlVersion...
464 d pr * extproc( const xmlChar *
465 d 'xmlTextReaderConstXmlVersion')
466 d reader value like(xmlTextReaderPtr)
468 d xmlTextReaderStandalone...
469 d pr 10i 0 extproc('xmlTextReaderStandalone')
470 d reader value like(xmlTextReaderPtr)
474 d xmlTextReaderByteConsumed...
475 d pr 20i 0 extproc('xmlTextReaderByteConsumed')
476 d reader value like(xmlTextReaderPtr)
478 * New more complete APIs for simpler creation and reuse of readers
481 d pr extproc('xmlReaderWalker')
482 d like(xmlTextReaderPtr)
483 d doc value like(xmlDocPtr)
486 d pr extproc('xmlReaderForDoc')
487 d like(xmlTextReaderPtr)
488 d cur * value options(*string) const xmlChar *
489 d URL * value options(*string) const char *
490 d encoding * value options(*string) const char *
491 d options 10i 0 value
493 d xmlReaderForFile...
494 d pr extproc('xmlReaderForFile')
495 d like(xmlTextReaderPtr)
496 d filename * value options(*string) const char *
497 d encoding * value options(*string) const char *
498 d options 10i 0 value
500 d xmlReaderForMemory...
501 d pr extproc('xmlReaderForMemory')
502 d like(xmlTextReaderPtr)
503 d buffer * value options(*string) const char *
505 d URL * value options(*string) const char *
506 d encoding * value options(*string) const char *
507 d options 10i 0 value
509 d xmlReaderForFd pr extproc('xmlReaderForFd')
510 d like(xmlTextReaderPtr)
512 d URL * value options(*string) const char *
513 d encoding * value options(*string) const char *
514 d options 10i 0 value
516 d xmlReaderForIO pr extproc('xmlReaderForIO')
517 d like(xmlTextReaderPtr)
518 d ioread value like(xmlInputReadCallback)
519 d ioclose value like(xmlInputCloseCallback)
520 d ioctx * value void *
521 d URL * value options(*string) const char *
522 d encoding * value options(*string) const char *
523 d options 10i 0 value
525 d xmlReaderNewWalker...
526 d pr 10i 0 extproc('xmlReaderNewWalker')
527 d reader value like(xmlTextReaderPtr)
528 d doc value like(xmlDocPtr)
531 d pr 10i 0 extproc('xmlReaderNewDoc')
532 d reader value like(xmlTextReaderPtr)
533 d cur * value options(*string) const xmlChar *
534 d URL * value options(*string) const char *
535 d encoding * value options(*string) const char *
536 d options 10i 0 value
538 d xmlReaderNewFile...
539 d pr 10i 0 extproc('xmlReaderNewFile')
540 d reader value like(xmlTextReaderPtr)
541 d filename * value options(*string) const char *
542 d encoding * value options(*string) const char *
543 d options 10i 0 value
545 d xmlReaderNewMemory...
546 d pr 10i 0 extproc('xmlReaderNewMemory')
547 d reader value like(xmlTextReaderPtr)
548 d buffer * value options(*string) const char *
550 d URL * value options(*string) const char *
551 d encoding * value options(*string) const char *
552 d options 10i 0 value
554 d xmlReaderNewFd pr 10i 0 extproc('xmlReaderNewFd')
555 d reader value like(xmlTextReaderPtr)
557 d URL * value options(*string) const char *
558 d encoding * value options(*string) const char *
559 d options 10i 0 value
561 d xmlReaderNewIO pr 10i 0 extproc('xmlReaderNewIO')
562 d reader value like(xmlTextReaderPtr)
563 d ioread value like(xmlInputReadCallback)
564 d ioclose value like(xmlInputCloseCallback)
565 d ioctx * value void *
566 d URL * value options(*string) const char *
567 d encoding * value options(*string) const char *
568 d options 10i 0 value
570 * Error handling extensions
572 d xmlTextReaderLocatorPtr...
573 d s * based(######typedef######) void *
575 * xmlTextReaderErrorFunc:
576 * @arg: the user argument
578 * @severity: the severity of the error
579 * @locator: a locator indicating where the error occured
581 * Signature of an error callback from a reader parser
583 d xmlTextReaderErrorFunc...
584 d s * based(######typedef######)
587 d xmlTextReaderLocatorLineNumber...
589 d 'xmlTextReaderLocatorLineNumber')
590 d locator value like(xmlTextReaderLocatorPtr)
592 d xmlTextReaderLocatorBaseURI...
593 d pr * extproc( xmlChar *
594 d 'xmlTextReaderLocatorBaseURI')
595 d locator value like(xmlTextReaderLocatorPtr)
597 d xmlTextReaderSetErrorHandler...
599 d 'xmlTextReaderSetErrorHandler')
600 d reader value like(xmlTextReaderPtr)
601 d f value like(xmlTextReaderErrorFunc)
604 d xmlTextReaderSetStructuredErrorHandler...
605 d pr extproc('xmlTextReaderSetStructuredE-
607 d reader value like(xmlTextReaderPtr)
608 d f value like(xmlStructuredErrorFunc)
611 d xmlTextReaderGetErrorHandler...
613 d 'xmlTextReaderGetErrorHandler')
614 d reader value like(xmlTextReaderPtr)
615 d f like(xmlTextReaderErrorFunc)
618 /endif LIBXML_READER_ENABLD
619 /endif XML_XMLREADER_H__