tree.inc 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812
  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. {$ENDIF}
  30. (*
  31. * Some of the basic types pointer to structures:
  32. *)
  33. {$IFDEF CONST}
  34. (**
  35. * BASE_BUFFER_SIZE:
  36. *
  37. * default buffer size 4000.
  38. *)
  39. BASE_BUFFER_SIZE = 4096;
  40. (**
  41. * LIBXML_NAMESPACE_DICT:
  42. *
  43. * Defines experimental behaviour:
  44. * 1) xmlNs gets an additional field @context (a xmlDoc)
  45. * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
  46. *)
  47. {.$DEFINE LIBXML_NAMESPACE_DICT}
  48. (**
  49. * LIBXML_XML_NAMESPACE:
  50. *
  51. * This is the namespace for the special xml: prefix predefined in the
  52. * XML Namespace specification.
  53. *)
  54. __LIBXML_XML_NAMESPACE: String = 'http://www.w3.org/XML/1998/namespace';
  55. LIBXML_XML_NAMESPACE: xmlCharPtr = @__LIBXML_XML_NAMESPACE[1];
  56. (**
  57. * XML_XML_ID:
  58. *
  59. * This is the name for the special xml:id attribute
  60. *)
  61. __LIBXML_XML_ID: String = 'xml:id';
  62. LIBXML_XML_ID: xmlCharPtr = @__LIBXML_XML_ID[1];
  63. {$ENDIF}
  64. {$IFDEF TYPE}
  65. (**
  66. * xmlBufferAllocationScheme:
  67. *
  68. * A buffer allocation scheme can be defined to either match exactly the
  69. * need or double it's allocated size each time it is found too small.
  70. *)
  71. xmlBufferAllocationScheme = (
  72. XML_BUFFER_ALLOC_DOUBLEIT,
  73. XML_BUFFER_ALLOC_EXACT,
  74. XML_BUFFER_ALLOC_IMMUTABLE
  75. );
  76. (**
  77. * xmlBuffer:
  78. *
  79. * A buffer structure.
  80. *)
  81. xmlBuffer = record
  82. content : xmlCharPtr; (* The buffer content UTF8 *)
  83. use : cuint; (* The buffer size used *)
  84. size : cuint; (* The buffer size *)
  85. alloc : xmlBufferAllocationScheme; (* The realloc method *)
  86. end;
  87. (*
  88. * The different element types carried by an XML tree.
  89. *
  90. * NOTE: This is synchronized with DOM Level1 values
  91. * See http://www.w3.org/TR/REC-DOM-Level-1/
  92. *
  93. * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
  94. * be deprecated to use an XML_DTD_NODE.
  95. *)
  96. xmlElementType = (
  97. XML_ELEMENT_NODE= 1,
  98. XML_ATTRIBUTE_NODE= 2,
  99. XML_TEXT_NODE= 3,
  100. XML_CDATA_SECTION_NODE= 4,
  101. XML_ENTITY_REF_NODE= 5,
  102. XML_ENTITY_NODE= 6,
  103. XML_PI_NODE= 7,
  104. XML_COMMENT_NODE= 8,
  105. XML_DOCUMENT_NODE= 9,
  106. XML_DOCUMENT_TYPE_NODE= 10,
  107. XML_DOCUMENT_FRAG_NODE= 11,
  108. XML_NOTATION_NODE= 12,
  109. XML_HTML_DOCUMENT_NODE= 13,
  110. XML_DTD_NODE= 14,
  111. XML_ELEMENT_DECL= 15,
  112. XML_ATTRIBUTE_DECL= 16,
  113. XML_ENTITY_DECL= 17,
  114. XML_NAMESPACE_DECL= 18,
  115. XML_XINCLUDE_START= 19,
  116. XML_XINCLUDE_END= 20
  117. {$IFDEF LIBXML_DOCB_ENABLED}
  118. ,XML_DOCB_DOCUMENT_NODE= 21
  119. {$ENDIF}
  120. );
  121. (**
  122. * xmlNotation:
  123. *
  124. * A DTD Notation definition.
  125. *)
  126. xmlNotation = record
  127. name : xmlCharPtr; (* Notation name *)
  128. PublicID : xmlCharPtr; (* Public identifier, if any *)
  129. SystemID : xmlCharPtr; (* System identifier, if any *)
  130. end;
  131. (**
  132. * xmlAttributeType:
  133. *
  134. * A DTD Attribute type definition.
  135. *)
  136. xmlAttributeType = (
  137. XML_ATTRIBUTE_CDATA = 1,
  138. XML_ATTRIBUTE_ID,
  139. XML_ATTRIBUTE_IDREF ,
  140. XML_ATTRIBUTE_IDREFS,
  141. XML_ATTRIBUTE_ENTITY,
  142. XML_ATTRIBUTE_ENTITIES,
  143. XML_ATTRIBUTE_NMTOKEN,
  144. XML_ATTRIBUTE_NMTOKENS,
  145. XML_ATTRIBUTE_ENUMERATION,
  146. XML_ATTRIBUTE_NOTATION
  147. );
  148. (**
  149. * xmlAttributeDefault:
  150. *
  151. * A DTD Attribute default definition.
  152. *)
  153. xmlAttributeDefault = (
  154. XML_ATTRIBUTE_NONE = 1,
  155. XML_ATTRIBUTE_REQUIRED,
  156. XML_ATTRIBUTE_IMPLIED,
  157. XML_ATTRIBUTE_FIXED
  158. );
  159. (**
  160. * xmlEnumeration:
  161. *
  162. * List structure used when there is an enumeration in DTDs.
  163. *)
  164. xmlEnumeration = record
  165. next: xmlEnumerationPtr; (* next one *)
  166. name: xmlCharPtr;
  167. end;
  168. (**
  169. * xmlAttribute:
  170. *
  171. * An Attribute declaration in a DTD.
  172. *)
  173. xmlAttribute = record
  174. _private : pointer; (* application data *)
  175. _type : xmlElementType; (* XML_ATTRIBUTE_DECL, must be second ! *)
  176. name : xmlCharPtr; (* Attribute name *)
  177. children : xmlNodePtr; (* NULL *)
  178. last : xmlNodePtr; (* NULL *)
  179. parent : xmlDtdPtr; (* -> DTD *)
  180. next : xmlNodePtr; (* next sibling link *)
  181. prev : xmlNodePtr; (* previous sibling link *)
  182. doc : xmlDocPtr; (* the containing document *)
  183. nexth : xmlAttributePtr; (* next in hash table *)
  184. atype : xmlAttributeType; (* The attribute type *)
  185. def : xmlAttributeDefault; (* the default *)
  186. defaultValue : xmlCharPtr; (* or the default value *)
  187. tree : xmlEnumerationPtr; (* or the enumeration tree if any *)
  188. prefix : xmlCharPtr; (* the namespace prefix if any *)
  189. elem : xmlCharPtr; (* Element holding the attribute *)
  190. end;
  191. (**
  192. * xmlElementContentType:
  193. *
  194. * Possible definitions of element content types.
  195. *)
  196. xmlElementContentType = (
  197. XML_ELEMENT_CONTENT_PCDATA = 1,
  198. XML_ELEMENT_CONTENT_ELEMENT,
  199. XML_ELEMENT_CONTENT_SEQ,
  200. XML_ELEMENT_CONTENT_OR
  201. );
  202. (**
  203. * xmlElementContentOccur:
  204. *
  205. * Possible definitions of element content occurrences.
  206. *)
  207. xmlElementContentOccur = (
  208. XML_ELEMENT_CONTENT_ONCE = 1,
  209. XML_ELEMENT_CONTENT_OPT,
  210. XML_ELEMENT_CONTENT_MULT,
  211. XML_ELEMENT_CONTENT_PLUS
  212. );
  213. (**
  214. * xmlElementContent:
  215. *
  216. * An XML Element content as stored after parsing an element definition
  217. * in a DTD.
  218. *)
  219. xmlElementContent = record
  220. _type : xmlElementContentType; (* PCDATA, ELEMENT, SEQ or OR *)
  221. ocur : xmlElementContentOccur; (* ONCE, OPT, MULT or PLUS *)
  222. name : xmlCharPtr; (* Element name *)
  223. c1 : xmlElementContentPtr; (* first child *)
  224. c2 : xmlElementContentPtr; (* second child *)
  225. parent : xmlElementContentPtr; (* parent *)
  226. prefix : xmlCharPtr; (* Namespace prefix *)
  227. end;
  228. (**
  229. * xmlElementTypeVal:
  230. *
  231. * The different possibilities for an element content type.
  232. *)
  233. xmlElementTypeVal = (
  234. XML_ELEMENT_TYPE_UNDEFINED = 0,
  235. XML_ELEMENT_TYPE_EMPTY = 1,
  236. XML_ELEMENT_TYPE_ANY,
  237. XML_ELEMENT_TYPE_MIXED,
  238. XML_ELEMENT_TYPE_ELEMENT
  239. );
  240. (**
  241. * xmlElement:
  242. *
  243. * An XML Element declaration from a DTD.
  244. *)
  245. xmlElement = record
  246. _private : pointer; (* application data *)
  247. _type : xmlElementType; (* XML_ELEMENT_DECL, must be second ! *)
  248. name : xmlCharPtr; (* Element name *)
  249. children : xmlNodePtr; (* NULL *)
  250. last : xmlNodePtr; (* NULL *)
  251. parent : xmlDtdPtr; (* -> DTD *)
  252. next : xmlNodePtr; (* next sibling link *)
  253. prev : xmlNodePtr; (* previous sibling link *)
  254. doc : xmlDocPtr; (* the containing document *)
  255. etype : xmlElementTypeVal; (* The type *)
  256. content : xmlElementContentPtr; (* the allowed element content *)
  257. attributes : xmlAttributePtr; (* List of the declared attributes *)
  258. prefix : xmlCharPtr; (* the namespace prefix if any *)
  259. {$IFDEF LIBXML_REGEXP_ENABLED}
  260. contModel : xmlRegexpPtr; (* the validating regexp *)
  261. {$ELSE}
  262. contModel : pointer;
  263. {$ENDIF}
  264. end;
  265. (**
  266. * XML_LOCAL_NAMESPACE:
  267. *
  268. * A namespace declaration node.
  269. *)
  270. {$ENDIF}
  271. {$IFDEF CONST}
  272. XML_LOCAL_NAMESPACE = XML_NAMESPACE_DECL;
  273. {$ENDIF}
  274. {$IFDEF TYPE}
  275. xmlNsType = xmlElementType;
  276. (**
  277. * xmlNs:
  278. *
  279. * An XML namespace.
  280. * Note that prefix == NULL is valid, it defines the default namespace
  281. * within the subtree (until overridden).
  282. *
  283. * xmlNsType is unified with xmlElementType.
  284. *)
  285. xmlNs = record
  286. next : xmlNsPtr; (* next Ns link for this node *)
  287. _type : xmlNsType; (* global or local *)
  288. href : xmlCharPtr; (* URL for the namespace *)
  289. prefix : xmlCharPtr; (* prefix for the namespace *)
  290. _private : pointer; (* application data *)
  291. context : xmlDocPtr; (* normally an xmlDoc *)
  292. end;
  293. (**
  294. * xmlDtd:
  295. *
  296. * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
  297. * the internal subset and for the external subset.
  298. *)
  299. xmlDtd = record
  300. _private : pointer; (* application data *)
  301. _type : xmlElementType; (* XML_DTD_NODE, must be second ! *)
  302. name : xmlCharPtr; (* Name of the DTD *)
  303. children : xmlNodePtr; (* the value of the property link *)
  304. last : xmlNodePtr; (* last child link *)
  305. parent : xmlDocPtr; (* child->parent link *)
  306. next : xmlNodePtr; (* next sibling link *)
  307. prev : xmlNodePtr; (* previous sibling link *)
  308. doc : xmlDocPtr; (* the containing document *)
  309. (* End of common part *)
  310. notations : pointer; (* Hash table for notations if any *)
  311. elements : pointer; (* Hash table for elements if any *)
  312. attributes : pointer; (* Hash table for attributes if any *)
  313. entities : pointer; (* Hash table for entities if any *)
  314. ExternalID : xmlCharPtr; (* External identifier for PUBLIC DTD *)
  315. SystemID : xmlCharPtr; (* URI for a SYSTEM or PUBLIC DTD *)
  316. pentities : pointer; (* Hash table for param entities if any *)
  317. end;
  318. (**
  319. * xmlAttr:
  320. *
  321. * An attribute on an XML node.
  322. *)
  323. xmlAttr = record
  324. _private : pointer; (* application data *)
  325. _type : xmlElementType; (* XML_ATTRIBUTE_NODE, must be second ! *)
  326. name : xmlCharPtr; (* the name of the property *)
  327. children : xmlNodePtr; (* the value of the property *)
  328. last : xmlNodePtr; (* NULL *)
  329. parent : xmlNodePtr; (* child->parent link *)
  330. next : xmlAttrPtr; (* next sibling link *)
  331. prev : xmlAttrPtr; (* previous sibling link *)
  332. doc : xmlDocPtr; (* the containing document *)
  333. ns : xmlNsPtr; (* pointer to the associated namespace *)
  334. atype : xmlAttributeType; (* the attribute type if validating *)
  335. psvi : pointer; (* for type/PSVI informations *)
  336. end;
  337. (**
  338. * xmlID:
  339. *
  340. * An XML ID instance.
  341. *)
  342. xmlID = record
  343. next : xmlIDPtr; (* next ID *)
  344. value : xmlCharPtr; (* The ID name *)
  345. attr : xmlAttrPtr; (* The attribute holding it *)
  346. name : xmlCharPtr; (* The attribute if attr is not available *)
  347. lineno : cint; (* The line number if attr is not available *)
  348. doc : xmlDocPtr; (* The document holding the ID *)
  349. end;
  350. (**
  351. * xmlRef:
  352. *
  353. * An XML IDREF instance.
  354. *)
  355. xmlRef = record
  356. next : xmlRefPtr; (* next Ref *)
  357. value : xmlCharPtr; (* The Ref name *)
  358. attr : xmlAttrPtr; (* The attribute holding it *)
  359. name : xmlCharPtr; (* The attribute if attr is not available *)
  360. lineno : cint; (* The line number if attr is not available *)
  361. end;
  362. (**
  363. * xmlNode:
  364. *
  365. * A node in an XML tree.
  366. *)
  367. xmlNode = record
  368. _private : pointer; (* application data *)
  369. _type : xmlElementType; (* type number, must be second ! *)
  370. name : xmlCharPtr; (* the name of the node, or the entity *)
  371. children : xmlNodePtr; (* parent->childs link *)
  372. last : xmlNodePtr; (* last child link *)
  373. parent : xmlNodePtr; (* child->parent link *)
  374. next : xmlNodePtr; (* next sibling link *)
  375. prev : xmlNodePtr; (* previous sibling link *)
  376. doc : xmlDocPtr; (* the containing document *)
  377. (* End of common part *)
  378. ns : xmlNsPtr; (* pointer to the associated namespace *)
  379. content : xmlCharPtr; (* the content *)
  380. properties : xmlAttrPtr;(* properties list *)
  381. nsDef : xmlNsPtr; (* namespace definitions on this node *)
  382. psvi : pointer; (* for type/PSVI informations *)
  383. line : cushort; (* line number *)
  384. extra : cushort; (* extra data for XPath/XSLT *)
  385. end;
  386. {$ENDIF}
  387. {$IFDEF FUNCTION}
  388. (**
  389. * XML_GET_CONTENT:
  390. *
  391. * Macro to extract the content pointer of a node.
  392. *)
  393. function XML_GET_CONTENT(n: pointer): xmlCharPtr;
  394. (**
  395. * XML_GET_LINE:
  396. *
  397. * Macro to extract the line number of an element node.
  398. *)
  399. {#define XML_GET_LINE(n) \
  400. (xmlGetLineNo(n))}
  401. {$ENDIF}
  402. {$IFDEF TYPE}
  403. (**
  404. * xmlDoc:
  405. *
  406. * An XML document.
  407. *)
  408. xmlDoc = record
  409. _private : pointer; (* application data *)
  410. _type : xmlElementType; (* XML_DOCUMENT_NODE, must be second ! *)
  411. name : pchar; (* name/filename/URI of the document *)
  412. children : xmlCharPtr; (* the document tree *)
  413. last : xmlCharPtr; (* last child link *)
  414. parent : xmlCharPtr; (* child->parent link *)
  415. next : xmlCharPtr; (* next sibling link *)
  416. prev : xmlCharPtr; (* previous sibling link *)
  417. doc : xmlDocPtr; (* autoreference to itself *)
  418. (* End of common part *)
  419. compression : cint; (* level of zlib compression *)
  420. standalone : cint; (* standalone document (no external refs)
  421. 1 if standalone="yes"
  422. 0 if standalone="no"
  423. -1 if there is no XML declaration
  424. -2 if there is an XML declaration, but no
  425. standalone attribute was specified *)
  426. intSubset : xmlDtdPtr; (* the document internal subset *)
  427. extSubset : xmlDtdPtr; (* the document external subset *)
  428. oldNs : xmlNsPtr; (* Global namespace, the old way *)
  429. version : xmlCharPtr; (* the XML version string *)
  430. encoding : xmlCharPtr; (* external initial encoding, if any *)
  431. ids : pointer; (* Hash table for ID attributes if any *)
  432. refs : pointer; (* Hash table for IDREFs attributes if any *)
  433. URL : xmlCharPtr; (* The URI for that document *)
  434. charset : cint; (* encoding of the in-memory content
  435. actually an xmlCharEncoding *)
  436. dict : xmlDictPtr; (* dict used to allocate names or NULL *)
  437. psvi : pointer; (* for type/PSVI informations *)
  438. end;
  439. (**
  440. * xmlDOMWrapAcquireNsFunction:
  441. * @ctxt: a DOM wrapper context
  442. * @node: the context node (element or attribute)
  443. * @nsName: the requested namespace name
  444. * @nsPrefix: the requested namespace prefix
  445. *
  446. * A function called to acquire namespaces (xmlNs) from the wrapper.
  447. *
  448. * Returns an xmlNsPtr or NULL in case of an error.
  449. *)
  450. xmlDOMWrapAcquireNsFunction = function (ctxt: xmlDOMWrapCtxtPtr; node: xmlNodePtr; nsName, nsPrefix: xmlCharPtr): xmlNsPtr; EXTDECL;
  451. (**
  452. * xmlDOMWrapCtxt:
  453. *
  454. * Context for DOM wrapper-operations.
  455. *)
  456. xmlDOMWrapCtxt = record
  457. _private: pointer;
  458. (*
  459. * The type of this context, just in case we need specialized
  460. * contexts in the future.
  461. *)
  462. _type: cint;
  463. (*
  464. * Internal namespace map used for various operations.
  465. *)
  466. namespaceMap: pointer;
  467. (*
  468. * Use this one to acquire an xmlNsPtr intended for node->ns.
  469. * (Note that this is not intended for elem->nsDef).
  470. *)
  471. getNsForNodeFunc: xmlDOMWrapAcquireNsFunction;
  472. end;
  473. (**
  474. * xmlChildrenNode:
  475. *
  476. * Macro for compatibility naming layer with libxml1. Maps
  477. * to "children."
  478. *)
  479. {#ifndef xmlChildrenNode
  480. #define xmlChildrenNode children
  481. #endif}
  482. (**
  483. * xmlRootNode:
  484. *
  485. * Macro for compatibility naming layer with libxml1. Maps
  486. * to "children".
  487. *)
  488. {#ifndef xmlRootNode
  489. #define xmlRootNode children
  490. #endif}
  491. {$ENDIF}
  492. {$IFDEF FUNCTION}
  493. (*
  494. * Variables.
  495. *)
  496. (*
  497. * Some helper functions
  498. *)
  499. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XPATH_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED) or
  500. defined(LIBXML_DEBUG_ENABLED) or defined (LIBXML_HTML_ENABLED) or defined(LIBXML_SAX1_ENABLED) or
  501. defined(LIBXML_HTML_ENABLED) or defined(LIBXML_WRITER_ENABLED) or defined(LIBXML_DOCB_ENABLED)}
  502. function xmlValidateNCName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
  503. {$ENDIF}
  504. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  505. function xmlValidateQName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
  506. function xmlValidateName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
  507. function xmlValidateNMToken(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
  508. {$ENDIF}
  509. function xmlValidateQName(ncname, prefix, memory: xmlCharPtr; len: cint): xmlCharPtr; EXTDECL; external xml2lib;
  510. function xmlSplitQName2(name: xmlCharPtr; var prefix: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  511. function xmlSplitQName3(name: xmlCharPtr; var prefix: xmlCharPtr; var len: cint): xmlCharPtr; EXTDECL; external xml2lib;
  512. (*
  513. * Handling Buffers.
  514. *)
  515. procedure xmlSetBufferAllocationScheme(scheme: xmlBufferAllocationScheme); EXTDECL; external xml2lib;
  516. function xmlGetBufferAllocationScheme: xmlBufferAllocationScheme; EXTDECL; external xml2lib;
  517. function xmlBufferCreate: xmlBufferPtr; EXTDECL; external xml2lib;
  518. function xmlBufferCreateSize(size: csize_t): xmlBufferPtr; EXTDECL; external xml2lib;
  519. function xmlBufferCreateStatic(mem: pointer; size: csize_t): xmlBufferPtr; EXTDECL; external xml2lib;
  520. function xmlBufferResize(buf: xmlBufferPtr; size: cuint): cint; EXTDECL; external xml2lib;
  521. procedure xmlBufferFree(buf: xmlBufferPtr); EXTDECL; external xml2lib;
  522. procedure xmlBufferDump(fp: PFILE; buf: xmlBufferPtr); EXTDECL; external xml2lib;
  523. function xmlBufferAdd(buf: xmlBufferPtr; str: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
  524. function xmlBufferAddHead(buf: xmlBufferPtr; str: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
  525. function xmlBufferCat(buf: xmlBufferPtr; str: xmlCharPtr): cint; EXTDECL; external xml2lib;
  526. function xmlBufferCCat(buf: xmlBufferPtr; str: pchar): cint; EXTDECL; external xml2lib;
  527. function xmlBufferShrink(buf: xmlBufferPtr; len: cuint): cint; EXTDECL; external xml2lib;
  528. function xmlBufferGrow(buf: xmlBufferPtr; len: cuint): cint; EXTDECL; external xml2lib;
  529. procedure xmlBufferEmpty(buf: xmlBufferPtr); EXTDECL; external xml2lib;
  530. function xmlBufferContent(buf: xmlBufferPtr): xmlCharPtr; EXTDECL; external xml2lib;
  531. procedure xmlBufferSetAllocationScheme(buf: xmlBufferPtr; scheme: xmlBufferAllocationScheme); EXTDECL; external xml2lib;
  532. function xmlBufferLength(buf: xmlBufferPtr): cint; EXTDECL; external xml2lib;
  533. (*
  534. * Creating/freeing new structures.
  535. *)
  536. function xmlCreateIntSubset(doc: xmlDocPtr; name, ExternalID, SystemID: xmlCharPtr): xmlDtdPtr; EXTDECL; external xml2lib;
  537. function xmlNewDtd(doc: xmlDocPtr; name, ExternalID, SystemID: xmlCharPtr): xmlDtdPtr; EXTDECL; external xml2lib;
  538. function xmlGetIntSubset(doc: xmlDocPtr): xmlDtdPtr; EXTDECL; external xml2lib;
  539. procedure xmlFreeDtd(cur: xmlDtdPtr); EXTDECL; external xml2lib;
  540. {$IFDEF LIBXML_LEGACY_ENABLED}
  541. function xmlNewGlobalNs(doc: xmlDocPtr; href, prefix: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
  542. {$ENDIF} (* LIBXML_LEGACY_ENABLED *)
  543. function xmlNewNs(node: xmlNodePtr; href, prefix: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
  544. procedure xmlFreeNs(cur: xmlNsPtr); EXTDECL; external xml2lib;
  545. procedure xmlFreeNsList(cur: xmlNsPtr); EXTDECL; external xml2lib;
  546. function xmlNewDoc(version: xmlCharPtr): xmlDocPtr; EXTDECL; external xml2lib;
  547. procedure xmlFreeDoc(cur: xmlDocPtr); EXTDECL; external xml2lib;
  548. function xmlNewDocProp(doc: xmlDocPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  549. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_HTML_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  550. function xmlNewProp(node: xmlNodePtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  551. {$ENDIF}
  552. function xmlNewNsProp(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  553. function xmlNewNsPropEatName(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  554. procedure xmlFreePropList(cur: xmlAttrPtr); EXTDECL; external xml2lib;
  555. procedure xmlFreeProp(cur: xmlAttrPtr); EXTDECL; external xml2lib;
  556. function xmlCopyProp(target: xmlNodePtr; cur: xmlAttrPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  557. function xmlCopyPropList(target: xmlNodePtr; cur: xmlAttrPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  558. {$IFDEF LIBXML_TREE_ENABLED}
  559. function xmlCopyDtd(dtd: xmlDtdPtr): xmlDtdPtr; EXTDECL; external xml2lib;
  560. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  561. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  562. function xmlCopyDoc(doc: xmlDocPtr; recursive: cint): xmlDocPtr; EXTDECL; external xml2lib;
  563. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) *)
  564. (*
  565. * Creating new nodes.
  566. *)
  567. function xmlNewDocNode(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  568. function xmlNewDocNodeEatName(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  569. function xmlNewNode(ns: xmlNsPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  570. function xmlNewNodeEatName(ns: xmlNsPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  571. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  572. function xmlNewChild(parent: xmlNodePtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  573. {$ENDIF}
  574. function xmlNewDocText(doc: xmlDocPtr; content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  575. function xmlNewText(content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  576. function xmlNewDocPI(doc: xmlDocPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  577. function xmlNewPI(name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  578. function xmlNewDocTextLen(doc: xmlDocPtr; content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
  579. function xmlNewTextLen(content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
  580. function xmlNewDocComment(doc: xmlDocPtr; content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  581. function xmlNewComment(content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  582. function xmlNewCDataBlock(doc: xmlDocPtr; content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
  583. function xmlNewCharRef(doc: xmlDocPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  584. function xmlNewReference(doc: xmlDocPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  585. function xmlCopyNode(node: xmlNodePtr; recursive: cint): xmlNodePtr; EXTDECL; external xml2lib;
  586. function xmlDocCopyNode(node: xmlNodePtr; doc: xmlDocPtr; recursive: cint): xmlNodePtr; EXTDECL; external xml2lib;
  587. function xmlDocCopyNodeList(doc: xmlDocPtr; node: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  588. function xmlCopyNodeList(node: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  589. {$IFDEF LIBXML_TREE_ENABLED}
  590. function xmlNewTextChild(parent: xmlNodePtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  591. function xmlNewDocRawNode(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  592. function xmlNewDocFragment(doc: xmlDocPtr): xmlNodePtr; EXTDECL; external xml2lib;
  593. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  594. (*
  595. * Navigating.
  596. *)
  597. function xmlGetLineNo(node: xmlNodePtr): clong; EXTDECL; external xml2lib;
  598. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_DEBUG_ENABLED)}
  599. function xmlGetNodePath(node: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
  600. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) *)
  601. function xmlDocGetRootElement(doc: xmlDocPtr): xmlNodePtr; EXTDECL; external xml2lib;
  602. function xmlGetLastChild(parent: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  603. function xmlNodeIsText(node: xmlNodePtr): cint; EXTDECL; external xml2lib;
  604. function xmlIsBlankNode(node: xmlNodePtr): cint; EXTDECL; external xml2lib;
  605. (*
  606. * Changing the structure.
  607. *)
  608. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_WRITER_ENABLED)}
  609. function xmlDocSetRootElement(doc: xmlDocPtr; root: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  610. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) *)
  611. {$IFDEF LIBXML_TREE_ENABLED}
  612. procedure xmlNodeSetName(cur: xmlNodePtr; name: xmlCharPtr); EXTDECL; external xml2lib;
  613. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  614. function xmlAddChild(parent, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  615. function xmlAddChildList(parent, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  616. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_WRITER_ENABLED)}
  617. function xmlReplaceNode(old, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  618. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) *)
  619. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_HTML_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  620. function xmlAddPrevSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  621. {$ENDIF} (* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED *)
  622. function xmlAddSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  623. function xmlAddNextSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  624. procedure xmlUnlinkNode(cur: xmlNodePtr); EXTDECL; external xml2lib;
  625. function xmlTextMerge(first, second: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
  626. function xmlTextConcat(node: xmlNodePtr; name: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
  627. procedure xmlFreeNodeList(cur: xmlNodePtr); EXTDECL; external xml2lib;
  628. procedure xmlFreeNode(cur: xmlNodePtr); EXTDECL; external xml2lib;
  629. procedure xmlSetTreeDoc(tree: xmlNodePtr; doc: xmlDocPtr); EXTDECL; external xml2lib;
  630. procedure xmlSetListDoc(list: xmlNodePtr; doc: xmlDocPtr); EXTDECL; external xml2lib;
  631. (*
  632. * Namespaces.
  633. *)
  634. function xmlSearchNs(doc: xmlDocPtr; node: xmlNodePtr; nameSpace: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
  635. function xmlSearchNsByHref(doc: xmlDocPtr; node: xmlNodePtr; href: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
  636. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XPATH_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  637. function xmlGetNsList(doc: xmlDocPtr; node: xmlNodePtr): xmlNsPtr; EXTDECL; external xml2lib;
  638. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) *)
  639. procedure xmlSetNs(node: xmlNodePtr; ns: xmlNsPtr); EXTDECL; external xml2lib;
  640. function xmlCopyNamespace(cur: xmlNsPtr): xmlNsPtr; EXTDECL; external xml2lib;
  641. function xmlCopyNamespaceList(cur: xmlNsPtr): xmlNsPtr; EXTDECL; external xml2lib;
  642. (*
  643. * Changing the content.
  644. *)
  645. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XINCLUDE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED) or defined(LIBXML_HTML_ENABLED)}
  646. function xmlSetProp(node: xmlNodePtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  647. function xmlSetNsProp(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  648. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) *)
  649. function xmlGetNoNsProp(node: xmlNodePtr; name: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  650. function xmlGetProp(node: xmlNodePtr; name: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  651. function xmlHasProp(node: xmlNodePtr; name: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  652. function xmlHasNsProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
  653. function xmlGetNsProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
  654. function xmlStringGetNodeList(doc: xmlDocPtr; value: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
  655. function xmlStringLenGetNodeList(doc: xmlDocPtr; value: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
  656. function xmlNodeListGetString(doc: xmlDocPtr; list: xmlNodePtr; _inLine: cint): xmlCharPtr; EXTDECL; external xml2lib;
  657. {$IFDEF LIBXML_TREE_ENABLED}
  658. function xmlNodeListGetRawString(doc: xmlDocPtr; list: xmlNodePtr; _inLine: cint): xmlCharPtr; EXTDECL; external xml2lib;
  659. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  660. procedure xmlNodeSetContent(node: xmlNodePtr; content: xmlCharPtr); EXTDECL; external xml2lib;
  661. {$IFDEF LIBXML_TREE_ENABLED}
  662. procedure xmlNodeSetContentLen(node: xmlNodePtr; content: xmlCharPtr; len: cint); EXTDECL; external xml2lib;
  663. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  664. procedure xmlNodeAddContent(cur: xmlNodePtr; content: xmlCharPtr); EXTDECL; external xml2lib;
  665. procedure xmlNodeAddContentLen(cur: xmlNodePtr; content: xmlCharPtr; len: cint); EXTDECL; external xml2lib;
  666. function xmlNodeGetContent(cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
  667. function xmlNodeBufGetContent(buffer: xmlBufferPtr; cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
  668. function xmlNodeGetLang(cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
  669. function xmlNodeGetSpacePreserve(cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
  670. {$IFDEF LIBXML_TREE_ENABLED}
  671. procedure xmlNodeSetLang(cur: xmlNodePtr; lang: xmlCharPtr); EXTDECL; external xml2lib;
  672. procedure xmlNodeSetSpacePreserve(cur: xmlNodePtr; val: cint); EXTDECL; external xml2lib;
  673. {$ENDIF} (* LIBXML_TREE_ENABLED *)
  674. function xmlNodeGetBase(doc: xmlDocPtr; cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
  675. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XINCLUDE_ENABLED)}
  676. procedure xmlNodeSetBase(cur: xmlNodePtr; uri: xmlCharPtr); EXTDECL; external xml2lib;
  677. {$ENDIF}
  678. (*
  679. * Removing content.
  680. *)
  681. function xmlRemoveProp(cur: xmlAttrPtr): cint; EXTDECL; external xml2lib;
  682. {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
  683. function xmlUnsetNsProp(node: xmlNodePtr; ns: xmlNsPtr; name: xmlCharPtr): cint; EXTDECL; external xml2lib;
  684. function xmlUnsetProp(node: xmlNodePtr; name: xmlCharPtr): cint; EXTDECL; external xml2lib;
  685. {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) *)
  686. (*
  687. * Internal, don't use.
  688. *)
  689. {external xml2lib void EXTDECL
  690. xmlBufferWriteCHAR (xmlBufferPtr buf,
  691. xmlChar *string);
  692. external xml2lib void EXTDECL
  693. xmlBufferWriteChar (xmlBufferPtr buf,
  694. char *string);
  695. external xml2lib void EXTDECL
  696. xmlBufferWriteQuotedString(xmlBufferPtr buf,
  697. xmlChar *string);
  698. }
  699. {$IFDEF LIBXML_OUTPUT_ENABLED}
  700. {external xml2lib void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
  701. xmlDocPtr doc,
  702. xmlAttrPtr attr,
  703. xmlChar *string);}
  704. {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
  705. {$IFDEF LIBXML_TREE_ENABLED}
  706. (*
  707. * Namespace handling.
  708. *)
  709. function xmlReconciliateNs(doc: xmlDocPtr; tree: xmlNodePtr): cint; EXTDECL; external xml2lib;
  710. {$ENDIF}
  711. {$IFDEF LIBXML_OUTPUT_ENABLED}
  712. (*
  713. * Saving.
  714. *)
  715. procedure xmlDocDumpFormatMemory(cur: xmlDocPtr; var mem: xmlCharPtr; var size: cint; format: cint); EXTDECL; external xml2lib;
  716. procedure xmlDocDumpMemory(cur: xmlDocPtr; var mem: xmlCharPtr; var size: cint); EXTDECL; external xml2lib;
  717. procedure xmlDocDumpMemoryEnc(out_doc: xmlDocPtr; var doc_txt_ptr: xmlCharPtr; var doc_txt_len: cint; txt_encoding: pchar); EXTDECL; external xml2lib;
  718. procedure xmlDocDumpFormatMemoryEnc(out_doc: xmlDocPtr; var doc_txt_ptr: xmlCharPtr; var doc_txt_len: cint; txt_encoding: pchar; format: cint); EXTDECL; external xml2lib;
  719. function xmlDocFormatDump(f: PFILE; cur: xmlDocPtr; format: cint): cint; EXTDECL; external xml2lib;
  720. function xmlDocDump(f: PFILE; cur: xmlDocPtr): cint; EXTDECL; external xml2lib;
  721. function xmlElemDump(f: PFILE; doc: xmlDocPtr; cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
  722. function xmlSaveFormatFile(filename: pchar; cur: xmlDocPtr; format: cint): cint; EXTDECL; external xml2lib;
  723. function xmlSaveFile(filename: pchar; cur: xmlDocPtr): cint; EXTDECL; external xml2lib;
  724. function xmlNodeDump(buf: xmlBufferPtr; doc: xmlDocPtr; cur: xmlNodePtr; level, format: cint): cint; EXTDECL; external xml2lib;
  725. function xmlSaveFileTo(buf: xmlOutputBufferPtr; cur: xmlDocPtr; encoding: pchar): cint; EXTDECL; external xml2lib;
  726. function xmlSaveFormatFileTo(buf: xmlOutputBufferPtr; cur: xmlDocPtr; encoding: pchar; format: cint): cint; EXTDECL; external xml2lib;
  727. procedure xmlNodeDumpOutput(buf: xmlBufferPtr; doc: xmlDocPtr; cur: xmlNodePtr; level, format: cint; encoding: pchar); EXTDECL; external xml2lib;
  728. function xmlSaveFormatFileEnc(filename: pchar; cur: xmlDocPtr; encoding: pchar; format: cint): cint; EXTDECL; external xml2lib;
  729. function xmlSaveFileEnc(filename: pchar; cur: xmlDocPtr; encoding: pchar): cint; EXTDECL; external xml2lib;
  730. {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
  731. (*
  732. * XHTML
  733. *)
  734. function xmlIsXHTML(systemID, publicID: xmlCharPtr): cint; EXTDECL; external xml2lib;
  735. (*
  736. * Compression.
  737. *)
  738. function xmlGetDocCompressMode(doc: xmlDocPtr): cint; EXTDECL; external xml2lib;
  739. procedure xmlSetDocCompressMode(ctxt: xmlDOMWrapCtxtPtr; mode: cint); EXTDECL; external xml2lib;
  740. function xmlGetCompressMode: cint; EXTDECL; external xml2lib;
  741. procedure xmlSetCompressMode(mode: cint); EXTDECL; external xml2lib;
  742. (*
  743. * DOM-wrapper helper functions.
  744. *)
  745. function xmlDOMWrapNewCtxt: xmlDOMWrapCtxtPtr; EXTDECL; external xml2lib;
  746. procedure xmlDOMWrapNewCtxt(ctxt: xmlDOMWrapCtxtPtr); EXTDECL; external xml2lib;
  747. function xmlDOMWrapReconcileNamespaces(ctxt: xmlDOMWrapCtxtPtr; elem: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
  748. function xmlDOMWrapAdoptNode(ctxt: xmlDOMWrapCtxtPtr; sourceDoc: xmlDocPtr; node: xmlNodePtr; destDoc: xmlDocPtr; destParent: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
  749. function xmlDOMWrapRemoveNode(ctxt: xmlDOMWrapCtxtPtr; doc: xmlDocPtr; node: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
  750. function xmlDOMWrapCloneNode(ctxt: xmlDOMWrapCtxtPtr; sourceDoc: xmlDocPtr; node: xmlNodePtr; var clonedNode: xmlNodePtr; destDoc: xmlDocPtr; destParent: xmlNodePtr; deep, options: cint): cint; EXTDECL; external xml2lib;
  751. {$ENDIF}