1 * Summary: the XMLReader implementation 2 * Description: API of the XML streaming API based on C# interfaces. 3 * 4 * Copy: See Copyright for the status of this software. 5 * 6 * Author: Patrick Monnerat <pm (a] datasphere.ch>, DATASPHERE S.A. 7 8 /if not defined(XML_XMLREADER_H__) 9 /define XML_XMLREADER_H__ 10 11 /include "libxmlrpg/xmlversion" 12 /include "libxmlrpg/tree" 13 /include "libxmlrpg/xmlIO" 14 15 /if defined(LIBXML_SCHEMAS_ENABLED) 16 /include "libxmlrpg/relaxng" 17 /include "libxmlrpg/xmlschemas" 18 /endif 19 20 * xmlParserSeverities: 21 * 22 * How severe an error callback is when the per-reader error callback API 23 * is used. 24 25 d xmlParserSeverities... 26 d s 10i 0 based(######typedef######) enum 27 d XML_PARSER_SEVERITY_VALIDITY_WARNING... 28 d c 1 29 d XML_PARSER_SEVERITY_VALIDITY_ERROR... 30 d c 2 31 d XML_PARSER_SEVERITY_WARNING... 32 d c 3 33 d XML_PARSER_SEVERITY_ERROR... 34 d c 4 35 36 /if defined(LIBXML_READER_ENABLED) 37 38 * xmlTextReaderMode: 39 * 40 * Internal state values for the reader. 41 42 d xmlTextReaderMode... 43 d s 10i 0 based(######typedef######) enum 44 d XML_TEXTREADER_MODE_INITIAL... 45 d c 0 46 d XML_TEXTREADER_MODE_INTERACTIVE... 47 d c 1 48 d XML_TEXTREADER_MODE_ERROR... 49 d c 2 50 d XML_TEXTREADER_MODE_EOF... 51 d c 3 52 d XML_TEXTREADER_MODE_CLOSED... 53 d c 4 54 d XML_TEXTREADER_MODE_READING... 55 d c 5 56 57 * xmlParserProperties: 58 * 59 * Some common options to use with xmlTextReaderSetParserProp, but it 60 * is better to use xmlParserOption and the xmlReaderNewxxx and 61 * xmlReaderForxxx APIs now. 62 63 d xmlParserProperties... 64 d s 10i 0 based(######typedef######) enum 65 d XML_PARSER_LOADDTD... 66 d c 1 67 d XML_PARSER_DEFAULTATTRS... 68 d c 2 69 d XML_PARSER_VALIDATE... 70 d c 3 71 d XML_PARSER_SUBST_ENTITIES... 72 d c 4 73 74 * xmlReaderTypes: 75 * 76 * Predefined constants for the different types of nodes. 77 78 d xmlReaderTypes s 10i 0 based(######typedef######) enum 79 d XML_READER_TYPE_NONE... 80 d c 0 81 d XML_READER_TYPE_ELEMENT... 82 d c 1 83 d XML_READER_TYPE_ATTRIBUTE... 84 d c 2 85 d XML_READER_TYPE_TEXT... 86 d c 3 87 d XML_READER_TYPE_CDATA... 88 d c 4 89 d XML_READER_TYPE_ENTITY_REFERENCE... 90 d c 5 91 d XML_READER_TYPE_ENTITY... 92 d c 6 93 d XML_READER_TYPE_PROCESSING_INSTRUCTION... 94 d c 7 95 d XML_READER_TYPE_COMMENT... 96 d c 8 97 d XML_READER_TYPE_DOCUMENT... 98 d c 9 99 d XML_READER_TYPE_DOCUMENT_TYPE... 100 d c 10 101 d XML_READER_TYPE_DOCUMENT_FRAGMENT... 102 d c 11 103 d XML_READER_TYPE_NOTATION... 104 d c 12 105 d XML_READER_TYPE_WHITESPACE... 106 d c 13 107 d XML_READER_TYPE_SIGNIFICANT_WHITESPACE... 108 d c 14 109 d XML_READER_TYPE_END_ELEMENT... 110 d c 15 111 d XML_READER_TYPE_END_ENTITY... 112 d c 16 113 d XML_READER_TYPE_XML_DECLARATION... 114 d c 17 115 116 * xmlTextReaderPtr: 117 * 118 * Pointer to an xmlReader context. 119 120 d xmlTextReaderPtr... 121 d s * based(######typedef######) 122 123 * Constructors & Destructor 124 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 * 130 131 d xmlNewTextReaderFilename... 132 d pr extproc('xmlNewTextReaderFilename') 133 d like(xmlTextReaderPtr) 134 d URI * value options(*string) const char * 135 136 d xmlFreeTextReader... 137 d pr extproc('xmlFreeTextReader') 138 d reader value like(xmlTextReaderPtr) 139 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 147 148 * Iterators 149 150 d xmlTextReaderRead... 151 d pr 10i 0 extproc('xmlTextReaderRead') 152 d reader value like(xmlTextReaderPtr) 153 154 /if defined(LIBXML_WRITER_ENABLED) 155 d xmlTextReaderReadInnerXml... 156 d pr * extproc('xmlTextReaderReadInnerXml') xmlChar * 157 d reader value like(xmlTextReaderPtr) 158 159 d xmlTextReaderReadOuterXml... 160 d pr * extproc('xmlTextReaderReadOuterXml') xmlChar * 161 d reader value like(xmlTextReaderPtr) 162 /endif 163 164 d xmlTextReaderReadString... 165 d pr * extproc('xmlTextReaderReadString') xmlChar * 166 d reader value like(xmlTextReaderPtr) 167 168 d xmlTextReaderReadAttributeValue... 169 d pr 10i 0 extproc( 170 d 'xmlTextReaderReadAttributeValue') 171 d reader value like(xmlTextReaderPtr) 172 173 * Attributes of the node 174 175 d xmlTextReaderAttributeCount... 176 d pr 10i 0 extproc( 177 d 'xmlTextReaderAttributeCount') 178 d reader value like(xmlTextReaderPtr) 179 180 d xmlTextReaderDepth... 181 d pr 10i 0 extproc('xmlTextReaderDepth') 182 d reader value like(xmlTextReaderPtr) 183 184 d xmlTextReaderHasAttributes... 185 d pr 10i 0 extproc('xmlTextReaderHasAttributes') 186 d reader value like(xmlTextReaderPtr) 187 188 d xmlTextReaderHasValue... 189 d pr 10i 0 extproc('xmlTextReaderHasValue') 190 d reader value like(xmlTextReaderPtr) 191 192 d xmlTextReaderIsDefault... 193 d pr 10i 0 extproc('xmlTextReaderIsDefault') 194 d reader value like(xmlTextReaderPtr) 195 196 d xmlTextReaderIsEmptyElement... 197 d pr 10i 0 extproc( 198 d 'xmlTextReaderIsEmptyElement') 199 d reader value like(xmlTextReaderPtr) 200 201 d xmlTextReaderNodeType... 202 d pr 10i 0 extproc('xmlTextReaderNodeType') 203 d reader value like(xmlTextReaderPtr) 204 205 d xmlTextReaderQuoteChar... 206 d pr 10i 0 extproc('xmlTextReaderQuoteChar') 207 d reader value like(xmlTextReaderPtr) 208 209 d xmlTextReaderReadState... 210 d pr 10i 0 extproc('xmlTextReaderReadState') 211 d reader value like(xmlTextReaderPtr) 212 213 d xmlTextReaderIsNamespaceDecl... 214 d pr 10i 0 extproc( 215 d 'xmlTextReaderIsNamespaceDecl') 216 d reader value like(xmlTextReaderPtr) 217 218 d xmlTextReaderConstBaseUri... 219 d pr * extproc('xmlTextReaderConstBaseUri') const xmlChar * 220 d reader value like(xmlTextReaderPtr) 221 222 d xmlTextReaderConstLocalName... 223 d pr * extproc( const xmlChar * 224 d 'xmlTextReaderConstLocalName') 225 d reader value like(xmlTextReaderPtr) 226 227 d xmlTextReaderConstName... 228 d pr * extproc('xmlTextReaderConstName') const xmlChar * 229 d reader value like(xmlTextReaderPtr) 230 231 d xmlTextReaderConstNamespaceUri... 232 d pr * extproc( const xmlChar * 233 d 'xmlTextReaderConstNamespaceUri') 234 d reader value like(xmlTextReaderPtr) 235 236 d xmlTextReaderConstPrefix... 237 d pr * extproc('xmlTextReaderConstPrefix') const xmlChar * 238 d reader value like(xmlTextReaderPtr) 239 240 d xmlTextReaderConstXmlLang... 241 d pr * extproc('xmlTextReaderConstXmlLang') const xmlChar * 242 d reader value like(xmlTextReaderPtr) 243 244 d xmlTextReaderConstString... 245 d pr * extproc('xmlTextReaderConstString') const xmlChar * 246 d reader value like(xmlTextReaderPtr) 247 d str * value options(*string) const xmlChar * 248 249 d xmlTextReaderConstValue... 250 d pr * extproc('xmlTextReaderConstValue') const xmlChar * 251 d reader value like(xmlTextReaderPtr) 252 253 * use the Const version of the routine for 254 * better performance and simpler code 255 256 d xmlTextReaderBaseUri... 257 d pr * extproc('xmlTextReaderBaseUri') xmlChar * 258 d reader value like(xmlTextReaderPtr) 259 260 d xmlTextReaderLocalName... 261 d pr * extproc('xmlTextReaderLocalName') xmlChar * 262 d reader value like(xmlTextReaderPtr) 263 264 d xmlTextReaderName... 265 d pr * extproc('xmlTextReaderName') xmlChar * 266 d reader value like(xmlTextReaderPtr) 267 268 d xmlTextReaderNamespaceUri... 269 d pr * extproc('xmlTextReaderNamespaceUri') xmlChar * 270 d reader value like(xmlTextReaderPtr) 271 272 d xmlTextReaderPrefix... 273 d pr * extproc('xmlTextReaderPrefix') xmlChar * 274 d reader value like(xmlTextReaderPtr) 275 276 d xmlTextReaderXmlLang... 277 d pr * extproc('xmlTextReaderXmlLang') xmlChar * 278 d reader value like(xmlTextReaderPtr) 279 280 d xmlTextReaderValue... 281 d pr * extproc('xmlTextReaderValue') xmlChar * 282 d reader value like(xmlTextReaderPtr) 283 284 * Methods of the XmlTextReader 285 286 d xmlTextReaderClose... 287 d pr 10i 0 extproc('xmlTextReaderClose') 288 d reader value like(xmlTextReaderPtr) 289 290 d xmlTextReaderGetAttributeNo... 291 d pr * extproc( xmlChar * 292 d 'xmlTextReaderGetAttributeNo') 293 d reader value like(xmlTextReaderPtr) 294 d no 10i 0 value 295 296 d xmlTextReaderGetAttribute... 297 d pr * extproc('xmlTextReaderGetAttribute') xmlChar * 298 d reader value like(xmlTextReaderPtr) 299 d name * value options(*string) const xmlChar * 300 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 * 307 308 d xmlTextReaderGetRemainder... 309 d pr extproc('xmlTextReaderGetRemainder') 310 d like(xmlParserInputBufferPtr) 311 d reader value like(xmlTextReaderPtr) 312 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 * 318 319 d xmlTextReaderMoveToAttributeNo... 320 d pr 10i 0 extproc( 321 d 'xmlTextReaderMoveToAttributeNo') 322 d reader value like(xmlTextReaderPtr) 323 d no 10i 0 value 324 325 d xmlTextReaderMoveToAttribute... 326 d pr 10i 0 extproc( 327 d 'xmlTextReaderMoveToAttribute') 328 d reader value like(xmlTextReaderPtr) 329 d name * value options(*string) const xmlChar * 330 331 d xmlTextReaderMoveToAttributeNs... 332 d pr 10i 0 extproc( 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 * 337 338 d xmlTextReaderMoveToFirstAttribute... 339 d pr 10i 0 extproc( 340 d 'xmlTextReaderMoveToFirstAttribute') 341 d reader value like(xmlTextReaderPtr) 342 343 d xmlTextReaderMoveToNextAttribute... 344 d pr 10i 0 extproc( 345 d 'xmlTextReaderMoveToNextAttribute') 346 d reader value like(xmlTextReaderPtr) 347 348 d xmlTextReaderMoveToElement... 349 d pr 10i 0 extproc('xmlTextReaderMoveToElement') 350 d reader value like(xmlTextReaderPtr) 351 352 d xmlTextReaderNormalization... 353 d pr 10i 0 extproc('xmlTextReaderNormalization') 354 d reader value like(xmlTextReaderPtr) 355 356 d xmlTextReaderConstEncoding... 357 d pr * extproc('xmlTextReaderConstEncoding')const xmlChar * 358 d reader value like(xmlTextReaderPtr) 359 360 * Extensions 361 362 d xmlTextReaderSetParserProp... 363 d pr 10i 0 extproc('xmlTextReaderSetParserProp') 364 d reader value like(xmlTextReaderPtr) 365 d prop 10i 0 value 366 d value 10i 0 value 367 368 d xmlTextReaderGetParserProp... 369 d pr 10i 0 extproc('xmlTextReaderGetParserProp') 370 d reader value like(xmlTextReaderPtr) 371 d prop 10i 0 value 372 373 d xmlTextReaderCurrentNode... 374 d pr extproc('xmlTextReaderCurrentNode') 375 d like(xmlNodePtr) 376 d reader value like(xmlTextReaderPtr) 377 378 d xmlTextReaderGetParserLineNumber... 379 d pr 10i 0 extproc( 380 d 'xmlTextReaderGetParserLineNumber') 381 d reader value like(xmlTextReaderPtr) 382 383 d xmlTextReaderGetParserColumnNumber... 384 d pr 10i 0 extproc( 385 d 'xmlTextReaderGetParserColumnNumber') 386 d reader value like(xmlTextReaderPtr) 387 388 d xmlTextReaderPreserve... 389 d pr extproc('xmlTextReaderPreserve') 390 d like(xmlNodePtr) 391 d reader value like(xmlTextReaderPtr) 392 393 /if defined(LIBXML_PATTERN_ENABLED) 394 d xmlTextReaderPreservePattern... 395 d pr 10i 0 extproc( 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 401 402 d xmlTextReaderCurrentDoc... 403 d pr extproc('xmlTextReaderCurrentDoc') 404 d like(xmlDocPtr) 405 d reader value like(xmlTextReaderPtr) 406 407 d xmlTextReaderExpand... 408 d pr extproc('xmlTextReaderExpand') 409 d like(xmlNodePtr) 410 d reader value like(xmlTextReaderPtr) 411 412 d xmlTextReaderNext... 413 d pr 10i 0 extproc('xmlTextReaderNext') 414 d reader value like(xmlTextReaderPtr) 415 416 d xmlTextReaderNextSibling... 417 d pr 10i 0 extproc('xmlTextReaderNextSibling') 418 d reader value like(xmlTextReaderPtr) 419 420 d xmlTextReaderIsValid... 421 d pr 10i 0 extproc('xmlTextReaderIsValid') 422 d reader value like(xmlTextReaderPtr) 423 424 /if defined(LIBXML_SCHEMAS_ENABLED) 425 d xmlTextReaderRelaxNGValidate... 426 d pr 10i 0 extproc( 427 d 'xmlTextReaderRelaxNGValidate') 428 d reader value like(xmlTextReaderPtr) 429 d rng * value options(*string) const char * 430 431 d xmlTextReaderRelaxNGValidateCtxt... 432 d pr 10i 0 extproc( 433 d 'xmlTextReaderRelaxNGValidateCtxt') 434 d reader value like(xmlTextReaderPtr) 435 d ctxt value like(xmlRelaxNGValidCtxtPtr) 436 d options 10i 0 value 437 438 d xmlTextReaderRelaxNGSetSchema... 439 d pr 10i 0 extproc( 440 d 'xmlTextReaderRelaxNGSetSchema') 441 d reader value like(xmlTextReaderPtr) 442 d schema value like(xmlRelaxNGPtr) 443 444 d xmlTextReaderSchemaValidate... 445 d pr 10i 0 extproc( 446 d 'xmlTextReaderSchemaValidate') 447 d reader value like(xmlTextReaderPtr) 448 d xsd * value options(*string) const char * 449 450 d xmlTextReaderSchemaValidateCtxt... 451 d pr 10i 0 extproc( 452 d 'xmlTextReaderSchemaValidateCtxt') 453 d reader value like(xmlTextReaderPtr) 454 d ctxt value like(xmlSchemaValidCtxtPtr) 455 d options 10i 0 value 456 457 d xmlTextReaderSetSchema... 458 d pr 10i 0 extproc('xmlTextReaderSetSchema') 459 d reader value like(xmlTextReaderPtr) 460 d schema value like(xmlSchemaPtr) 461 /endif 462 463 d xmlTextReaderConstXmlVersion... 464 d pr * extproc( const xmlChar * 465 d 'xmlTextReaderConstXmlVersion') 466 d reader value like(xmlTextReaderPtr) 467 468 d xmlTextReaderStandalone... 469 d pr 10i 0 extproc('xmlTextReaderStandalone') 470 d reader value like(xmlTextReaderPtr) 471 472 * Index lookup 473 474 d xmlTextReaderByteConsumed... 475 d pr 20i 0 extproc('xmlTextReaderByteConsumed') 476 d reader value like(xmlTextReaderPtr) 477 478 * New more complete APIs for simpler creation and reuse of readers 479 480 d xmlReaderWalker... 481 d pr extproc('xmlReaderWalker') 482 d like(xmlTextReaderPtr) 483 d doc value like(xmlDocPtr) 484 485 d xmlReaderForDoc... 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 492 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 499 500 d xmlReaderForMemory... 501 d pr extproc('xmlReaderForMemory') 502 d like(xmlTextReaderPtr) 503 d buffer * value options(*string) const char * 504 d size 10i 0 value 505 d URL * value options(*string) const char * 506 d encoding * value options(*string) const char * 507 d options 10i 0 value 508 509 d xmlReaderForFd pr extproc('xmlReaderForFd') 510 d like(xmlTextReaderPtr) 511 d fd 10i 0 value 512 d URL * value options(*string) const char * 513 d encoding * value options(*string) const char * 514 d options 10i 0 value 515 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 524 525 d xmlReaderNewWalker... 526 d pr 10i 0 extproc('xmlReaderNewWalker') 527 d reader value like(xmlTextReaderPtr) 528 d doc value like(xmlDocPtr) 529 530 d xmlReaderNewDoc... 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 537 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 544 545 d xmlReaderNewMemory... 546 d pr 10i 0 extproc('xmlReaderNewMemory') 547 d reader value like(xmlTextReaderPtr) 548 d buffer * value options(*string) const char * 549 d size 10i 0 value 550 d URL * value options(*string) const char * 551 d encoding * value options(*string) const char * 552 d options 10i 0 value 553 554 d xmlReaderNewFd pr 10i 0 extproc('xmlReaderNewFd') 555 d reader value like(xmlTextReaderPtr) 556 d fd 10i 0 value 557 d URL * value options(*string) const char * 558 d encoding * value options(*string) const char * 559 d options 10i 0 value 560 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 569 570 * Error handling extensions 571 572 d xmlTextReaderLocatorPtr... 573 d s * based(######typedef######) void * 574 575 * xmlTextReaderErrorFunc: 576 * @arg: the user argument 577 * @msg: the message 578 * @severity: the severity of the error 579 * @locator: a locator indicating where the error occured 580 * 581 * Signature of an error callback from a reader parser 582 583 d xmlTextReaderErrorFunc... 584 d s * based(######typedef######) 585 d procptr 586 587 d xmlTextReaderLocatorLineNumber... 588 d pr 10i 0 extproc( 589 d 'xmlTextReaderLocatorLineNumber') 590 d locator value like(xmlTextReaderLocatorPtr) 591 592 d xmlTextReaderLocatorBaseURI... 593 d pr * extproc( xmlChar * 594 d 'xmlTextReaderLocatorBaseURI') 595 d locator value like(xmlTextReaderLocatorPtr) 596 597 d xmlTextReaderSetErrorHandler... 598 d pr extproc( 599 d 'xmlTextReaderSetErrorHandler') 600 d reader value like(xmlTextReaderPtr) 601 d f value like(xmlTextReaderErrorFunc) 602 d arg * value void * 603 604 d xmlTextReaderSetStructuredErrorHandler... 605 d pr extproc('xmlTextReaderSetStructuredE- 606 d rrorHandler') 607 d reader value like(xmlTextReaderPtr) 608 d f value like(xmlStructuredErrorFunc) 609 d arg * value void * 610 611 d xmlTextReaderGetErrorHandler... 612 d pr extproc( 613 d 'xmlTextReaderGetErrorHandler') 614 d reader value like(xmlTextReaderPtr) 615 d f like(xmlTextReaderErrorFunc) 616 d arg * void *(*) 617 618 /endif LIBXML_READER_ENABLD 619 /endif XML_XMLREADER_H__ 620