tree.inc 51 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132
  1. (*
  2. * Summary: interfaces for tree manipulation
  3. * Description: this module describes the structures found in an tree resulting
  4. * from an XML or HTML parsing, as well as the API provided for
  5. * various processing on that tree
  6. *
  7. * Copy: See Copyright for the status of this software.
  8. *
  9. * Author: Daniel Veillard
  10. *)
  11. {$IFDEF POINTER}
  12. xmlBufferPtr = ^xmlBuffer;
  13. xmlNotationPtr = ^xmlNotation;
  14. xmlEnumerationPtr = ^xmlEnumeration;
  15. xmlAttributePtr = ^xmlAttribute;
  16. xmlElementContentPtr = ^xmlElementContent;
  17. xmlElementPtr = ^xmlElement;
  18. xmlNsPtr = ^xmlNs;
  19. xmlNsPtrPtr = ^xmlNsPtr;
  20. xmlNodePtr = ^xmlNode;
  21. xmlNodePtrPtr = ^xmlNodePtr;
  22. xmlDtdPtr = ^xmlDtd;
  23. xmlAttrPtr = ^xmlAttr;
  24. xmlIDPtr = ^xmlID;
  25. xmlRefPtr = ^xmlRef;
  26. xmlDocPtr = ^xmlDoc;
  27. xmlDOMWrapCtxtPtr = ^xmlDOMWrapCtxt;
  28. xmlBufferAllocationSchemePtr = ^xmlBufferAllocationScheme;
  29. (**
  30. * xmlBufPtr:
  31. *
  32. * A pointer to a buffer structure, the actual structure internals are not
  33. * public
  34. *)
  35. xmlBufPtr = ^xmlBuf;
  36. {$ENDIF}
  37. (*
  38. * Some of the basic types pointer to structures:
  39. *)
  40. {$IFDEF CONST}
  41. (**
  42. * BASE_BUFFER_SIZE:
  43. *
  44. * default buffer size 4000.
  45. *)
  46. BASE_BUFFER_SIZE = 4096;
  47. (**
  48. * LIBXML_NAMESPACE_DICT:
  49. *
  50. * Defines experimental behaviour:
  51. * 1) xmlNs gets an additional field @context (a xmlDoc)
  52. * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
  53. *)
  54. {.$DEFINE LIBXML_NAMESPACE_DICT}
  55. (**
  56. * LIBXML_XML_NAMESPACE:
  57. *
  58. * This is the namespace for the special xml: prefix predefined in the
  59. * XML Namespace specification.
  60. *)
  61. LIBXML_XML_NAMESPACE: xmlCharPtr = 'http://www.w3.org/XML/1998/namespace';
  62. (**
  63. * XML_XML_ID:
  64. *
  65. * This is the name for the special xml:id attribute
  66. *)
  67. LIBXML_XML_ID: xmlCharPtr = 'xml:id';
  68. {$ENDIF}
  69. {$IFDEF TYPE}
  70. (**
  71. * xmlBufferAllocationScheme:
  72. *
  73. * A buffer allocation scheme can be defined to either match exactly the
  74. * need or double it's allocated size each time it is found too small.
  75. *)
  76. xmlBufferAllocationScheme = (
  77. XML_BUFFER_ALLOC_DOUBLEIT, (* double each time one need to grow *)
  78. XML_BUFFER_ALLOC_EXACT, (* grow only to the minimal size *)
  79. XML_BUFFER_ALLOC_IMMUTABLE, (* immutable buffer *)
  80. XML_BUFFER_ALLOC_IO, (* special allocation scheme used for I/O *)
  81. XML_BUFFER_ALLOC_HYBRID, (* exact up to a threshold, and doubleit thereafter *)
  82. XML_BUFFER_ALLOC_BOUNDED (* limit the upper size of the buffer *)
  83. );
  84. (**
  85. * xmlBuffer:
  86. *
  87. * A buffer structure.
  88. *)
  89. xmlBuffer = record
  90. content : xmlCharPtr; (* The buffer content UTF8 *)
  91. use : cuint; (* The buffer size used *)
  92. size : cuint; (* The buffer size *)
  93. alloc : xmlBufferAllocationScheme; (* The realloc method *)
  94. contentIO : xmlCharPtr; (* in IO mode we may have a different base *)
  95. end;
  96. (*
  97. * The different element types carried by an XML tree.
  98. *
  99. * NOTE: This is synchronized with DOM Level1 values
  100. * See http://www.w3.org/TR/REC-DOM-Level-1/
  101. *
  102. * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
  103. * be deprecated to use an XML_DTD_NODE.
  104. *)
  105. xmlElementType = (
  106. XML_ELEMENT_NODE= 1,
  107. XML_ATTRIBUTE_NODE= 2,
  108. XML_TEXT_NODE= 3,
  109. XML_CDATA_SECTION_NODE= 4,
  110. XML_ENTITY_REF_NODE= 5,
  111. XML_ENTITY_NODE= 6,
  112. XML_PI_NODE= 7,
  113. XML_COMMENT_NODE= 8,
  114. XML_DOCUMENT_NODE= 9,
  115. XML_DOCUMENT_TYPE_NODE= 10,
  116. XML_DOCUMENT_FRAG_NODE= 11,
  117. XML_NOTATION_NODE= 12,
  118. XML_HTML_DOCUMENT_NODE= 13,
  119. XML_DTD_NODE= 14,
  120. XML_ELEMENT_DECL= 15,
  121. XML_ATTRIBUTE_DECL= 16,
  122. XML_ENTITY_DECL= 17,
  123. XML_NAMESPACE_DECL= 18,
  124. XML_XINCLUDE_START= 19,
  125. XML_XINCLUDE_END= 20
  126. {$IFDEF LIBXML_DOCB_ENABLED}
  127. ,XML_DOCB_DOCUMENT_NODE= 21
  128. {$ENDIF}
  129. );
  130. (**
  131. * xmlNotation:
  132. *
  133. * A DTD Notation definition.
  134. *)
  135. xmlNotation = record
  136. name : xmlCharPtr; (* Notation name *)
  137. PublicID : xmlCharPtr; (* Public identifier, if any *)
  138. SystemID : xmlCharPtr; (* System identifier, if any *)
  139. end;
  140. (**
  141. * xmlAttributeType:
  142. *
  143. * A DTD Attribute type definition.
  144. *)
  145. xmlAttributeType = (
  146. XML_ATTRIBUTE_CDATA = 1,
  147. XML_ATTRIBUTE_ID,
  148. XML_ATTRIBUTE_IDREF ,
  149. XML_ATTRIBUTE_IDREFS,
  150. XML_ATTRIBUTE_ENTITY,
  151. XML_ATTRIBUTE_ENTITIES,
  152. XML_ATTRIBUTE_NMTOKEN,
  153. XML_ATTRIBUTE_NMTOKENS,
  154. XML_ATTRIBUTE_ENUMERATION,
  155. XML_ATTRIBUTE_NOTATION
  156. );
  157. (**
  158. * xmlAttributeDefault:
  159. *
  160. * A DTD Attribute default definition.
  161. *)
  162. xmlAttributeDefault = (
  163. XML_ATTRIBUTE_NONE = 1,
  164. XML_ATTRIBUTE_REQUIRED,
  165. XML_ATTRIBUTE_IMPLIED,
  166. XML_ATTRIBUTE_FIXED
  167. );
  168. (**
  169. * xmlEnumeration:
  170. *
  171. * List structure used when there is an enumeration in DTDs.
  172. *)
  173. xmlEnumeration = record
  174. next: xmlEnumerationPtr; (* next one *)
  175. name: xmlCharPtr;
  176. end;
  177. (**
  178. * xmlAttribute:
  179. *
  180. * An Attribute declaration in a DTD.
  181. *)
  182. xmlAttribute = record
  183. _private : pointer; (* application data *)
  184. _type : xmlElementType; (* XML_ATTRIBUTE_DECL, must be second ! *)
  185. name : xmlCharPtr; (* Attribute name *)
  186. children : xmlNodePtr; (* NULL *)
  187. last : xmlNodePtr; (* NULL *)
  188. parent : xmlDtdPtr; (* -> DTD *)
  189. next : xmlNodePtr; (* next sibling link *)
  190. prev : xmlNodePtr; (* previous sibling link *)
  191. doc : xmlDocPtr; (* the containing document *)
  192. nexth : xmlAttributePtr; (* next in hash table *)
  193. atype : xmlAttributeType; (* The attribute type *)
  194. def : xmlAttributeDefault; (* the default *)
  195. defaultValue : xmlCharPtr; (* or the default value *)
  196. tree : xmlEnumerationPtr; (* or the enumeration tree if any *)
  197. prefix : xmlCharPtr; (* the namespace prefix if any *)
  198. elem : xmlCharPtr; (* Element holding the attribute *)
  199. end;
  200. (**
  201. * xmlElementContentType:
  202. *
  203. * Possible definitions of element content types.
  204. *)
  205. xmlElementContentType = (
  206. XML_ELEMENT_CONTENT_PCDATA = 1,
  207. XML_ELEMENT_CONTENT_ELEMENT,
  208. XML_ELEMENT_CONTENT_SEQ,
  209. XML_ELEMENT_CONTENT_OR
  210. );
  211. (**
  212. * xmlElementContentOccur:
  213. *
  214. * Possible definitions of element content occurrences.
  215. *)
  216. xmlElementContentOccur = (
  217. XML_ELEMENT_CONTENT_ONCE = 1,
  218. XML_ELEMENT_CONTENT_OPT,
  219. XML_ELEMENT_CONTENT_MULT,
  220. XML_ELEMENT_CONTENT_PLUS
  221. );
  222. (**
  223. * xmlElementContent:
  224. *
  225. * An XML Element content as stored after parsing an element definition
  226. * in a DTD.
  227. *)
  228. xmlElementContent = record
  229. _type : xmlElementContentType; (* PCDATA, ELEMENT, SEQ or OR *)
  230. ocur : xmlElementContentOccur; (* ONCE, OPT, MULT or PLUS *)
  231. name : xmlCharPtr; (* Element name *)
  232. c1 : xmlElementContentPtr; (* first child *)
  233. c2 : xmlElementContentPtr; (* second child *)
  234. parent : xmlElementContentPtr; (* parent *)
  235. prefix : xmlCharPtr; (* Namespace prefix *)
  236. end;
  237. (**
  238. * xmlElementTypeVal:
  239. *
  240. * The different possibilities for an element content type.
  241. *)
  242. xmlElementTypeVal = (
  243. XML_ELEMENT_TYPE_UNDEFINED = 0,
  244. XML_ELEMENT_TYPE_EMPTY = 1,
  245. XML_ELEMENT_TYPE_ANY,
  246. XML_ELEMENT_TYPE_MIXED,
  247. XML_ELEMENT_TYPE_ELEMENT
  248. );
  249. (**
  250. * xmlElement:
  251. *
  252. * An XML Element declaration from a DTD.
  253. *)
  254. xmlElement = record
  255. _private : pointer; (* application data *)
  256. _type : xmlElementType; (* XML_ELEMENT_DECL, must be second ! *)
  257. name : xmlCharPtr; (* Element name *)
  258. children : xmlNodePtr; (* NULL *)
  259. last : xmlNodePtr; (* NULL *)
  260. parent : xmlDtdPtr; (* -> DTD *)
  261. next : xmlNodePtr; (* next sibling link *)
  262. prev : xmlNodePtr; (* previous sibling link *)
  263. doc : xmlDocPtr; (* the containing document *)
  264. etype : xmlElementTypeVal; (* The type *)
  265. content : xmlElementContentPtr; (* the allowed element content *)
  266. attributes : xmlAttributePtr; (* List of the declared attributes *)
  267. prefix : xmlCharPtr; (* the namespace prefix if any *)
  268. {$IFDEF LIBXML_REGEXP_ENABLED}
  269. contModel : xmlRegexpPtr; (* the validating regexp *)
  270. {$ELSE}
  271. contModel : pointer;
  272. {$ENDIF}
  273. end;
  274. (**
  275. * xmlBuf:
  276. *
  277. * A buffer structure, new one, the actual structure internals are not public
  278. *)
  279. xmlBuf = record end;
  280. (**
  281. * XML_LOCAL_NAMESPACE:
  282. *
  283. * A namespace declaration node.
  284. *)
  285. {$ENDIF}
  286. {$IFDEF CONST}
  287. XML_LOCAL_NAMESPACE = XML_NAMESPACE_DECL;
  288. {$ENDIF}
  289. {$IFDEF TYPE}
  290. xmlNsType = xmlElementType;
  291. (**
  292. * xmlNs:
  293. *
  294. * An XML namespace.
  295. * Note that prefix == NULL is valid, it defines the default namespace
  296. * within the subtree (until overridden).
  297. *
  298. * xmlNsType is unified with xmlElementType.
  299. *)
  300. xmlNs = record
  301. next : xmlNsPtr; (* next Ns link for this node *)
  302. _type : xmlNsType; (* global or local *)
  303. href : xmlCharPtr; (* URL for the namespace *)
  304. prefix : xmlCharPtr; (* prefix for the namespace *)
  305. _private : pointer; (* application data *)
  306. context : xmlDocPtr; (* normally an xmlDoc *)
  307. end;
  308. (**
  309. * xmlDtd:
  310. *
  311. * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
  312. * the internal subset and for the external subset.
  313. *)
  314. xmlDtd = record
  315. _private : pointer; (* application data *)
  316. _type : xmlElementType; (* XML_DTD_NODE, must be second ! *)
  317. name : xmlCharPtr; (* Name of the DTD *)
  318. children : xmlNodePtr; (* the value of the property link *)
  319. last : xmlNodePtr; (* last child link *)
  320. parent : xmlDocPtr; (* child->parent link *)
  321. next : xmlNodePtr; (* next sibling link *)
  322. prev : xmlNodePtr; (* previous sibling link *)
  323. doc : xmlDocPtr; (* the containing document *)
  324. (* End of common part *)
  325. notations : pointer; (* Hash table for notations if any *)
  326. elements : pointer; (* Hash table for elements if any *)
  327. attributes : pointer; (* Hash table for attributes if any *)
  328. entities : pointer; (* Hash table for entities if any *)
  329. ExternalID : xmlCharPtr; (* External identifier for PUBLIC DTD *)
  330. SystemID : xmlCharPtr; (* URI for a SYSTEM or PUBLIC DTD *)
  331. pentities : pointer; (* Hash table for param entities if any *)
  332. end;
  333. (**
  334. * xmlAttr:
  335. *
  336. * An attribute on an XML node.
  337. *)
  338. xmlAttr = record
  339. _private : pointer; (* application data *)
  340. _type : xmlElementType; (* XML_ATTRIBUTE_NODE, must be second ! *)
  341. name : xmlCharPtr; (* the name of the property *)
  342. children : xmlNodePtr; (* the value of the property *)
  343. last : xmlNodePtr; (* NULL *)
  344. parent : xmlNodePtr; (* child->parent link *)
  345. next : xmlAttrPtr; (* next sibling link *)
  346. prev : xmlAttrPtr; (* previous sibling link *)
  347. doc : xmlDocPtr; (* the containing document *)
  348. ns : xmlNsPtr; (* pointer to the associated namespace *)
  349. atype : xmlAttributeType; (* the attribute type if validating *)
  350. psvi : pointer; (* for type/PSVI informations *)
  351. end;
  352. (**
  353. * xmlID:
  354. *
  355. * An XML ID instance.
  356. *)
  357. xmlID = record
  358. next : xmlIDPtr; (* next ID *)
  359. value : xmlCharPtr; (* The ID name *)
  360. attr : xmlAttrPtr; (* The attribute holding it *)
  361. name : xmlCharPtr; (* The attribute if attr is not available *)
  362. lineno : cint; (* The line number if attr is not available *)
  363. doc : xmlDocPtr; (* The document holding the ID *)
  364. end;
  365. (**
  366. * xmlRef:
  367. *
  368. * An XML IDREF instance.
  369. *)
  370. xmlRef = record
  371. next : xmlRefPtr; (* next Ref *)
  372. value : xmlCharPtr; (* The Ref name *)
  373. attr : xmlAttrPtr; (* The attribute holding it *)
  374. name : xmlCharPtr; (* The attribute if attr is not available *)
  375. lineno : cint; (* The line number if attr is not available *)
  376. end;
  377. (**
  378. * xmlNode:
  379. *
  380. * A node in an XML tree.
  381. *)
  382. xmlNode = record
  383. _private : pointer; (* application data *)
  384. _type : xmlElementType; (* type number, must be second ! *)
  385. name : xmlCharPtr; (* the name of the node, or the entity *)
  386. children : xmlNodePtr; (* parent->childs link *)
  387. last : xmlNodePtr; (* last child link *)
  388. parent : xmlNodePtr; (* child->parent link *)
  389. next : xmlNodePtr; (* next sibling link *)
  390. prev : xmlNodePtr; (* previous sibling link *)
  391. doc : xmlDocPtr; (* the containing document *)
  392. (* End of common part *)
  393. ns : xmlNsPtr; (* pointer to the associated namespace *)
  394. content : xmlCharPtr; (* the content *)
  395. properties : xmlAttrPtr;(* properties list *)
  396. nsDef : xmlNsPtr; (* namespace definitions on this node *)
  397. psvi : pointer; (* for type/PSVI informations *)
  398. line : cushort; (* line number *)
  399. extra : cushort; (* extra data for XPath/XSLT *)
  400. end;
  401. {$ENDIF}
  402. {$IFDEF FUNCTION}
  403. (**
  404. * XML_GET_CONTENT:
  405. *
  406. * Macro to extract the content pointer of a node.
  407. *)
  408. function XML_GET_CONTENT(n: pointer): xmlCharPtr;
  409. (**
  410. * XML_GET_LINE:
  411. *
  412. * Macro to extract the line number of an element node.
  413. *)
  414. function XML_GET_LINE(n: Pointer): clong; inline;
  415. {$ENDIF}
  416. {$IFDEF TYPE}
  417. (**
  418. * xmlDoc:
  419. *
  420. * An XML document.
  421. *)
  422. xmlDoc = record
  423. _private : pointer; (* application data *)
  424. _type : xmlElementType; (* XML_DOCUMENT_NODE, must be second ! *)
  425. name : PAnsiChar; (* name/filename/URI of the document *)
  426. children : xmlCharPtr; (* the document tree *)
  427. last : xmlCharPtr; (* last child link *)
  428. parent : xmlCharPtr; (* child->parent link *)
  429. next : xmlCharPtr; (* next sibling link *)
  430. prev : xmlCharPtr; (* previous sibling link *)
  431. doc : xmlDocPtr; (* autoreference to itself *)
  432. (* End of common part *)
  433. compression : cint; (* level of zlib compression *)
  434. standalone : cint; (* standalone document (no external refs)
  435. 1 if standalone="yes"
  436. 0 if standalone="no"
  437. -1 if there is no XML declaration
  438. -2 if there is an XML declaration, but no
  439. standalone attribute was specified *)
  440. intSubset : xmlDtdPtr; (* the document internal subset *)
  441. extSubset : xmlDtdPtr; (* the document external subset *)
  442. oldNs : xmlNsPtr; (* Global namespace, the old way *)
  443. version : xmlCharPtr; (* the XML version string *)
  444. encoding : xmlCharPtr; (* external initial encoding, if any *)
  445. ids : pointer; (* Hash table for ID attributes if any *)
  446. refs : pointer; (* Hash table for IDREFs attributes if any *)
  447. URL : xmlCharPtr; (* The URI for that document *)
  448. charset : cint; (* encoding of the in-memory content
  449. actually an xmlCharEncoding *)
  450. dict : xmlDictPtr; (* dict used to allocate names or NULL *)
  451. psvi : pointer; (* for type/PSVI informations *)
  452. end;
  453. (**
  454. * xmlDOMWrapAcquireNsFunction:
  455. * @ctxt: a DOM wrapper context
  456. * @node: the context node (element or attribute)
  457. * @nsName: the requested namespace name
  458. * @nsPrefix: the requested namespace prefix
  459. *
  460. * A function called to acquire namespaces (xmlNs) from the wrapper.
  461. *
  462. * Returns an xmlNsPtr or NULL in case of an error.
  463. *)
  464. xmlDOMWrapAcquireNsFunction = function (ctxt: xmlDOMWrapCtxtPtr; node: xmlNodePtr; nsName, nsPrefix: xmlCharPtr): xmlNsPtr; EXTDECL;
  465. (**
  466. * xmlDOMWrapCtxt:
  467. *
  468. * Context for DOM wrapper-operations.
  469. *)
  470. xmlDOMWrapCtxt = record
  471. _private: pointer;
  472. (*
  473. * The type of this context, just in case we need specialized
  474. * contexts in the future.
  475. *)
  476. _type: cint;
  477. (*
  478. * Internal namespace map used for various operations.
  479. *)
  480. namespaceMap: pointer;
  481. (*
  482. * Use this one to acquire an xmlNsPtr intended for node->ns.
  483. * (Note that this is not intended for elem->nsDef).
  484. *)
  485. getNsForNodeFunc: xmlDOMWrapAcquireNsFunction;
  486. end;
  487. (**
  488. * xmlChildrenNode:
  489. *
  490. * Macro for compatibility naming layer with libxml1. Maps
  491. * to "children."
  492. *)
  493. {#ifndef xmlChildrenNode
  494. #define xmlChildrenNode children
  495. #endif}
  496. (**
  497. * xmlRootNode:
  498. *
  499. * Macro for compatibility naming layer with libxml1. Maps
  500. * to "children".
  501. *)
  502. {#ifndef xmlRootNode
  503. #define xmlRootNode children
  504. #endif}
  505. {$ENDIF}
  506. {$IFDEF FUNCTION}
  507. (*
  508. * Variables.
  509. *)
  510. (*
  511. * Some helper functions
  512. *)
  513. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XPATH_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED) or
  514. defined(LIBXML_DEBUG_ENABLED) or defined (LIBXML_HTML_ENABLED) or defined(LIBXML_SAX1_ENABLED) or
  515. defined(LIBXML_HTML_ENABLED) or defined(LIBXML_WRITER_ENABLED) or defined(LIBXML_DOCB_ENABLED)}
  516. function xmlValidateNCName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
  517. {$ENDIF}
  518. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  519. function xmlValidateQName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
  520. function xmlValidateName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
  521. function xmlValidateNMToken(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
  522. {$ENDIF}
  523. function xmlBuildQName(ncname, prefix, memory: xmlCharPtr; len: cint): xmlCharPtr; EXTDECL; external xml2lib;
  524. function xmlSplitQName2(name: xmlCharPtr; var prefix: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  525. function xmlSplitQName3(name: xmlCharPtr; var prefix: xmlCharPtr; var len: cint): xmlCharPtr; EXTDECL; external xml2lib;
  526. (*
  527. * Handling Buffers.
  528. *)
  529. procedure xmlSetBufferAllocationScheme(scheme: xmlBufferAllocationScheme); EXTDECL; external xml2lib;
  530. function xmlGetBufferAllocationScheme: xmlBufferAllocationScheme; EXTDECL; external xml2lib;
  531. function xmlBufferCreate: xmlBufferPtr; EXTDECL; external xml2lib;
  532. function xmlBufferCreateSize(size: csize_t): xmlBufferPtr; EXTDECL; external xml2lib;
  533. function xmlBufferCreateStatic(mem: pointer; size: csize_t): xmlBufferPtr; EXTDECL; external xml2lib;
  534. function xmlBufferResize(buf: xmlBufferPtr; size: cuint): cint; EXTDECL; external xml2lib;
  535. procedure xmlBufferFree(buf: xmlBufferPtr); EXTDECL; external xml2lib;
  536. procedure xmlBufferDump(fp: PFILE; buf: xmlBufferPtr); EXTDECL; external xml2lib;
  537. function xmlBufferAdd(buf: xmlBufferPtr; str: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
  538. function xmlBufferAddHead(buf: xmlBufferPtr; str: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
  539. function xmlBufferCat(buf: xmlBufferPtr; str: xmlCharPtr): cint; EXTDECL; external xml2lib;
  540. function xmlBufferCCat(buf: xmlBufferPtr; str: PAnsiChar): cint; EXTDECL; external xml2lib;
  541. function xmlBufferShrink(buf: xmlBufferPtr; len: cuint): cint; EXTDECL; external xml2lib;
  542. function xmlBufferGrow(buf: xmlBufferPtr; len: cuint): cint; EXTDECL; external xml2lib;
  543. procedure xmlBufferEmpty(buf: xmlBufferPtr); EXTDECL; external xml2lib;
  544. function xmlBufferContent(buf: xmlBufferPtr): xmlCharPtr; EXTDECL; external xml2lib;
  545. function xmlBufferDetach(buf: xmlBufferPtr): xmlCharPtr; EXTDECL; external xml2lib;
  546. procedure xmlBufferSetAllocationScheme(buf: xmlBufferPtr; scheme: xmlBufferAllocationScheme); EXTDECL; external xml2lib;
  547. function xmlBufferLength(buf: xmlBufferPtr): cint; EXTDECL; external xml2lib;
  548. (*
  549. * Creating/freeing new structures.
  550. *)
  551. function xmlCreateIntSubset(doc: xmlDocPtr; name, ExternalID, SystemID: xmlCharPtr): xmlDtdPtr; EXTDECL; external xml2lib;
  552. function xmlNewDtd(doc: xmlDocPtr; name, ExternalID, SystemID: xmlCharPtr): xmlDtdPtr; EXTDECL; external xml2lib;
  553. function xmlGetIntSubset(doc: xmlDocPtr): xmlDtdPtr; EXTDECL; external xml2lib;
  554. procedure xmlFreeDtd(cur: xmlDtdPtr); EXTDECL; external xml2lib;
  555. {$IFDEF LIBXML_LEGACY_ENABLED}
  556. function xmlNewGlobalNs(doc: xmlDocPtr; href, prefix: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
  557. {$ENDIF} (* LIBXML_LEGACY_ENABLED *)
  558. function xmlNewNs(node: xmlNodePtr; href, prefix: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
  559. procedure xmlFreeNs(cur: xmlNsPtr); EXTDECL; external xml2lib;
  560. procedure xmlFreeNsList(cur: xmlNsPtr); EXTDECL; external xml2lib;
  561. function xmlNewDoc(version: xmlCharPtr): xmlDocPtr; EXTDECL; external xml2lib;
  562. procedure xmlFreeDoc(cur: xmlDocPtr); EXTDECL; external xml2lib;
  563. function xmlNewDocProp(doc: xmlDocPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  564. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_HTML_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  565. function xmlNewProp(node: xmlNodePtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  566. {$ENDIF}
  567. function xmlNewNsProp(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  568. function xmlNewNsPropEatName(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  569. procedure xmlFreePropList(cur: xmlAttrPtr); EXTDECL; external xml2lib;
  570. procedure xmlFreeProp(cur: xmlAttrPtr); EXTDECL; external xml2lib;
  571. function xmlCopyProp(target: xmlNodePtr; cur: xmlAttrPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  572. function xmlCopyPropList(target: xmlNodePtr; cur: xmlAttrPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  573. {$IFDEF LIBXML_TREE_ENABLED}
  574. function xmlCopyDtd(dtd: xmlDtdPtr): xmlDtdPtr; EXTDECL; external xml2lib;
  575. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  576. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  577. function xmlCopyDoc(doc: xmlDocPtr; recursive: cint): xmlDocPtr; EXTDECL; external xml2lib;
  578. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) *)
  579. (*
  580. * Creating new nodes.
  581. *)
  582. function xmlNewDocNode(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  583. function xmlNewDocNodeEatName(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  584. function xmlNewNode(ns: xmlNsPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  585. function xmlNewNodeEatName(ns: xmlNsPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  586. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  587. function xmlNewChild(parent: xmlNodePtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  588. {$ENDIF}
  589. function xmlNewDocText(doc: xmlDocPtr; content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  590. function xmlNewText(content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  591. function xmlNewDocPI(doc: xmlDocPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  592. function xmlNewPI(name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  593. function xmlNewDocTextLen(doc: xmlDocPtr; content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
  594. function xmlNewTextLen(content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
  595. function xmlNewDocComment(doc: xmlDocPtr; content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  596. function xmlNewComment(content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  597. function xmlNewCDataBlock(doc: xmlDocPtr; content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
  598. function xmlNewCharRef(doc: xmlDocPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  599. function xmlNewReference(doc: xmlDocPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  600. function xmlCopyNode(node: xmlNodePtr; recursive: cint): xmlNodePtr; EXTDECL; external xml2lib;
  601. function xmlDocCopyNode(node: xmlNodePtr; doc: xmlDocPtr; recursive: cint): xmlNodePtr; EXTDECL; external xml2lib;
  602. function xmlDocCopyNodeList(doc: xmlDocPtr; node: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  603. function xmlCopyNodeList(node: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  604. {$IFDEF LIBXML_TREE_ENABLED}
  605. function xmlNewTextChild(parent: xmlNodePtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  606. function xmlNewDocRawNode(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  607. function xmlNewDocFragment(doc: xmlDocPtr): xmlNodePtr; EXTDECL; external xml2lib;
  608. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  609. (*
  610. * Navigating.
  611. *)
  612. function xmlGetLineNo(node: xmlNodePtr): clong; EXTDECL; external xml2lib;
  613. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_DEBUG_ENABLED)}
  614. function xmlGetNodePath(node: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
  615. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) *)
  616. function xmlDocGetRootElement(doc: xmlDocPtr): xmlNodePtr; EXTDECL; external xml2lib;
  617. function xmlGetLastChild(parent: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  618. function xmlNodeIsText(node: xmlNodePtr): cint; EXTDECL; external xml2lib;
  619. function xmlIsBlankNode(node: xmlNodePtr): cint; EXTDECL; external xml2lib;
  620. (*
  621. * Changing the structure.
  622. *)
  623. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_WRITER_ENABLED)}
  624. function xmlDocSetRootElement(doc: xmlDocPtr; root: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  625. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) *)
  626. {$IFDEF LIBXML_TREE_ENABLED}
  627. procedure xmlNodeSetName(cur: xmlNodePtr; name: xmlCharPtr); EXTDECL; external xml2lib;
  628. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  629. function xmlAddChild(parent, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  630. function xmlAddChildList(parent, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  631. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_WRITER_ENABLED)}
  632. function xmlReplaceNode(old, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  633. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) *)
  634. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_HTML_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  635. function xmlAddPrevSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  636. {$ENDIF} (* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED *)
  637. function xmlAddSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  638. function xmlAddNextSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  639. procedure xmlUnlinkNode(cur: xmlNodePtr); EXTDECL; external xml2lib;
  640. function xmlTextMerge(first, second: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  641. function xmlTextConcat(node: xmlNodePtr; name: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
  642. procedure xmlFreeNodeList(cur: xmlNodePtr); EXTDECL; external xml2lib;
  643. procedure xmlFreeNode(cur: xmlNodePtr); EXTDECL; external xml2lib;
  644. procedure xmlSetTreeDoc(tree: xmlNodePtr; doc: xmlDocPtr); EXTDECL; external xml2lib;
  645. procedure xmlSetListDoc(list: xmlNodePtr; doc: xmlDocPtr); EXTDECL; external xml2lib;
  646. (*
  647. * Namespaces.
  648. *)
  649. function xmlSearchNs(doc: xmlDocPtr; node: xmlNodePtr; nameSpace: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
  650. function xmlSearchNsByHref(doc: xmlDocPtr; node: xmlNodePtr; href: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
  651. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XPATH_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  652. function xmlGetNsList(doc: xmlDocPtr; node: xmlNodePtr): xmlNsPtrPtr; EXTDECL; external xml2lib;
  653. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) *)
  654. procedure xmlSetNs(node: xmlNodePtr; ns: xmlNsPtr); EXTDECL; external xml2lib;
  655. function xmlCopyNamespace(cur: xmlNsPtr): xmlNsPtr; EXTDECL; external xml2lib;
  656. function xmlCopyNamespaceList(cur: xmlNsPtr): xmlNsPtr; EXTDECL; external xml2lib;
  657. (*
  658. * Changing the content.
  659. *)
  660. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XINCLUDE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED) or defined(LIBXML_HTML_ENABLED)}
  661. function xmlSetProp(node: xmlNodePtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  662. function xmlSetNsProp(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  663. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) *)
  664. function xmlGetNoNsProp(node: xmlNodePtr; name: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  665. function xmlGetProp(node: xmlNodePtr; name: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  666. function xmlHasProp(node: xmlNodePtr; name: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  667. function xmlHasNsProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  668. function xmlGetNsProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  669. function xmlStringGetNodeList(doc: xmlDocPtr; value: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  670. function xmlStringLenGetNodeList(doc: xmlDocPtr; value: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
  671. function xmlNodeListGetString(doc: xmlDocPtr; list: xmlNodePtr; _inLine: cint): xmlCharPtr; EXTDECL; external xml2lib;
  672. {$IFDEF LIBXML_TREE_ENABLED}
  673. function xmlNodeListGetRawString(doc: xmlDocPtr; list: xmlNodePtr; _inLine: cint): xmlCharPtr; EXTDECL; external xml2lib;
  674. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  675. procedure xmlNodeSetContent(node: xmlNodePtr; content: xmlCharPtr); EXTDECL; external xml2lib;
  676. {$IFDEF LIBXML_TREE_ENABLED}
  677. procedure xmlNodeSetContentLen(node: xmlNodePtr; content: xmlCharPtr; len: cint); EXTDECL; external xml2lib;
  678. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  679. procedure xmlNodeAddContent(cur: xmlNodePtr; content: xmlCharPtr); EXTDECL; external xml2lib;
  680. procedure xmlNodeAddContentLen(cur: xmlNodePtr; content: xmlCharPtr; len: cint); EXTDECL; external xml2lib;
  681. function xmlNodeGetContent(cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
  682. function xmlNodeBufGetContent(buffer: xmlBufferPtr; cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
  683. function xmlNodeGetLang(cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
  684. function xmlNodeGetSpacePreserve(cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
  685. {$IFDEF LIBXML_TREE_ENABLED}
  686. procedure xmlNodeSetLang(cur: xmlNodePtr; lang: xmlCharPtr); EXTDECL; external xml2lib;
  687. procedure xmlNodeSetSpacePreserve(cur: xmlNodePtr; val: cint); EXTDECL; external xml2lib;
  688. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  689. function xmlNodeGetBase(doc: xmlDocPtr; cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
  690. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XINCLUDE_ENABLED)}
  691. procedure xmlNodeSetBase(cur: xmlNodePtr; uri: xmlCharPtr); EXTDECL; external xml2lib;
  692. {$ENDIF}
  693. (*
  694. * Removing content.
  695. *)
  696. function xmlRemoveProp(cur: xmlAttrPtr): cint; EXTDECL; external xml2lib;
  697. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  698. function xmlUnsetNsProp(node: xmlNodePtr; ns: xmlNsPtr; name: xmlCharPtr): cint; EXTDECL; external xml2lib;
  699. function xmlUnsetProp(node: xmlNodePtr; name: xmlCharPtr): cint; EXTDECL; external xml2lib;
  700. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) *)
  701. (*
  702. * Internal, don't use.
  703. *)
  704. {external xml2lib void EXTDECL
  705. xmlBufferWriteCHAR (xmlBufferPtr buf,
  706. xmlChar *string);
  707. external xml2lib void EXTDECL
  708. xmlBufferWriteChar (xmlBufferPtr buf,
  709. AnsiChar *string);
  710. external xml2lib void EXTDECL
  711. xmlBufferWriteQuotedString(xmlBufferPtr buf,
  712. xmlChar *string);
  713. }
  714. {$IFDEF LIBXML_OUTPUT_ENABLED}
  715. {external xml2lib void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
  716. xmlDocPtr doc,
  717. xmlAttrPtr attr,
  718. xmlChar *string);}
  719. {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
  720. {$IFDEF LIBXML_TREE_ENABLED}
  721. (*
  722. * Namespace handling.
  723. *)
  724. function xmlReconciliateNs(doc: xmlDocPtr; tree: xmlNodePtr): cint; EXTDECL; external xml2lib;
  725. {$ENDIF}
  726. {$IFDEF LIBXML_OUTPUT_ENABLED}
  727. (*
  728. * Saving.
  729. *)
  730. procedure xmlDocDumpFormatMemory(cur: xmlDocPtr; var mem: xmlCharPtr; var size: cint; format: cint); EXTDECL; external xml2lib;
  731. procedure xmlDocDumpMemory(cur: xmlDocPtr; var mem: xmlCharPtr; var size: cint); EXTDECL; external xml2lib;
  732. procedure xmlDocDumpMemoryEnc(out_doc: xmlDocPtr; var doc_txt_ptr: xmlCharPtr; var doc_txt_len: cint; txt_encoding: PAnsiChar); EXTDECL; external xml2lib;
  733. procedure xmlDocDumpFormatMemoryEnc(out_doc: xmlDocPtr; var doc_txt_ptr: xmlCharPtr; var doc_txt_len: cint; txt_encoding: PAnsiChar; format: cint); EXTDECL; external xml2lib;
  734. function xmlDocFormatDump(f: PFILE; cur: xmlDocPtr; format: cint): cint; EXTDECL; external xml2lib;
  735. function xmlDocDump(f: PFILE; cur: xmlDocPtr): cint; EXTDECL; external xml2lib;
  736. function xmlElemDump(f: PFILE; doc: xmlDocPtr; cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
  737. function xmlSaveFormatFile(filename: PAnsiChar; cur: xmlDocPtr; format: cint): cint; EXTDECL; external xml2lib;
  738. function xmlSaveFile(filename: PAnsiChar; cur: xmlDocPtr): cint; EXTDECL; external xml2lib;
  739. function xmlBufNodeDump(buf: xmlBufPtr; doc: xmlDocPtr; cur: xmlNodePtr; level: cint; format: cint): csize_t; EXTDECL; external xml2lib;
  740. function xmlNodeDump(buf: xmlBufferPtr; doc: xmlDocPtr; cur: xmlNodePtr; level, format: cint): cint; EXTDECL; external xml2lib;
  741. function xmlSaveFileTo(buf: xmlOutputBufferPtr; cur: xmlDocPtr; encoding: PAnsiChar): cint; EXTDECL; external xml2lib;
  742. function xmlSaveFormatFileTo(buf: xmlOutputBufferPtr; cur: xmlDocPtr; encoding: PAnsiChar; format: cint): cint; EXTDECL; external xml2lib;
  743. procedure xmlNodeDumpOutput(buf: xmlBufferPtr; doc: xmlDocPtr; cur: xmlNodePtr; level, format: cint; encoding: PAnsiChar); EXTDECL; external xml2lib;
  744. function xmlSaveFormatFileEnc(filename: PAnsiChar; cur: xmlDocPtr; encoding: PAnsiChar; format: cint): cint; EXTDECL; external xml2lib;
  745. function xmlSaveFileEnc(filename: PAnsiChar; cur: xmlDocPtr; encoding: PAnsiChar): cint; EXTDECL; external xml2lib;
  746. {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
  747. (*
  748. * XHTML
  749. *)
  750. function xmlIsXHTML(systemID, publicID: xmlCharPtr): cint; EXTDECL; external xml2lib;
  751. (*
  752. * Compression.
  753. *)
  754. function xmlGetDocCompressMode(doc: xmlDocPtr): cint; EXTDECL; external xml2lib;
  755. procedure xmlSetDocCompressMode(doc: xmlDocPtr; mode: cint); EXTDECL; external xml2lib;
  756. function xmlGetCompressMode: cint; EXTDECL; external xml2lib;
  757. procedure xmlSetCompressMode(mode: cint); EXTDECL; external xml2lib;
  758. (*
  759. * DOM-wrapper helper functions.
  760. *)
  761. function xmlDOMWrapNewCtxt: xmlDOMWrapCtxtPtr; EXTDECL; external xml2lib;
  762. procedure xmlDOMWrapFreeCtxt(ctxt: xmlDOMWrapCtxtPtr); EXTDECL; external xml2lib;
  763. function xmlDOMWrapReconcileNamespaces(ctxt: xmlDOMWrapCtxtPtr; elem: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
  764. function xmlDOMWrapAdoptNode(ctxt: xmlDOMWrapCtxtPtr; sourceDoc: xmlDocPtr; node: xmlNodePtr; destDoc: xmlDocPtr; destParent: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
  765. function xmlDOMWrapRemoveNode(ctxt: xmlDOMWrapCtxtPtr; doc: xmlDocPtr; node: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
  766. function xmlDOMWrapCloneNode(ctxt: xmlDOMWrapCtxtPtr; sourceDoc: xmlDocPtr; node: xmlNodePtr; var clonedNode: xmlNodePtr; destDoc: xmlDocPtr; destParent: xmlNodePtr; deep, options: cint): cint; EXTDECL; external xml2lib;
  767. {$IFDEF LIBXML_TREE_ENABLED}
  768. function xmlChildElementCount(parent: xmlNodePtr): clong; EXTDECL; external xml2lib;
  769. function xmlNextElementSibling(node: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  770. function xmlFirstElementChild(parent: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  771. function xmlLastElementChild(parent: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  772. function xmlPreviousElementSibling(node: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  773. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  774. {$ENDIF}
  775. {$IFDEF FUNCTIONVAR}
  776. (*
  777. * Variables.
  778. *)
  779. (*
  780. * Some helper functions
  781. *)
  782. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XPATH_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED) or
  783. defined(LIBXML_DEBUG_ENABLED) or defined (LIBXML_HTML_ENABLED) or defined(LIBXML_SAX1_ENABLED) or
  784. defined(LIBXML_HTML_ENABLED) or defined(LIBXML_WRITER_ENABLED) or defined(LIBXML_DOCB_ENABLED)}
  785. xmlValidateNCName: function(value: xmlCharPtr; space: cint): cint; EXTDECL;
  786. {$ENDIF}
  787. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  788. xmlValidateQName: function(value: xmlCharPtr; space: cint): cint; EXTDECL;
  789. xmlValidateName: function(value: xmlCharPtr; space: cint): cint; EXTDECL;
  790. xmlValidateNMToken: function(value: xmlCharPtr; space: cint): cint; EXTDECL;
  791. {$ENDIF}
  792. xmlBuildQName: function(ncname, prefix, memory: xmlCharPtr; len: cint): xmlCharPtr; EXTDECL;
  793. xmlSplitQName2: function(name: xmlCharPtr; var prefix: xmlCharPtr): xmlCharPtr; EXTDECL;
  794. xmlSplitQName3: function(name: xmlCharPtr; var prefix: xmlCharPtr; var len: cint): xmlCharPtr; EXTDECL;
  795. (*
  796. * Handling Buffers.
  797. *)
  798. xmlSetBufferAllocationScheme: procedure(scheme: xmlBufferAllocationScheme); EXTDECL;
  799. xmlGetBufferAllocationScheme: function: xmlBufferAllocationScheme; EXTDECL;
  800. xmlBufferCreate: function: xmlBufferPtr; EXTDECL;
  801. xmlBufferCreateSize: function(size: csize_t): xmlBufferPtr; EXTDECL;
  802. xmlBufferCreateStatic: function(mem: pointer; size: csize_t): xmlBufferPtr; EXTDECL;
  803. xmlBufferResize: function(buf: xmlBufferPtr; size: cuint): cint; EXTDECL;
  804. xmlBufferFree: procedure(buf: xmlBufferPtr); EXTDECL;
  805. xmlBufferDump: procedure(fp: PFILE; buf: xmlBufferPtr); EXTDECL;
  806. xmlBufferAdd: function(buf: xmlBufferPtr; str: xmlCharPtr; len: cint): cint; EXTDECL;
  807. xmlBufferAddHead: function(buf: xmlBufferPtr; str: xmlCharPtr; len: cint): cint; EXTDECL;
  808. xmlBufferCat: function(buf: xmlBufferPtr; str: xmlCharPtr): cint; EXTDECL;
  809. xmlBufferCCat: function(buf: xmlBufferPtr; str: PAnsiChar): cint; EXTDECL;
  810. xmlBufferShrink: function(buf: xmlBufferPtr; len: cuint): cint; EXTDECL;
  811. xmlBufferGrow: function(buf: xmlBufferPtr; len: cuint): cint; EXTDECL;
  812. xmlBufferEmpty: procedure(buf: xmlBufferPtr); EXTDECL;
  813. xmlBufferContent: function(buf: xmlBufferPtr): xmlCharPtr; EXTDECL;
  814. xmlBufferDetach: function(buf: xmlBufferPtr): xmlCharPtr; EXTDECL;
  815. xmlBufferSetAllocationScheme: procedure(buf: xmlBufferPtr; scheme: xmlBufferAllocationScheme); EXTDECL;
  816. xmlBufferLength: function(buf: xmlBufferPtr): cint; EXTDECL;
  817. (*
  818. * Creating/freeing new structures.
  819. *)
  820. xmlCreateIntSubset: function(doc: xmlDocPtr; name, ExternalID, SystemID: xmlCharPtr): xmlDtdPtr; EXTDECL;
  821. xmlNewDtd: function(doc: xmlDocPtr; name, ExternalID, SystemID: xmlCharPtr): xmlDtdPtr; EXTDECL;
  822. xmlGetIntSubset: function(doc: xmlDocPtr): xmlDtdPtr; EXTDECL;
  823. xmlFreeDtd: procedure(cur: xmlDtdPtr); EXTDECL;
  824. {$IFDEF LIBXML_LEGACY_ENABLED}
  825. xmlNewGlobalNs: function(doc: xmlDocPtr; href, prefix: xmlCharPtr): xmlNsPtr; EXTDECL;
  826. {$ENDIF} (* LIBXML_LEGACY_ENABLED *)
  827. xmlNewNs: function(node: xmlNodePtr; href, prefix: xmlCharPtr): xmlNsPtr; EXTDECL;
  828. xmlFreeNs: procedure(cur: xmlNsPtr); EXTDECL;
  829. xmlFreeNsList: procedure(cur: xmlNsPtr); EXTDECL;
  830. xmlNewDoc: function(version: xmlCharPtr): xmlDocPtr; EXTDECL;
  831. xmlFreeDoc: procedure(cur: xmlDocPtr); EXTDECL;
  832. xmlNewDocProp: function(doc: xmlDocPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL;
  833. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_HTML_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  834. xmlNewProp: function(node: xmlNodePtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL;
  835. {$ENDIF}
  836. xmlNewNsProp: function(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL;
  837. xmlNewNsPropEatName: function(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL;
  838. xmlFreePropList: procedure(cur: xmlAttrPtr); EXTDECL;
  839. xmlFreeProp: procedure(cur: xmlAttrPtr); EXTDECL;
  840. xmlCopyProp: function(target: xmlNodePtr; cur: xmlAttrPtr): xmlAttrPtr; EXTDECL;
  841. xmlCopyPropList: function(target: xmlNodePtr; cur: xmlAttrPtr): xmlAttrPtr; EXTDECL;
  842. {$IFDEF LIBXML_TREE_ENABLED}
  843. xmlCopyDtd: function(dtd: xmlDtdPtr): xmlDtdPtr; EXTDECL;
  844. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  845. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  846. xmlCopyDoc: function(doc: xmlDocPtr; recursive: cint): xmlDocPtr; EXTDECL;
  847. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) *)
  848. (*
  849. * Creating new nodes.
  850. *)
  851. xmlNewDocNode: function(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL;
  852. xmlNewDocNodeEatName: function(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL;
  853. xmlNewNode: function(ns: xmlNsPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL;
  854. xmlNewNodeEatName: function(ns: xmlNsPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL;
  855. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  856. xmlNewChild: function(parent: xmlNodePtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL;
  857. {$ENDIF}
  858. xmlNewDocText: function(doc: xmlDocPtr; content: xmlCharPtr): xmlNodePtr; EXTDECL;
  859. xmlNewText: function(content: xmlCharPtr): xmlNodePtr; EXTDECL;
  860. xmlNewDocPI: function(doc: xmlDocPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL;
  861. xmlNewPI: function(name, content: xmlCharPtr): xmlNodePtr; EXTDECL;
  862. xmlNewDocTextLen: function(doc: xmlDocPtr; content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL;
  863. xmlNewTextLen: function(content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL;
  864. xmlNewDocComment: function(doc: xmlDocPtr; content: xmlCharPtr): xmlNodePtr; EXTDECL;
  865. xmlNewComment: function(content: xmlCharPtr): xmlNodePtr; EXTDECL;
  866. xmlNewCDataBlock: function(doc: xmlDocPtr; content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL;
  867. xmlNewCharRef: function(doc: xmlDocPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL;
  868. xmlNewReference: function(doc: xmlDocPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL;
  869. xmlCopyNode: function(node: xmlNodePtr; recursive: cint): xmlNodePtr; EXTDECL;
  870. xmlDocCopyNode: function(node: xmlNodePtr; doc: xmlDocPtr; recursive: cint): xmlNodePtr; EXTDECL;
  871. xmlDocCopyNodeList: function(doc: xmlDocPtr; node: xmlNodePtr): xmlNodePtr; EXTDECL;
  872. xmlCopyNodeList: function(node: xmlNodePtr): xmlNodePtr; EXTDECL;
  873. {$IFDEF LIBXML_TREE_ENABLED}
  874. xmlNewTextChild: function(parent: xmlNodePtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL;
  875. xmlNewDocRawNode: function(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL;
  876. xmlNewDocFragment: function(doc: xmlDocPtr): xmlNodePtr; EXTDECL;
  877. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  878. (*
  879. * Navigating.
  880. *)
  881. xmlGetLineNo: function(node: xmlNodePtr): clong; EXTDECL;
  882. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_DEBUG_ENABLED)}
  883. xmlGetNodePath: function(node: xmlNodePtr): xmlCharPtr; EXTDECL;
  884. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) *)
  885. xmlDocGetRootElement: function(doc: xmlDocPtr): xmlNodePtr; EXTDECL;
  886. xmlGetLastChild: function(parent: xmlNodePtr): xmlNodePtr; EXTDECL;
  887. xmlNodeIsText: function(node: xmlNodePtr): cint; EXTDECL;
  888. xmlIsBlankNode: function(node: xmlNodePtr): cint; EXTDECL;
  889. (*
  890. * Changing the structure.
  891. *)
  892. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_WRITER_ENABLED)}
  893. xmlDocSetRootElement: function(doc: xmlDocPtr; root: xmlNodePtr): xmlNodePtr; EXTDECL;
  894. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) *)
  895. {$IFDEF LIBXML_TREE_ENABLED}
  896. xmlNodeSetName: procedure(cur: xmlNodePtr; name: xmlCharPtr); EXTDECL;
  897. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  898. xmlAddChild: function (parent, cur: xmlNodePtr): xmlNodePtr; EXTDECL;
  899. xmlAddChildList: function(parent, cur: xmlNodePtr): xmlNodePtr; EXTDECL;
  900. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_WRITER_ENABLED)}
  901. xmlReplaceNode: function(old, cur: xmlNodePtr): xmlNodePtr; EXTDECL;
  902. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) *)
  903. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_HTML_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  904. xmlAddPrevSibling: function(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL;
  905. {$ENDIF} (* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED *)
  906. xmlAddSibling: function(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL;
  907. xmlAddNextSibling: function(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL;
  908. xmlUnlinkNode: procedure(cur: xmlNodePtr); EXTDECL;
  909. xmlTextMerge: function(first, second: xmlNodePtr): xmlNodePtr; EXTDECL;
  910. xmlTextConcat: function(node: xmlNodePtr; name: xmlCharPtr; len: cint): cint; EXTDECL;
  911. xmlFreeNodeList: procedure(cur: xmlNodePtr); EXTDECL;
  912. xmlFreeNode: procedure(cur: xmlNodePtr); EXTDECL;
  913. xmlSetTreeDoc: procedure(tree: xmlNodePtr; doc: xmlDocPtr); EXTDECL;
  914. xmlSetListDoc: procedure(list: xmlNodePtr; doc: xmlDocPtr); EXTDECL;
  915. (*
  916. * Namespaces.
  917. *)
  918. xmlSearchNs: function(doc: xmlDocPtr; node: xmlNodePtr; nameSpace: xmlCharPtr): xmlNsPtr; EXTDECL;
  919. xmlSearchNsByHref: function(doc: xmlDocPtr; node: xmlNodePtr; href: xmlCharPtr): xmlNsPtr; EXTDECL;
  920. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XPATH_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  921. xmlGetNsList: function(doc: xmlDocPtr; node: xmlNodePtr): xmlNsPtrPtr; EXTDECL;
  922. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) *)
  923. xmlSetNs: procedure(node: xmlNodePtr; ns: xmlNsPtr); EXTDECL;
  924. xmlCopyNamespace: function(cur: xmlNsPtr): xmlNsPtr; EXTDECL;
  925. xmlCopyNamespaceList: function (cur: xmlNsPtr): xmlNsPtr; EXTDECL;
  926. (*
  927. * Changing the content.
  928. *)
  929. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XINCLUDE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED) or defined(LIBXML_HTML_ENABLED)}
  930. xmlSetProp: function(node: xmlNodePtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL;
  931. xmlSetNsProp: function(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL;
  932. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) *)
  933. xmlGetNoNsProp: function(node: xmlNodePtr; name: xmlCharPtr): xmlCharPtr; EXTDECL;
  934. xmlGetProp: function(node: xmlNodePtr; name: xmlCharPtr): xmlCharPtr; EXTDECL;
  935. xmlHasProp: function(node: xmlNodePtr; name: xmlCharPtr): xmlAttrPtr; EXTDECL;
  936. xmlHasNsProp: function(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr; EXTDECL;
  937. xmlGetNsProp: function(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlCharPtr; EXTDECL;
  938. xmlStringGetNodeList: function(doc: xmlDocPtr; value: xmlCharPtr): xmlNodePtr; EXTDECL;
  939. xmlStringLenGetNodeList: function(doc: xmlDocPtr; value: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL;
  940. xmlNodeListGetString: function(doc: xmlDocPtr; list: xmlNodePtr; _inLine: cint): xmlCharPtr; EXTDECL;
  941. {$IFDEF LIBXML_TREE_ENABLED}
  942. xmlNodeListGetRawString: function(doc: xmlDocPtr; list: xmlNodePtr; _inLine: cint): xmlCharPtr; EXTDECL;
  943. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  944. xmlNodeSetContent: procedure(node: xmlNodePtr; content: xmlCharPtr); EXTDECL;
  945. {$IFDEF LIBXML_TREE_ENABLED}
  946. xmlNodeSetContentLen: procedure(node: xmlNodePtr; content: xmlCharPtr; len: cint); EXTDECL;
  947. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  948. xmlNodeAddContent: procedure(cur: xmlNodePtr; content: xmlCharPtr); EXTDECL;
  949. xmlNodeAddContentLen: procedure(cur: xmlNodePtr; content: xmlCharPtr; len: cint); EXTDECL;
  950. xmlNodeGetContent: function(cur: xmlNodePtr): xmlCharPtr; EXTDECL;
  951. xmlNodeBufGetContent: function(buffer: xmlBufferPtr; cur: xmlNodePtr): cint; EXTDECL;
  952. xmlNodeGetLang: function(cur: xmlNodePtr): xmlCharPtr; EXTDECL;
  953. xmlNodeGetSpacePreserve: function(cur: xmlNodePtr): cint; EXTDECL;
  954. {$IFDEF LIBXML_TREE_ENABLED}
  955. xmlNodeSetLang: procedure(cur: xmlNodePtr; lang: xmlCharPtr); EXTDECL;
  956. xmlNodeSetSpacePreserve: procedure(cur: xmlNodePtr; val: cint); EXTDECL;
  957. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  958. xmlNodeGetBase: function(doc: xmlDocPtr; cur: xmlNodePtr): xmlCharPtr; EXTDECL;
  959. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XINCLUDE_ENABLED)}
  960. xmlNodeSetBase: procedure(cur: xmlNodePtr; uri: xmlCharPtr); EXTDECL;
  961. {$ENDIF}
  962. (*
  963. * Removing content.
  964. *)
  965. xmlRemoveProp: function(cur: xmlAttrPtr): cint; EXTDECL;
  966. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  967. xmlUnsetNsProp: function(node: xmlNodePtr; ns: xmlNsPtr; name: xmlCharPtr): cint; EXTDECL;
  968. xmlUnsetProp: function(node: xmlNodePtr; name: xmlCharPtr): cint; EXTDECL;
  969. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) *)
  970. (*
  971. * Internal, don't use.
  972. *)
  973. {external xml2lib void EXTDECL
  974. xmlBufferWriteCHAR (xmlBufferPtr buf,
  975. xmlChar *string);
  976. external xml2lib void EXTDECL
  977. xmlBufferWriteChar (xmlBufferPtr buf,
  978. AnsiChar *string);
  979. external xml2lib void EXTDECL
  980. xmlBufferWriteQuotedString(xmlBufferPtr buf,
  981. xmlChar *string);
  982. }
  983. {$IFDEF LIBXML_OUTPUT_ENABLED}
  984. {external xml2lib void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
  985. xmlDocPtr doc,
  986. xmlAttrPtr attr,
  987. xmlChar *string);}
  988. {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
  989. {$IFDEF LIBXML_TREE_ENABLED}
  990. (*
  991. * Namespace handling.
  992. *)
  993. xmlReconciliateNs: function(doc: xmlDocPtr; tree: xmlNodePtr): cint; EXTDECL;
  994. {$ENDIF}
  995. {$IFDEF LIBXML_OUTPUT_ENABLED}
  996. (*
  997. * Saving.
  998. *)
  999. xmlDocDumpFormatMemory: procedure(cur: xmlDocPtr; var mem: xmlCharPtr; var size: cint; format: cint); EXTDECL;
  1000. xmlDocDumpMemory: procedure(cur: xmlDocPtr; var mem: xmlCharPtr; var size: cint); EXTDECL;
  1001. xmlDocDumpMemoryEnc: procedure(out_doc: xmlDocPtr; var doc_txt_ptr: xmlCharPtr; var doc_txt_len: cint; txt_encoding: PAnsiChar); EXTDECL;
  1002. xmlDocDumpFormatMemoryEnc: procedure(out_doc: xmlDocPtr; var doc_txt_ptr: xmlCharPtr; var doc_txt_len: cint; txt_encoding: PAnsiChar; format: cint); EXTDECL;
  1003. xmlDocFormatDump: function(f: PFILE; cur: xmlDocPtr; format: cint): cint; EXTDECL;
  1004. xmlDocDump: function(f: PFILE; cur: xmlDocPtr): cint; EXTDECL;
  1005. xmlElemDump: function(f: PFILE; doc: xmlDocPtr; cur: xmlNodePtr): cint; EXTDECL;
  1006. xmlSaveFormatFile: function(filename: PAnsiChar; cur: xmlDocPtr; format: cint): cint; EXTDECL;
  1007. xmlSaveFile: function(filename: PAnsiChar; cur: xmlDocPtr): cint; EXTDECL;
  1008. xmlBufNodeDump: function(buf: xmlBufPtr; doc: xmlDocPtr; cur: xmlNodePtr; level: cint; format: cint): csize_t; EXTDECL;
  1009. xmlNodeDump: function(buf: xmlBufferPtr; doc: xmlDocPtr; cur: xmlNodePtr; level, format: cint): cint; EXTDECL;
  1010. xmlSaveFileTo: function(buf: xmlOutputBufferPtr; cur: xmlDocPtr; encoding: PAnsiChar): cint; EXTDECL;
  1011. xmlSaveFormatFileTo: function(buf: xmlOutputBufferPtr; cur: xmlDocPtr; encoding: PAnsiChar; format: cint): cint; EXTDECL;
  1012. xmlNodeDumpOutput: procedure(buf: xmlBufferPtr; doc: xmlDocPtr; cur: xmlNodePtr; level, format: cint; encoding: PAnsiChar); EXTDECL;
  1013. xmlSaveFormatFileEnc: function(filename: PAnsiChar; cur: xmlDocPtr; encoding: PAnsiChar; format: cint): cint; EXTDECL;
  1014. xmlSaveFileEnc: function(filename: PAnsiChar; cur: xmlDocPtr; encoding: PAnsiChar): cint; EXTDECL;
  1015. {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
  1016. (*
  1017. * XHTML
  1018. *)
  1019. xmlIsXHTML: function(systemID, publicID: xmlCharPtr): cint; EXTDECL;
  1020. (*
  1021. * Compression.
  1022. *)
  1023. xmlGetDocCompressMode: function(doc: xmlDocPtr): cint; EXTDECL;
  1024. xmlSetDocCompressMode: procedure(doc: xmlDocPtr; mode: cint); EXTDECL;
  1025. xmlGetCompressMode: function: cint; EXTDECL;
  1026. xmlSetCompressMode: procedure(mode: cint); EXTDECL;
  1027. (*
  1028. * DOM-wrapper helper functions.
  1029. *)
  1030. xmlDOMWrapNewCtxt: function: xmlDOMWrapCtxtPtr; EXTDECL;
  1031. xmlDOMWrapFreeCtxt: procedure(ctxt: xmlDOMWrapCtxtPtr); EXTDECL;
  1032. xmlDOMWrapReconcileNamespaces: function(ctxt: xmlDOMWrapCtxtPtr; elem: xmlNodePtr; options: cint): cint; EXTDECL;
  1033. xmlDOMWrapAdoptNode: function(ctxt: xmlDOMWrapCtxtPtr; sourceDoc: xmlDocPtr; node: xmlNodePtr; destDoc: xmlDocPtr; destParent: xmlNodePtr; options: cint): cint; EXTDECL;
  1034. xmlDOMWrapRemoveNode: function(ctxt: xmlDOMWrapCtxtPtr; doc: xmlDocPtr; node: xmlNodePtr; options: cint): cint; EXTDECL;
  1035. xmlDOMWrapCloneNode: function(ctxt: xmlDOMWrapCtxtPtr; sourceDoc: xmlDocPtr; node: xmlNodePtr; var clonedNode: xmlNodePtr; destDoc: xmlDocPtr; destParent: xmlNodePtr; deep, options: cint): cint; EXTDECL;
  1036. {$IFDEF LIBXML_TREE_ENABLED}
  1037. xmlChildElementCount: function(parent: xmlNodePtr): clong; EXTDECL;
  1038. xmlNextElementSibling: function(node: xmlNodePtr): xmlNodePtr; EXTDECL;
  1039. xmlFirstElementChild: function(parent: xmlNodePtr): xmlNodePtr; EXTDECL;
  1040. xmlLastElementChild: function(parent: xmlNodePtr): xmlNodePtr; EXTDECL;
  1041. xmlPreviousElementSibling: function(node: xmlNodePtr): xmlNodePtr; EXTDECL;
  1042. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  1043. {$ENDIF}