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/xmlTypesC"
13 /include "libxmlrpg/tree"
14 /include "libxmlrpg/xmlIO"
16 /if defined(LIBXML_SCHEMAS_ENABLED)
17 /include "libxmlrpg/relaxng"
18 /include "libxmlrpg/xmlschemas"
21 * xmlParserSeverities:
23 * How severe an error callback is when the per-reader error callback API
26 d xmlParserSeverities...
27 d s based(######typedef######)
29 d XML_PARSER_SEVERITY_VALIDITY_WARNING...
31 d XML_PARSER_SEVERITY_VALIDITY_ERROR...
33 d XML_PARSER_SEVERITY_WARNING...
35 d XML_PARSER_SEVERITY_ERROR...
38 /if defined(LIBXML_READER_ENABLED)
42 * Internal state values for the reader.
44 d xmlTextReaderMode...
45 d s based(######typedef######)
47 d XML_TEXTREADER_MODE_INITIAL...
49 d XML_TEXTREADER_MODE_INTERACTIVE...
51 d XML_TEXTREADER_MODE_ERROR...
53 d XML_TEXTREADER_MODE_EOF...
55 d XML_TEXTREADER_MODE_CLOSED...
57 d XML_TEXTREADER_MODE_READING...
60 * xmlParserProperties:
62 * Some common options to use with xmlTextReaderSetParserProp, but it
63 * is better to use xmlParserOption and the xmlReaderNewxxx and
64 * xmlReaderForxxx APIs now.
66 d xmlParserProperties...
67 d s based(######typedef######)
69 d XML_PARSER_LOADDTD...
71 d XML_PARSER_DEFAULTATTRS...
73 d XML_PARSER_VALIDATE...
75 d XML_PARSER_SUBST_ENTITIES...
80 * Predefined constants for the different types of nodes.
82 d xmlReaderTypes s based(######typedef######)
84 d XML_READER_TYPE_NONE...
86 d XML_READER_TYPE_ELEMENT...
88 d XML_READER_TYPE_ATTRIBUTE...
90 d XML_READER_TYPE_TEXT...
92 d XML_READER_TYPE_CDATA...
94 d XML_READER_TYPE_ENTITY_REFERENCE...
96 d XML_READER_TYPE_ENTITY...
98 d XML_READER_TYPE_PROCESSING_INSTRUCTION...
100 d XML_READER_TYPE_COMMENT...
102 d XML_READER_TYPE_DOCUMENT...
104 d XML_READER_TYPE_DOCUMENT_TYPE...
106 d XML_READER_TYPE_DOCUMENT_FRAGMENT...
108 d XML_READER_TYPE_NOTATION...
110 d XML_READER_TYPE_WHITESPACE...
112 d XML_READER_TYPE_SIGNIFICANT_WHITESPACE...
114 d XML_READER_TYPE_END_ELEMENT...
116 d XML_READER_TYPE_END_ENTITY...
118 d XML_READER_TYPE_XML_DECLARATION...
123 * Pointer to an xmlReader context.
125 d xmlTextReaderPtr...
126 d s * based(######typedef######)
128 * Constructors & Destructor
130 d xmlNewTextReader...
131 d pr extproc('xmlNewTextReader')
132 d like(xmlTextReaderPtr)
133 d input value like(xmlParserInputBufferPtr)
134 d URI * value options(*string) const char *
136 d xmlNewTextReaderFilename...
137 d pr extproc('xmlNewTextReaderFilename')
138 d like(xmlTextReaderPtr)
139 d URI * value options(*string) const char *
141 d xmlFreeTextReader...
142 d pr extproc('xmlFreeTextReader')
143 d reader value like(xmlTextReaderPtr)
145 d xmlTextReaderSetup...
146 d pr extproc('xmlTextReaderSetup')
148 d reader value like(xmlTextReaderPtr)
149 d input value like(xmlParserInputBufferPtr)
150 d URL * value options(*string) const char *
151 d encoding * value options(*string) const char *
152 d options value like(xmlCint)
156 d xmlTextReaderRead...
157 d pr extproc('xmlTextReaderRead')
159 d reader value like(xmlTextReaderPtr)
161 /if defined(LIBXML_WRITER_ENABLED)
162 d xmlTextReaderReadInnerXml...
163 d pr * extproc('xmlTextReaderReadInnerXml') xmlChar *
164 d reader value like(xmlTextReaderPtr)
166 d xmlTextReaderReadOuterXml...
167 d pr * extproc('xmlTextReaderReadOuterXml') xmlChar *
168 d reader value like(xmlTextReaderPtr)
171 d xmlTextReaderReadString...
172 d pr * extproc('xmlTextReaderReadString') xmlChar *
173 d reader value like(xmlTextReaderPtr)
175 d xmlTextReaderReadAttributeValue...
177 d 'xmlTextReaderReadAttributeValue')
179 d reader value like(xmlTextReaderPtr)
181 * Attributes of the node
183 d xmlTextReaderAttributeCount...
185 d 'xmlTextReaderAttributeCount')
187 d reader value like(xmlTextReaderPtr)
189 d xmlTextReaderDepth...
190 d pr extproc('xmlTextReaderDepth')
192 d reader value like(xmlTextReaderPtr)
194 d xmlTextReaderHasAttributes...
195 d pr extproc('xmlTextReaderHasAttributes')
197 d reader value like(xmlTextReaderPtr)
199 d xmlTextReaderHasValue...
200 d pr extproc('xmlTextReaderHasValue')
202 d reader value like(xmlTextReaderPtr)
204 d xmlTextReaderIsDefault...
205 d pr extproc('xmlTextReaderIsDefault')
207 d reader value like(xmlTextReaderPtr)
209 d xmlTextReaderIsEmptyElement...
211 d 'xmlTextReaderIsEmptyElement')
213 d reader value like(xmlTextReaderPtr)
215 d xmlTextReaderNodeType...
216 d pr extproc('xmlTextReaderNodeType')
218 d reader value like(xmlTextReaderPtr)
220 d xmlTextReaderQuoteChar...
221 d pr extproc('xmlTextReaderQuoteChar')
223 d reader value like(xmlTextReaderPtr)
225 d xmlTextReaderReadState...
226 d pr extproc('xmlTextReaderReadState')
228 d reader value like(xmlTextReaderPtr)
230 d xmlTextReaderIsNamespaceDecl...
232 d 'xmlTextReaderIsNamespaceDecl')
234 d reader value like(xmlTextReaderPtr)
236 d xmlTextReaderConstBaseUri...
237 d pr * extproc('xmlTextReaderConstBaseUri') const xmlChar *
238 d reader value like(xmlTextReaderPtr)
240 d xmlTextReaderConstLocalName...
241 d pr * extproc( const xmlChar *
242 d 'xmlTextReaderConstLocalName')
243 d reader value like(xmlTextReaderPtr)
245 d xmlTextReaderConstName...
246 d pr * extproc('xmlTextReaderConstName') const xmlChar *
247 d reader value like(xmlTextReaderPtr)
249 d xmlTextReaderConstNamespaceUri...
250 d pr * extproc( const xmlChar *
251 d 'xmlTextReaderConstNamespaceUri')
252 d reader value like(xmlTextReaderPtr)
254 d xmlTextReaderConstPrefix...
255 d pr * extproc('xmlTextReaderConstPrefix') const xmlChar *
256 d reader value like(xmlTextReaderPtr)
258 d xmlTextReaderConstXmlLang...
259 d pr * extproc('xmlTextReaderConstXmlLang') const xmlChar *
260 d reader value like(xmlTextReaderPtr)
262 d xmlTextReaderConstString...
263 d pr * extproc('xmlTextReaderConstString') const xmlChar *
264 d reader value like(xmlTextReaderPtr)
265 d str * value options(*string) const xmlChar *
267 d xmlTextReaderConstValue...
268 d pr * extproc('xmlTextReaderConstValue') const xmlChar *
269 d reader value like(xmlTextReaderPtr)
271 * use the Const version of the routine for
272 * better performance and simpler code
274 d xmlTextReaderBaseUri...
275 d pr * extproc('xmlTextReaderBaseUri') xmlChar *
276 d reader value like(xmlTextReaderPtr)
278 d xmlTextReaderLocalName...
279 d pr * extproc('xmlTextReaderLocalName') xmlChar *
280 d reader value like(xmlTextReaderPtr)
282 d xmlTextReaderName...
283 d pr * extproc('xmlTextReaderName') xmlChar *
284 d reader value like(xmlTextReaderPtr)
286 d xmlTextReaderNamespaceUri...
287 d pr * extproc('xmlTextReaderNamespaceUri') xmlChar *
288 d reader value like(xmlTextReaderPtr)
290 d xmlTextReaderPrefix...
291 d pr * extproc('xmlTextReaderPrefix') xmlChar *
292 d reader value like(xmlTextReaderPtr)
294 d xmlTextReaderXmlLang...
295 d pr * extproc('xmlTextReaderXmlLang') xmlChar *
296 d reader value like(xmlTextReaderPtr)
298 d xmlTextReaderValue...
299 d pr * extproc('xmlTextReaderValue') xmlChar *
300 d reader value like(xmlTextReaderPtr)
302 * Methods of the XmlTextReader
304 d xmlTextReaderClose...
305 d pr extproc('xmlTextReaderClose')
307 d reader value like(xmlTextReaderPtr)
309 d xmlTextReaderGetAttributeNo...
310 d pr * extproc( xmlChar *
311 d 'xmlTextReaderGetAttributeNo')
312 d reader value like(xmlTextReaderPtr)
313 d no value like(xmlCint)
315 d xmlTextReaderGetAttribute...
316 d pr * extproc('xmlTextReaderGetAttribute') xmlChar *
317 d reader value like(xmlTextReaderPtr)
318 d name * value options(*string) const xmlChar *
320 d xmlTextReaderGetAttributeNs...
321 d pr * extproc( xmlChar *
322 d 'xmlTextReaderGetAttributeNs')
323 d reader value like(xmlTextReaderPtr)
324 d localName * value options(*string) const xmlChar *
325 d namespaceURI * value options(*string) const xmlChar *
327 d xmlTextReaderGetRemainder...
328 d pr extproc('xmlTextReaderGetRemainder')
329 d like(xmlParserInputBufferPtr)
330 d reader value like(xmlTextReaderPtr)
332 d xmlTextReaderLookupNamespace...
333 d pr * extproc( xmlChar *
334 d 'xmlTextReaderLookupNamespace')
335 d reader value like(xmlTextReaderPtr)
336 d prefix * value options(*string) const xmlChar *
338 d xmlTextReaderMoveToAttributeNo...
340 d 'xmlTextReaderMoveToAttributeNo')
342 d reader value like(xmlTextReaderPtr)
343 d no value like(xmlCint)
345 d xmlTextReaderMoveToAttribute...
347 d 'xmlTextReaderMoveToAttribute')
349 d reader value like(xmlTextReaderPtr)
350 d name * value options(*string) const xmlChar *
352 d xmlTextReaderMoveToAttributeNs...
354 d 'xmlTextReaderMoveToAttributeNs')
356 d reader value like(xmlTextReaderPtr)
357 d localName * value options(*string) const xmlChar *
358 d namespaceURI * value options(*string) const xmlChar *
360 d xmlTextReaderMoveToFirstAttribute...
362 d 'xmlTextReaderMoveToFirstAttribute')
364 d reader value like(xmlTextReaderPtr)
366 d xmlTextReaderMoveToNextAttribute...
368 d 'xmlTextReaderMoveToNextAttribute')
370 d reader value like(xmlTextReaderPtr)
372 d xmlTextReaderMoveToElement...
373 d pr extproc('xmlTextReaderMoveToElement')
375 d reader value like(xmlTextReaderPtr)
377 d xmlTextReaderNormalization...
378 d pr extproc('xmlTextReaderNormalization')
380 d reader value like(xmlTextReaderPtr)
382 d xmlTextReaderConstEncoding...
383 d pr * extproc('xmlTextReaderConstEncoding')const xmlChar *
384 d reader value like(xmlTextReaderPtr)
388 d xmlTextReaderSetParserProp...
389 d pr extproc('xmlTextReaderSetParserProp')
391 d reader value like(xmlTextReaderPtr)
392 d prop value like(xmlCint)
393 d value value like(xmlCint)
395 d xmlTextReaderGetParserProp...
396 d pr extproc('xmlTextReaderGetParserProp')
398 d reader value like(xmlTextReaderPtr)
399 d prop value like(xmlCint)
401 d xmlTextReaderCurrentNode...
402 d pr extproc('xmlTextReaderCurrentNode')
404 d reader value like(xmlTextReaderPtr)
406 d xmlTextReaderGetParserLineNumber...
408 d 'xmlTextReaderGetParserLineNumber')
410 d reader value like(xmlTextReaderPtr)
412 d xmlTextReaderGetParserColumnNumber...
414 d 'xmlTextReaderGetParserColumnNumber')
416 d reader value like(xmlTextReaderPtr)
418 d xmlTextReaderPreserve...
419 d pr extproc('xmlTextReaderPreserve')
421 d reader value like(xmlTextReaderPtr)
423 /if defined(LIBXML_PATTERN_ENABLED)
424 d xmlTextReaderPreservePattern...
426 d 'xmlTextReaderPreservePattern')
428 d reader value like(xmlTextReaderPtr)
429 d pattern * value options(*string) const xmlChar *
430 d namespaces * const xmlChar *(*)
431 /endif LIBXML_PATTERN_ENBLD
433 d xmlTextReaderCurrentDoc...
434 d pr extproc('xmlTextReaderCurrentDoc')
436 d reader value like(xmlTextReaderPtr)
438 d xmlTextReaderExpand...
439 d pr extproc('xmlTextReaderExpand')
441 d reader value like(xmlTextReaderPtr)
443 d xmlTextReaderNext...
444 d pr extproc('xmlTextReaderNext')
446 d reader value like(xmlTextReaderPtr)
448 d xmlTextReaderNextSibling...
449 d pr extproc('xmlTextReaderNextSibling')
451 d reader value like(xmlTextReaderPtr)
453 d xmlTextReaderIsValid...
454 d pr extproc('xmlTextReaderIsValid')
456 d reader value like(xmlTextReaderPtr)
458 /if defined(LIBXML_SCHEMAS_ENABLED)
459 d xmlTextReaderRelaxNGValidate...
461 d 'xmlTextReaderRelaxNGValidate')
463 d reader value like(xmlTextReaderPtr)
464 d rng * value options(*string) const char *
466 d xmlTextReaderRelaxNGValidateCtxt...
468 d 'xmlTextReaderRelaxNGValidateCtxt')
470 d reader value like(xmlTextReaderPtr)
471 d ctxt value like(xmlRelaxNGValidCtxtPtr)
472 d options value like(xmlCint)
474 d xmlTextReaderRelaxNGSetSchema...
476 d 'xmlTextReaderRelaxNGSetSchema')
478 d reader value like(xmlTextReaderPtr)
479 d schema value like(xmlRelaxNGPtr)
481 d xmlTextReaderSchemaValidate...
483 d 'xmlTextReaderSchemaValidate')
485 d reader value like(xmlTextReaderPtr)
486 d xsd * value options(*string) const char *
488 d xmlTextReaderSchemaValidateCtxt...
490 d 'xmlTextReaderSchemaValidateCtxt')
492 d reader value like(xmlTextReaderPtr)
493 d ctxt value like(xmlSchemaValidCtxtPtr)
494 d options value like(xmlCint)
496 d xmlTextReaderSetSchema...
497 d pr extproc('xmlTextReaderSetSchema')
499 d reader value like(xmlTextReaderPtr)
500 d schema value like(xmlSchemaPtr)
503 d xmlTextReaderConstXmlVersion...
504 d pr * extproc( const xmlChar *
505 d 'xmlTextReaderConstXmlVersion')
506 d reader value like(xmlTextReaderPtr)
508 d xmlTextReaderStandalone...
509 d pr extproc('xmlTextReaderStandalone')
511 d reader value like(xmlTextReaderPtr)
515 d xmlTextReaderByteConsumed...
516 d pr extproc('xmlTextReaderByteConsumed')
518 d reader value like(xmlTextReaderPtr)
520 * New more complete APIs for simpler creation and reuse of readers
523 d pr extproc('xmlReaderWalker')
524 d like(xmlTextReaderPtr)
525 d doc value like(xmlDocPtr)
528 d pr extproc('xmlReaderForDoc')
529 d like(xmlTextReaderPtr)
530 d cur * value options(*string) const xmlChar *
531 d URL * value options(*string) const char *
532 d encoding * value options(*string) const char *
533 d options value like(xmlCint)
535 d xmlReaderForFile...
536 d pr extproc('xmlReaderForFile')
537 d like(xmlTextReaderPtr)
538 d filename * value options(*string) const char *
539 d encoding * value options(*string) const char *
540 d options value like(xmlCint)
542 d xmlReaderForMemory...
543 d pr extproc('xmlReaderForMemory')
544 d like(xmlTextReaderPtr)
545 d buffer * value options(*string) const char *
546 d size value like(xmlCint)
547 d URL * value options(*string) const char *
548 d encoding * value options(*string) const char *
549 d options value like(xmlCint)
551 d xmlReaderForFd pr extproc('xmlReaderForFd')
552 d like(xmlTextReaderPtr)
553 d fd value like(xmlCint)
554 d URL * value options(*string) const char *
555 d encoding * value options(*string) const char *
556 d options value like(xmlCint)
558 d xmlReaderForIO pr extproc('xmlReaderForIO')
559 d like(xmlTextReaderPtr)
560 d ioread value like(xmlInputReadCallback)
561 d ioclose value like(xmlInputCloseCallback)
562 d ioctx * value void *
563 d URL * value options(*string) const char *
564 d encoding * value options(*string) const char *
565 d options value like(xmlCint)
567 d xmlReaderNewWalker...
568 d pr extproc('xmlReaderNewWalker')
570 d reader value like(xmlTextReaderPtr)
571 d doc value like(xmlDocPtr)
574 d pr extproc('xmlReaderNewDoc')
576 d reader value like(xmlTextReaderPtr)
577 d cur * value options(*string) const xmlChar *
578 d URL * value options(*string) const char *
579 d encoding * value options(*string) const char *
580 d options value like(xmlCint)
582 d xmlReaderNewFile...
583 d pr extproc('xmlReaderNewFile')
585 d reader value like(xmlTextReaderPtr)
586 d filename * value options(*string) const char *
587 d encoding * value options(*string) const char *
588 d options value like(xmlCint)
590 d xmlReaderNewMemory...
591 d pr extproc('xmlReaderNewMemory')
593 d reader value like(xmlTextReaderPtr)
594 d buffer * value options(*string) const char *
595 d size value like(xmlCint)
596 d URL * value options(*string) const char *
597 d encoding * value options(*string) const char *
598 d options value like(xmlCint)
600 d xmlReaderNewFd pr extproc('xmlReaderNewFd')
602 d reader value like(xmlTextReaderPtr)
603 d fd value like(xmlCint)
604 d URL * value options(*string) const char *
605 d encoding * value options(*string) const char *
606 d options value like(xmlCint)
608 d xmlReaderNewIO pr extproc('xmlReaderNewIO')
610 d reader value like(xmlTextReaderPtr)
611 d ioread value like(xmlInputReadCallback)
612 d ioclose value like(xmlInputCloseCallback)
613 d ioctx * value void *
614 d URL * value options(*string) const char *
615 d encoding * value options(*string) const char *
616 d options value like(xmlCint)
618 * Error handling extensions
620 d xmlTextReaderLocatorPtr...
621 d s * based(######typedef######) void *
623 * xmlTextReaderErrorFunc:
624 * @arg: the user argument
626 * @severity: the severity of the error
627 * @locator: a locator indicating where the error occured
629 * Signature of an error callback from a reader parser
631 d xmlTextReaderErrorFunc...
632 d s * based(######typedef######)
635 d xmlTextReaderLocatorLineNumber...
637 d 'xmlTextReaderLocatorLineNumber')
639 d locator value like(xmlTextReaderLocatorPtr)
641 d xmlTextReaderLocatorBaseURI...
642 d pr * extproc( xmlChar *
643 d 'xmlTextReaderLocatorBaseURI')
644 d locator value like(xmlTextReaderLocatorPtr)
646 d xmlTextReaderSetErrorHandler...
648 d 'xmlTextReaderSetErrorHandler')
649 d reader value like(xmlTextReaderPtr)
650 d f value like(xmlTextReaderErrorFunc)
653 d xmlTextReaderSetStructuredErrorHandler...
654 d pr extproc('xmlTextReaderSetStructuredE-
656 d reader value like(xmlTextReaderPtr)
657 d f value like(xmlStructuredErrorFunc)
660 d xmlTextReaderGetErrorHandler...
662 d 'xmlTextReaderGetErrorHandler')
663 d reader value like(xmlTextReaderPtr)
664 d f like(xmlTextReaderErrorFunc)
667 /endif LIBXML_READER_ENABLD
668 /endif XML_XMLREADER_H__