xmlreader.inc 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. (*
  2. * Summary: the XMLReader implementation
  3. * Description: API of the XML streaming API based on C# interfaces.
  4. *
  5. * Copy: See Copyright for the status of this software.
  6. *
  7. * Author: Daniel Veillard
  8. *)
  9. {$IFDEF LIBXML_SCHEMAS_ENABLED}
  10. {$IFDEF LIBXML_READER_ENABLED}
  11. {$IFDEF POINTER}
  12. xmlTextReaderPtr = ^xmlTextReader;
  13. {$ENDIF}
  14. {$IFDEF TYPE}
  15. (**
  16. * xmlTextReaderMode:
  17. *
  18. * Internal state values for the reader.
  19. *)
  20. xmlTextReaderMode = (
  21. XML_TEXTREADER_MODE_INITIAL = 0,
  22. XML_TEXTREADER_MODE_INTERACTIVE = 1,
  23. XML_TEXTREADER_MODE_ERROR = 2,
  24. XML_TEXTREADER_MODE_EOF =3,
  25. XML_TEXTREADER_MODE_CLOSED = 4,
  26. XML_TEXTREADER_MODE_READING = 5
  27. );
  28. (**
  29. * xmlParserProperties:
  30. *
  31. * Some common options to use with xmlTextReaderSetParserProp, but it
  32. * is better to use xmlParserOption and the xmlReaderNewxxx and
  33. * xmlReaderForxxx APIs now.
  34. *)
  35. xmlParserProperties = (
  36. XML_PARSER_LOADDTD = 1,
  37. XML_PARSER_DEFAULTATTRS = 2,
  38. XML_PARSER_VALIDATE = 3,
  39. XML_PARSER_SUBST_ENTITIES = 4
  40. );
  41. (**
  42. * xmlParserSeverities:
  43. *
  44. * How severe an error callback is when the per-reader error callback API
  45. * is used.
  46. *)
  47. xmlParserSeverities = (
  48. XML_PARSER_SEVERITY_VALIDITY_WARNING = 1,
  49. XML_PARSER_SEVERITY_VALIDITY_ERROR = 2,
  50. XML_PARSER_SEVERITY_WARNING = 3,
  51. XML_PARSER_SEVERITY_ERROR = 4
  52. );
  53. (**
  54. * xmlReaderTypes:
  55. *
  56. * Predefined constants for the different types of nodes.
  57. *)
  58. xmlReaderTypes = (
  59. XML_READER_TYPE_NONE = 0,
  60. XML_READER_TYPE_ELEMENT = 1,
  61. XML_READER_TYPE_ATTRIBUTE = 2,
  62. XML_READER_TYPE_TEXT = 3,
  63. XML_READER_TYPE_CDATA = 4,
  64. XML_READER_TYPE_ENTITY_REFERENCE = 5,
  65. XML_READER_TYPE_ENTITY = 6,
  66. XML_READER_TYPE_PROCESSING_INSTRUCTION = 7,
  67. XML_READER_TYPE_COMMENT = 8,
  68. XML_READER_TYPE_DOCUMENT = 9,
  69. XML_READER_TYPE_DOCUMENT_TYPE = 10,
  70. XML_READER_TYPE_DOCUMENT_FRAGMENT = 11,
  71. XML_READER_TYPE_NOTATION = 12,
  72. XML_READER_TYPE_WHITESPACE = 13,
  73. XML_READER_TYPE_SIGNIFICANT_WHITESPACE = 14,
  74. XML_READER_TYPE_END_ELEMENT = 15,
  75. XML_READER_TYPE_END_ENTITY = 16,
  76. XML_READER_TYPE_XML_DECLARATION = 17
  77. );
  78. (**
  79. * xmlTextReader:
  80. *
  81. * Structure for an xmlReader context.
  82. *)
  83. xmlTextReader = record end;
  84. xmlTextReaderLocatorPtr = pointer;
  85. xmlTextReaderErrorFunc = procedure(arg: pointer; msg: pchar; severity: xmlParserSeverities; locator: xmlTextReaderLocatorPtr); EXTDECL;
  86. {$ENDIF}
  87. {$IFDEF FUNCTION}
  88. (*
  89. * Constructors & Destructor
  90. *)
  91. function xmlNewTextReader(input: xmlParserInputBufferPtr; URI: pchar): xmlTextReaderPtr; EXTDECL; external xml2lib;
  92. function xmlNewTextReaderFilename(URI: pchar): xmlTextReaderPtr; EXTDECL; external xml2lib;
  93. procedure xmlFreeTextReader(reader: xmlTextReaderPtr); EXTDECL; external xml2lib;
  94. function xmlTextReaderSetup(reader: xmlTextReaderPtr; input: xmlParserInputBufferPtr; URL, encoding: pchar; options: cint): cint; EXTDECL; external xml2lib;
  95. (*
  96. * Iterators
  97. *)
  98. function xmlTextReaderRead(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  99. {$IFDEF LIBXML_WRITER_ENABLED}
  100. function xmlTextReaderReadInnerXml(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  101. function xmlTextReaderReadOuterXml(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  102. {$ENDIF}
  103. function xmlTextReaderReadString(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  104. function xmlTextReaderReadAttributeValue(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  105. (*
  106. * Attributes of the node
  107. *)
  108. function xmlTextReaderAttributeCount(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  109. function xmlTextReaderDepth(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  110. function xmlTextReaderHasAttributes(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  111. function xmlTextReaderHasValue(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  112. function xmlTextReaderIsDefault(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  113. function xmlTextReaderIsEmptyElement(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  114. function xmlTextReaderNodeType(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  115. function xmlTextReaderQuoteChar(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  116. function xmlTextReaderReadState(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  117. function xmlTextReaderIsNamespaceDecl(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  118. function xmlTextReaderConstBaseUri(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  119. function xmlTextReaderConstLocalName(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  120. function xmlTextReaderConstName(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  121. function xmlTextReaderConstNamespaceUri(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  122. function xmlTextReaderConstPrefix(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  123. function xmlTextReaderConstXmlLang(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  124. function xmlTextReaderConstString(reader: xmlTextReaderPtr; str: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  125. function xmlTextReaderConstValue(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  126. (*
  127. * use the Const version of the routine for
  128. * better performance and simpler code
  129. *)
  130. function xmlTextReaderBaseUri(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  131. function xmlTextReaderLocalName(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  132. function xmlTextReaderName(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  133. function xmlTextReaderNamespaceUri(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  134. function xmlTextReaderPrefix(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  135. function xmlTextReaderXmlLang(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  136. function xmlTextReaderValue(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  137. (*
  138. * Methods of the XmlTextReader
  139. *)
  140. function xmlTextReaderClose(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  141. function xmlTextReaderGetAttributeNo(reader: xmlTextReaderPtr; no: cint): xmlCharPtr; EXTDECL; external xml2lib;
  142. function xmlTextReaderGetAttribute(reader: xmlTextReaderPtr; name: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  143. function xmlTextReaderGetAttributeNs(reader: xmlTextReaderPtr; localName, namespaceURI: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  144. function xmlTextReaderGetRemainder(reader: xmlTextReaderPtr): xmlParserInputBufferPtr; EXTDECL; external xml2lib;
  145. function xmlTextReaderLookupNamespace(reader: xmlTextReaderPtr; prefix: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  146. function xmlTextReaderMoveToAttributeNo(reader: xmlTextReaderPtr; no: cint): cint; EXTDECL; external xml2lib;
  147. function xmlTextReaderMoveToAttribute(reader: xmlTextReaderPtr; name: xmlCharPtr): cint; EXTDECL; external xml2lib;
  148. function xmlTextReaderMoveToAttributeNs(reader: xmlTextReaderPtr; localName, namespaceURI: xmlCharPtr): cint; EXTDECL; external xml2lib;
  149. function xmlTextReaderMoveToFirstAttribute(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  150. function xmlTextReaderMoveToNextAttribute(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  151. function xmlTextReaderMoveToElement(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  152. function xmlTextReaderNormalization(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  153. function xmlTextReaderConstEncoding(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  154. (*
  155. * Extensions
  156. *)
  157. function xmlTextReaderSetParserProp(reader: xmlTextReaderPtr; prop, value: cint): cint; EXTDECL; external xml2lib;
  158. function xmlTextReaderGetParserProp(reader: xmlTextReaderPtr; prop: cint): cint; EXTDECL; external xml2lib;
  159. function xmlTextReaderCurrentNode(reader: xmlTextReaderPtr): xmlNodePtr; EXTDECL; external xml2lib;
  160. function xmlTextReaderGetParserLineNumber(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  161. function xmlTextReaderGetParserColumnNumber(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  162. function xmlTextReaderPreserve(reader: xmlTextReaderPtr): xmlNodePtr; EXTDECL; external xml2lib;
  163. {$IFDEF LIBXML_PATTERN_ENABLED}
  164. function xmlTextReaderPreservePattern(reader: xmlTextReaderPtr; pattern: xmlCharPtr; namespaces: xmlCharPtrPtr): cint; EXTDECL; external xml2lib;
  165. {$ENDIF} (* LIBXML_PATTERN_ENABLED *)
  166. function xmlTextReaderCurrentDoc(reader: xmlTextReaderPtr): xmlDocPtr; EXTDECL; external xml2lib;
  167. function xmlTextReaderExpand(reader: xmlTextReaderPtr): xmlNodePtr; EXTDECL; external xml2lib;
  168. function xmlTextReaderNext(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  169. function xmlTextReaderNextSibling(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  170. function xmlTextReaderIsValid(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  171. {$IFDEF LIBXML_SCHEMAS_ENABLED}
  172. function xmlTextReaderRelaxNGValidate(reader: xmlTextReaderPtr; rng: pchar): cint; EXTDECL; external xml2lib;
  173. function xmlTextReaderRelaxNGSetSchema(reader: xmlTextReaderPtr; schema: xmlRelaxNGPtr): cint; EXTDECL; external xml2lib;
  174. function xmlTextReaderSchemaValidate(reader: xmlTextReaderPtr; xsd: pchar): cint; EXTDECL; external xml2lib;
  175. function xmlTextReaderSchemaValidateCtxt(reader: xmlTextReaderPtr; ctxt: xmlSchemaValidCtxtPtr; options: cint): cint; EXTDECL; external xml2lib;
  176. function xmlTextReaderSetSchema(reader: xmlTextReaderPtr; schema: xmlSchemaPtr): cint; EXTDECL; external xml2lib;
  177. {$ENDIF}
  178. function xmlTextReaderConstXmlVersion(reader: xmlTextReaderPtr): xmlCharPtr; EXTDECL; external xml2lib;
  179. function xmlTextReaderStandalone(reader: xmlTextReaderPtr): cint; EXTDECL; external xml2lib;
  180. (*
  181. * Index lookup
  182. *)
  183. function xmlTextReaderByteConsumed(reader: xmlTextReaderPtr): clong; EXTDECL; external xml2lib;
  184. (*
  185. * New more complete APIs for simpler creation and reuse of readers
  186. *)
  187. function xmlReaderWalker(doc: xmlDocPtr): xmlTextReaderPtr; EXTDECL; external xml2lib;
  188. function xmlReaderForDoc(cur: xmlCharPtr; URL, encoding: pchar; options: cint): xmlTextReaderPtr; EXTDECL; external xml2lib;
  189. function xmlReaderForFile(filename, encoding: pchar; options: cint): xmlTextReaderPtr; EXTDECL; external xml2lib;
  190. function xmlReaderForMemory(buffer: pchar; size: cint; URL, encoding: pchar; options: cint): xmlTextReaderPtr; EXTDECL; external xml2lib;
  191. function xmlReaderForFd(fd: cint; URL, encoding: pchar; options: cint): xmlTextReaderPtr; EXTDECL; external xml2lib;
  192. function xmlReaderForIO(ioread: xmlInputReadCallback; ioclose: xmlInputCloseCallback; ioctx: pointer; URL, encoding: pchar; options: cint): xmlTextReaderPtr; EXTDECL; external xml2lib;
  193. function xmlReaderNewWalker(reader: xmlTextReaderPtr; doc: xmlDocPtr): cint; EXTDECL; external xml2lib;
  194. function xmlReaderNewDoc(reader: xmlTextReaderPtr; cur: xmlCharPtr; URL, encoding: pchar; options: cint): cint; EXTDECL; external xml2lib;
  195. function xmlReaderNewFile(reader: xmlTextReaderPtr; filename, encoding: pchar; options: cint): cint; EXTDECL; external xml2lib;
  196. function xmlReaderNewMemory(reader: xmlTextReaderPtr; buffer: pchar; size: cint; URL, encoding: pchar; options: cint): cint; EXTDECL; external xml2lib;
  197. function xmlReaderNewFd(reader: xmlTextReaderPtr; fd: cint; URL, encoding: pchar; options: cint): cint; EXTDECL; external xml2lib;
  198. function xmlReaderNewIO(reader: xmlTextReaderPtr; ioread: xmlInputReadCallback; ioclose: xmlInputCloseCallback; ioctx: pointer; URL, encoding: pchar; options: cint): cint; EXTDECL; external xml2lib;
  199. (*
  200. * Error handling extensions
  201. *)
  202. function xmlTextReaderLocatorLineNumber(locator: xmlTextReaderLocatorPtr): cint; EXTDECL; external xml2lib;
  203. function xmlTextReaderLocatorBaseURI(locator: xmlTextReaderLocatorPtr): xmlCharPtr; EXTDECL; external xml2lib;
  204. procedure xmlTextReaderSetErrorHandler(reader: xmlTextReaderPtr; f: xmlTextReaderErrorFunc; arg: pointer); EXTDECL; external xml2lib;
  205. procedure xmlTextReaderSetStructuredErrorHandler(reader: xmlTextReaderPtr; f: xmlTextReaderErrorFunc; arg: pointer); EXTDECL; external xml2lib;
  206. procedure xmlTextReaderGetErrorHandler(reader: xmlTextReaderPtr; var f: xmlTextReaderErrorFunc; var arg: pointer); EXTDECL; external xml2lib;
  207. {$ENDIF}
  208. {$ENDIF} (* LIBXML_READER_ENABLED *)
  209. {$ENDIF} (* LIBXML_SCHEMAS_ENABLED *)