123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812 |
- (*
- * Summary: interfaces for tree manipulation
- * Description: this module describes the structures found in an tree resulting
- * from an XML or HTML parsing, as well as the API provided for
- * various processing on that tree
- *
- * Copy: See Copyright for the status of this software.
- *
- * Author: Daniel Veillard
- *)
- {$IFDEF POINTER}
- xmlBufferPtr = ^xmlBuffer;
- xmlNotationPtr = ^xmlNotation;
- xmlEnumerationPtr = ^xmlEnumeration;
- xmlAttributePtr = ^xmlAttribute;
- xmlElementContentPtr = ^xmlElementContent;
- xmlElementPtr = ^xmlElement;
- xmlNsPtr = ^xmlNs;
- xmlNsPtrPtr = ^xmlNsPtr;
- xmlNodePtr = ^xmlNode;
- xmlNodePtrPtr = ^xmlNodePtr;
- xmlDtdPtr = ^xmlDtd;
- xmlAttrPtr = ^xmlAttr;
- xmlIDPtr = ^xmlID;
- xmlRefPtr = ^xmlRef;
- xmlDocPtr = ^xmlDoc;
- xmlDOMWrapCtxtPtr = ^xmlDOMWrapCtxt;
- xmlBufferAllocationSchemePtr = ^xmlBufferAllocationScheme;
- {$ENDIF}
- (*
- * Some of the basic types pointer to structures:
- *)
- {$IFDEF CONST}
- (**
- * BASE_BUFFER_SIZE:
- *
- * default buffer size 4000.
- *)
- BASE_BUFFER_SIZE = 4096;
- (**
- * LIBXML_NAMESPACE_DICT:
- *
- * Defines experimental behaviour:
- * 1) xmlNs gets an additional field @context (a xmlDoc)
- * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc.
- *)
- {.$DEFINE LIBXML_NAMESPACE_DICT}
- (**
- * LIBXML_XML_NAMESPACE:
- *
- * This is the namespace for the special xml: prefix predefined in the
- * XML Namespace specification.
- *)
- __LIBXML_XML_NAMESPACE: String = 'http://www.w3.org/XML/1998/namespace';
- LIBXML_XML_NAMESPACE: xmlCharPtr = @__LIBXML_XML_NAMESPACE[1];
- (**
- * XML_XML_ID:
- *
- * This is the name for the special xml:id attribute
- *)
- __LIBXML_XML_ID: String = 'xml:id';
- LIBXML_XML_ID: xmlCharPtr = @__LIBXML_XML_ID[1];
- {$ENDIF}
- {$IFDEF TYPE}
- (**
- * xmlBufferAllocationScheme:
- *
- * A buffer allocation scheme can be defined to either match exactly the
- * need or double it's allocated size each time it is found too small.
- *)
- xmlBufferAllocationScheme = (
- XML_BUFFER_ALLOC_DOUBLEIT,
- XML_BUFFER_ALLOC_EXACT,
- XML_BUFFER_ALLOC_IMMUTABLE
- );
- (**
- * xmlBuffer:
- *
- * A buffer structure.
- *)
- xmlBuffer = record
- content : xmlCharPtr; (* The buffer content UTF8 *)
- use : cuint; (* The buffer size used *)
- size : cuint; (* The buffer size *)
- alloc : xmlBufferAllocationScheme; (* The realloc method *)
- end;
- (*
- * The different element types carried by an XML tree.
- *
- * NOTE: This is synchronized with DOM Level1 values
- * See http://www.w3.org/TR/REC-DOM-Level-1/
- *
- * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
- * be deprecated to use an XML_DTD_NODE.
- *)
- xmlElementType = (
- XML_ELEMENT_NODE= 1,
- XML_ATTRIBUTE_NODE= 2,
- XML_TEXT_NODE= 3,
- XML_CDATA_SECTION_NODE= 4,
- XML_ENTITY_REF_NODE= 5,
- XML_ENTITY_NODE= 6,
- XML_PI_NODE= 7,
- XML_COMMENT_NODE= 8,
- XML_DOCUMENT_NODE= 9,
- XML_DOCUMENT_TYPE_NODE= 10,
- XML_DOCUMENT_FRAG_NODE= 11,
- XML_NOTATION_NODE= 12,
- XML_HTML_DOCUMENT_NODE= 13,
- XML_DTD_NODE= 14,
- XML_ELEMENT_DECL= 15,
- XML_ATTRIBUTE_DECL= 16,
- XML_ENTITY_DECL= 17,
- XML_NAMESPACE_DECL= 18,
- XML_XINCLUDE_START= 19,
- XML_XINCLUDE_END= 20
- {$IFDEF LIBXML_DOCB_ENABLED}
- ,XML_DOCB_DOCUMENT_NODE= 21
- {$ENDIF}
- );
- (**
- * xmlNotation:
- *
- * A DTD Notation definition.
- *)
- xmlNotation = record
- name : xmlCharPtr; (* Notation name *)
- PublicID : xmlCharPtr; (* Public identifier, if any *)
- SystemID : xmlCharPtr; (* System identifier, if any *)
- end;
- (**
- * xmlAttributeType:
- *
- * A DTD Attribute type definition.
- *)
- xmlAttributeType = (
- XML_ATTRIBUTE_CDATA = 1,
- XML_ATTRIBUTE_ID,
- XML_ATTRIBUTE_IDREF ,
- XML_ATTRIBUTE_IDREFS,
- XML_ATTRIBUTE_ENTITY,
- XML_ATTRIBUTE_ENTITIES,
- XML_ATTRIBUTE_NMTOKEN,
- XML_ATTRIBUTE_NMTOKENS,
- XML_ATTRIBUTE_ENUMERATION,
- XML_ATTRIBUTE_NOTATION
- );
- (**
- * xmlAttributeDefault:
- *
- * A DTD Attribute default definition.
- *)
- xmlAttributeDefault = (
- XML_ATTRIBUTE_NONE = 1,
- XML_ATTRIBUTE_REQUIRED,
- XML_ATTRIBUTE_IMPLIED,
- XML_ATTRIBUTE_FIXED
- );
- (**
- * xmlEnumeration:
- *
- * List structure used when there is an enumeration in DTDs.
- *)
- xmlEnumeration = record
- next: xmlEnumerationPtr; (* next one *)
- name: xmlCharPtr;
- end;
- (**
- * xmlAttribute:
- *
- * An Attribute declaration in a DTD.
- *)
- xmlAttribute = record
- _private : pointer; (* application data *)
- _type : xmlElementType; (* XML_ATTRIBUTE_DECL, must be second ! *)
- name : xmlCharPtr; (* Attribute name *)
- children : xmlNodePtr; (* NULL *)
- last : xmlNodePtr; (* NULL *)
- parent : xmlDtdPtr; (* -> DTD *)
- next : xmlNodePtr; (* next sibling link *)
- prev : xmlNodePtr; (* previous sibling link *)
- doc : xmlDocPtr; (* the containing document *)
- nexth : xmlAttributePtr; (* next in hash table *)
- atype : xmlAttributeType; (* The attribute type *)
- def : xmlAttributeDefault; (* the default *)
- defaultValue : xmlCharPtr; (* or the default value *)
- tree : xmlEnumerationPtr; (* or the enumeration tree if any *)
- prefix : xmlCharPtr; (* the namespace prefix if any *)
- elem : xmlCharPtr; (* Element holding the attribute *)
- end;
- (**
- * xmlElementContentType:
- *
- * Possible definitions of element content types.
- *)
- xmlElementContentType = (
- XML_ELEMENT_CONTENT_PCDATA = 1,
- XML_ELEMENT_CONTENT_ELEMENT,
- XML_ELEMENT_CONTENT_SEQ,
- XML_ELEMENT_CONTENT_OR
- );
- (**
- * xmlElementContentOccur:
- *
- * Possible definitions of element content occurrences.
- *)
- xmlElementContentOccur = (
- XML_ELEMENT_CONTENT_ONCE = 1,
- XML_ELEMENT_CONTENT_OPT,
- XML_ELEMENT_CONTENT_MULT,
- XML_ELEMENT_CONTENT_PLUS
- );
- (**
- * xmlElementContent:
- *
- * An XML Element content as stored after parsing an element definition
- * in a DTD.
- *)
- xmlElementContent = record
- _type : xmlElementContentType; (* PCDATA, ELEMENT, SEQ or OR *)
- ocur : xmlElementContentOccur; (* ONCE, OPT, MULT or PLUS *)
- name : xmlCharPtr; (* Element name *)
- c1 : xmlElementContentPtr; (* first child *)
- c2 : xmlElementContentPtr; (* second child *)
- parent : xmlElementContentPtr; (* parent *)
- prefix : xmlCharPtr; (* Namespace prefix *)
- end;
- (**
- * xmlElementTypeVal:
- *
- * The different possibilities for an element content type.
- *)
- xmlElementTypeVal = (
- XML_ELEMENT_TYPE_UNDEFINED = 0,
- XML_ELEMENT_TYPE_EMPTY = 1,
- XML_ELEMENT_TYPE_ANY,
- XML_ELEMENT_TYPE_MIXED,
- XML_ELEMENT_TYPE_ELEMENT
- );
- (**
- * xmlElement:
- *
- * An XML Element declaration from a DTD.
- *)
- xmlElement = record
- _private : pointer; (* application data *)
- _type : xmlElementType; (* XML_ELEMENT_DECL, must be second ! *)
- name : xmlCharPtr; (* Element name *)
- children : xmlNodePtr; (* NULL *)
- last : xmlNodePtr; (* NULL *)
- parent : xmlDtdPtr; (* -> DTD *)
- next : xmlNodePtr; (* next sibling link *)
- prev : xmlNodePtr; (* previous sibling link *)
- doc : xmlDocPtr; (* the containing document *)
- etype : xmlElementTypeVal; (* The type *)
- content : xmlElementContentPtr; (* the allowed element content *)
- attributes : xmlAttributePtr; (* List of the declared attributes *)
- prefix : xmlCharPtr; (* the namespace prefix if any *)
- {$IFDEF LIBXML_REGEXP_ENABLED}
- contModel : xmlRegexpPtr; (* the validating regexp *)
- {$ELSE}
- contModel : pointer;
- {$ENDIF}
- end;
- (**
- * XML_LOCAL_NAMESPACE:
- *
- * A namespace declaration node.
- *)
- {$ENDIF}
- {$IFDEF CONST}
- XML_LOCAL_NAMESPACE = XML_NAMESPACE_DECL;
- {$ENDIF}
- {$IFDEF TYPE}
- xmlNsType = xmlElementType;
- (**
- * xmlNs:
- *
- * An XML namespace.
- * Note that prefix == NULL is valid, it defines the default namespace
- * within the subtree (until overridden).
- *
- * xmlNsType is unified with xmlElementType.
- *)
- xmlNs = record
- next : xmlNsPtr; (* next Ns link for this node *)
- _type : xmlNsType; (* global or local *)
- href : xmlCharPtr; (* URL for the namespace *)
- prefix : xmlCharPtr; (* prefix for the namespace *)
- _private : pointer; (* application data *)
- context : xmlDocPtr; (* normally an xmlDoc *)
- end;
- (**
- * xmlDtd:
- *
- * An XML DTD, as defined by <!DOCTYPE ... There is actually one for
- * the internal subset and for the external subset.
- *)
- xmlDtd = record
- _private : pointer; (* application data *)
- _type : xmlElementType; (* XML_DTD_NODE, must be second ! *)
- name : xmlCharPtr; (* Name of the DTD *)
- children : xmlNodePtr; (* the value of the property link *)
- last : xmlNodePtr; (* last child link *)
- parent : xmlDocPtr; (* child->parent link *)
- next : xmlNodePtr; (* next sibling link *)
- prev : xmlNodePtr; (* previous sibling link *)
- doc : xmlDocPtr; (* the containing document *)
- (* End of common part *)
- notations : pointer; (* Hash table for notations if any *)
- elements : pointer; (* Hash table for elements if any *)
- attributes : pointer; (* Hash table for attributes if any *)
- entities : pointer; (* Hash table for entities if any *)
- ExternalID : xmlCharPtr; (* External identifier for PUBLIC DTD *)
- SystemID : xmlCharPtr; (* URI for a SYSTEM or PUBLIC DTD *)
- pentities : pointer; (* Hash table for param entities if any *)
- end;
- (**
- * xmlAttr:
- *
- * An attribute on an XML node.
- *)
- xmlAttr = record
- _private : pointer; (* application data *)
- _type : xmlElementType; (* XML_ATTRIBUTE_NODE, must be second ! *)
- name : xmlCharPtr; (* the name of the property *)
- children : xmlNodePtr; (* the value of the property *)
- last : xmlNodePtr; (* NULL *)
- parent : xmlNodePtr; (* child->parent link *)
- next : xmlAttrPtr; (* next sibling link *)
- prev : xmlAttrPtr; (* previous sibling link *)
- doc : xmlDocPtr; (* the containing document *)
- ns : xmlNsPtr; (* pointer to the associated namespace *)
- atype : xmlAttributeType; (* the attribute type if validating *)
- psvi : pointer; (* for type/PSVI informations *)
- end;
- (**
- * xmlID:
- *
- * An XML ID instance.
- *)
- xmlID = record
- next : xmlIDPtr; (* next ID *)
- value : xmlCharPtr; (* The ID name *)
- attr : xmlAttrPtr; (* The attribute holding it *)
- name : xmlCharPtr; (* The attribute if attr is not available *)
- lineno : cint; (* The line number if attr is not available *)
- doc : xmlDocPtr; (* The document holding the ID *)
- end;
- (**
- * xmlRef:
- *
- * An XML IDREF instance.
- *)
- xmlRef = record
- next : xmlRefPtr; (* next Ref *)
- value : xmlCharPtr; (* The Ref name *)
- attr : xmlAttrPtr; (* The attribute holding it *)
- name : xmlCharPtr; (* The attribute if attr is not available *)
- lineno : cint; (* The line number if attr is not available *)
- end;
- (**
- * xmlNode:
- *
- * A node in an XML tree.
- *)
- xmlNode = record
- _private : pointer; (* application data *)
- _type : xmlElementType; (* type number, must be second ! *)
- name : xmlCharPtr; (* the name of the node, or the entity *)
- children : xmlNodePtr; (* parent->childs link *)
- last : xmlNodePtr; (* last child link *)
- parent : xmlNodePtr; (* child->parent link *)
- next : xmlNodePtr; (* next sibling link *)
- prev : xmlNodePtr; (* previous sibling link *)
- doc : xmlDocPtr; (* the containing document *)
- (* End of common part *)
- ns : xmlNsPtr; (* pointer to the associated namespace *)
- content : xmlCharPtr; (* the content *)
- properties : xmlAttrPtr;(* properties list *)
- nsDef : xmlNsPtr; (* namespace definitions on this node *)
- psvi : pointer; (* for type/PSVI informations *)
- line : cushort; (* line number *)
- extra : cushort; (* extra data for XPath/XSLT *)
- end;
- {$ENDIF}
- {$IFDEF FUNCTION}
- (**
- * XML_GET_CONTENT:
- *
- * Macro to extract the content pointer of a node.
- *)
- function XML_GET_CONTENT(n: pointer): xmlCharPtr;
- (**
- * XML_GET_LINE:
- *
- * Macro to extract the line number of an element node.
- *)
- {#define XML_GET_LINE(n) \
- (xmlGetLineNo(n))}
- {$ENDIF}
- {$IFDEF TYPE}
- (**
- * xmlDoc:
- *
- * An XML document.
- *)
- xmlDoc = record
- _private : pointer; (* application data *)
- _type : xmlElementType; (* XML_DOCUMENT_NODE, must be second ! *)
- name : pchar; (* name/filename/URI of the document *)
- children : xmlCharPtr; (* the document tree *)
- last : xmlCharPtr; (* last child link *)
- parent : xmlCharPtr; (* child->parent link *)
- next : xmlCharPtr; (* next sibling link *)
- prev : xmlCharPtr; (* previous sibling link *)
- doc : xmlDocPtr; (* autoreference to itself *)
- (* End of common part *)
- compression : cint; (* level of zlib compression *)
- standalone : cint; (* standalone document (no external refs)
- 1 if standalone="yes"
- 0 if standalone="no"
- -1 if there is no XML declaration
- -2 if there is an XML declaration, but no
- standalone attribute was specified *)
- intSubset : xmlDtdPtr; (* the document internal subset *)
- extSubset : xmlDtdPtr; (* the document external subset *)
- oldNs : xmlNsPtr; (* Global namespace, the old way *)
- version : xmlCharPtr; (* the XML version string *)
- encoding : xmlCharPtr; (* external initial encoding, if any *)
- ids : pointer; (* Hash table for ID attributes if any *)
- refs : pointer; (* Hash table for IDREFs attributes if any *)
- URL : xmlCharPtr; (* The URI for that document *)
- charset : cint; (* encoding of the in-memory content
- actually an xmlCharEncoding *)
- dict : xmlDictPtr; (* dict used to allocate names or NULL *)
- psvi : pointer; (* for type/PSVI informations *)
- end;
- (**
- * xmlDOMWrapAcquireNsFunction:
- * @ctxt: a DOM wrapper context
- * @node: the context node (element or attribute)
- * @nsName: the requested namespace name
- * @nsPrefix: the requested namespace prefix
- *
- * A function called to acquire namespaces (xmlNs) from the wrapper.
- *
- * Returns an xmlNsPtr or NULL in case of an error.
- *)
- xmlDOMWrapAcquireNsFunction = function (ctxt: xmlDOMWrapCtxtPtr; node: xmlNodePtr; nsName, nsPrefix: xmlCharPtr): xmlNsPtr; EXTDECL;
- (**
- * xmlDOMWrapCtxt:
- *
- * Context for DOM wrapper-operations.
- *)
- xmlDOMWrapCtxt = record
- _private: pointer;
- (*
- * The type of this context, just in case we need specialized
- * contexts in the future.
- *)
- _type: cint;
- (*
- * Internal namespace map used for various operations.
- *)
- namespaceMap: pointer;
- (*
- * Use this one to acquire an xmlNsPtr intended for node->ns.
- * (Note that this is not intended for elem->nsDef).
- *)
- getNsForNodeFunc: xmlDOMWrapAcquireNsFunction;
- end;
- (**
- * xmlChildrenNode:
- *
- * Macro for compatibility naming layer with libxml1. Maps
- * to "children."
- *)
- {#ifndef xmlChildrenNode
- #define xmlChildrenNode children
- #endif}
- (**
- * xmlRootNode:
- *
- * Macro for compatibility naming layer with libxml1. Maps
- * to "children".
- *)
- {#ifndef xmlRootNode
- #define xmlRootNode children
- #endif}
- {$ENDIF}
- {$IFDEF FUNCTION}
- (*
- * Variables.
- *)
- (*
- * Some helper functions
- *)
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XPATH_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED) or
- defined(LIBXML_DEBUG_ENABLED) or defined (LIBXML_HTML_ENABLED) or defined(LIBXML_SAX1_ENABLED) or
- defined(LIBXML_HTML_ENABLED) or defined(LIBXML_WRITER_ENABLED) or defined(LIBXML_DOCB_ENABLED)}
- function xmlValidateNCName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
- {$ENDIF}
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
- function xmlValidateQName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
- function xmlValidateName(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
- function xmlValidateNMToken(value: xmlCharPtr; space: cint): cint; EXTDECL; external xml2lib;
- {$ENDIF}
- function xmlValidateQName(ncname, prefix, memory: xmlCharPtr; len: cint): xmlCharPtr; EXTDECL; external xml2lib;
- function xmlSplitQName2(name: xmlCharPtr; var prefix: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
- function xmlSplitQName3(name: xmlCharPtr; var prefix: xmlCharPtr; var len: cint): xmlCharPtr; EXTDECL; external xml2lib;
- (*
- * Handling Buffers.
- *)
- procedure xmlSetBufferAllocationScheme(scheme: xmlBufferAllocationScheme); EXTDECL; external xml2lib;
- function xmlGetBufferAllocationScheme: xmlBufferAllocationScheme; EXTDECL; external xml2lib;
- function xmlBufferCreate: xmlBufferPtr; EXTDECL; external xml2lib;
- function xmlBufferCreateSize(size: csize_t): xmlBufferPtr; EXTDECL; external xml2lib;
- function xmlBufferCreateStatic(mem: pointer; size: csize_t): xmlBufferPtr; EXTDECL; external xml2lib;
- function xmlBufferResize(buf: xmlBufferPtr; size: cuint): cint; EXTDECL; external xml2lib;
- procedure xmlBufferFree(buf: xmlBufferPtr); EXTDECL; external xml2lib;
- procedure xmlBufferDump(fp: PFILE; buf: xmlBufferPtr); EXTDECL; external xml2lib;
- function xmlBufferAdd(buf: xmlBufferPtr; str: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
- function xmlBufferAddHead(buf: xmlBufferPtr; str: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
- function xmlBufferCat(buf: xmlBufferPtr; str: xmlCharPtr): cint; EXTDECL; external xml2lib;
- function xmlBufferCCat(buf: xmlBufferPtr; str: pchar): cint; EXTDECL; external xml2lib;
- function xmlBufferShrink(buf: xmlBufferPtr; len: cuint): cint; EXTDECL; external xml2lib;
- function xmlBufferGrow(buf: xmlBufferPtr; len: cuint): cint; EXTDECL; external xml2lib;
- procedure xmlBufferEmpty(buf: xmlBufferPtr); EXTDECL; external xml2lib;
- function xmlBufferContent(buf: xmlBufferPtr): xmlCharPtr; EXTDECL; external xml2lib;
- procedure xmlBufferSetAllocationScheme(buf: xmlBufferPtr; scheme: xmlBufferAllocationScheme); EXTDECL; external xml2lib;
- function xmlBufferLength(buf: xmlBufferPtr): cint; EXTDECL; external xml2lib;
- (*
- * Creating/freeing new structures.
- *)
- function xmlCreateIntSubset(doc: xmlDocPtr; name, ExternalID, SystemID: xmlCharPtr): xmlDtdPtr; EXTDECL; external xml2lib;
- function xmlNewDtd(doc: xmlDocPtr; name, ExternalID, SystemID: xmlCharPtr): xmlDtdPtr; EXTDECL; external xml2lib;
- function xmlGetIntSubset(doc: xmlDocPtr): xmlDtdPtr; EXTDECL; external xml2lib;
- procedure xmlFreeDtd(cur: xmlDtdPtr); EXTDECL; external xml2lib;
- {$IFDEF LIBXML_LEGACY_ENABLED}
- function xmlNewGlobalNs(doc: xmlDocPtr; href, prefix: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_LEGACY_ENABLED *)
- function xmlNewNs(node: xmlNodePtr; href, prefix: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
- procedure xmlFreeNs(cur: xmlNsPtr); EXTDECL; external xml2lib;
- procedure xmlFreeNsList(cur: xmlNsPtr); EXTDECL; external xml2lib;
- function xmlNewDoc(version: xmlCharPtr): xmlDocPtr; EXTDECL; external xml2lib;
- procedure xmlFreeDoc(cur: xmlDocPtr); EXTDECL; external xml2lib;
- function xmlNewDocProp(doc: xmlDocPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_HTML_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
- function xmlNewProp(node: xmlNodePtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- {$ENDIF}
- function xmlNewNsProp(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- function xmlNewNsPropEatName(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- procedure xmlFreePropList(cur: xmlAttrPtr); EXTDECL; external xml2lib;
- procedure xmlFreeProp(cur: xmlAttrPtr); EXTDECL; external xml2lib;
- function xmlCopyProp(target: xmlNodePtr; cur: xmlAttrPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- function xmlCopyPropList(target: xmlNodePtr; cur: xmlAttrPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- {$IFDEF LIBXML_TREE_ENABLED}
- function xmlCopyDtd(dtd: xmlDtdPtr): xmlDtdPtr; EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_TREE_ENABLED *)
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
- function xmlCopyDoc(doc: xmlDocPtr; recursive: cint): xmlDocPtr; EXTDECL; external xml2lib;
- {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) *)
- (*
- * Creating new nodes.
- *)
- function xmlNewDocNode(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewDocNodeEatName(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewNode(ns: xmlNsPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewNodeEatName(ns: xmlNsPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
- function xmlNewChild(parent: xmlNodePtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- {$ENDIF}
- function xmlNewDocText(doc: xmlDocPtr; content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewText(content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewDocPI(doc: xmlDocPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewPI(name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewDocTextLen(doc: xmlDocPtr; content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewTextLen(content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewDocComment(doc: xmlDocPtr; content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewComment(content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewCDataBlock(doc: xmlDocPtr; content: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewCharRef(doc: xmlDocPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewReference(doc: xmlDocPtr; name: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlCopyNode(node: xmlNodePtr; recursive: cint): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlDocCopyNode(node: xmlNodePtr; doc: xmlDocPtr; recursive: cint): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlDocCopyNodeList(doc: xmlDocPtr; node: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlCopyNodeList(node: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- {$IFDEF LIBXML_TREE_ENABLED}
- function xmlNewTextChild(parent: xmlNodePtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewDocRawNode(doc: xmlDocPtr; ns: xmlNsPtr; name, content: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNewDocFragment(doc: xmlDocPtr): xmlNodePtr; EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_TREE_ENABLED *)
- (*
- * Navigating.
- *)
- function xmlGetLineNo(node: xmlNodePtr): clong; EXTDECL; external xml2lib;
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_DEBUG_ENABLED)}
- function xmlGetNodePath(node: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
- {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) *)
- function xmlDocGetRootElement(doc: xmlDocPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlGetLastChild(parent: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNodeIsText(node: xmlNodePtr): cint; EXTDECL; external xml2lib;
- function xmlIsBlankNode(node: xmlNodePtr): cint; EXTDECL; external xml2lib;
- (*
- * Changing the structure.
- *)
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_WRITER_ENABLED)}
- function xmlDocSetRootElement(doc: xmlDocPtr; root: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) *)
- {$IFDEF LIBXML_TREE_ENABLED}
- procedure xmlNodeSetName(cur: xmlNodePtr; name: xmlCharPtr); EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_TREE_ENABLED *)
- function xmlAddChild(parent, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlAddChildList(parent, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_WRITER_ENABLED)}
- function xmlReplaceNode(old, cur: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) *)
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_HTML_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
- function xmlAddPrevSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED *)
- function xmlAddSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlAddNextSibling(cur, elem: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- procedure xmlUnlinkNode(cur: xmlNodePtr); EXTDECL; external xml2lib;
- function xmlTextMerge(first, second: xmlNodePtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlTextConcat(node: xmlNodePtr; name: xmlCharPtr; len: cint): cint; EXTDECL; external xml2lib;
- procedure xmlFreeNodeList(cur: xmlNodePtr); EXTDECL; external xml2lib;
- procedure xmlFreeNode(cur: xmlNodePtr); EXTDECL; external xml2lib;
- procedure xmlSetTreeDoc(tree: xmlNodePtr; doc: xmlDocPtr); EXTDECL; external xml2lib;
- procedure xmlSetListDoc(list: xmlNodePtr; doc: xmlDocPtr); EXTDECL; external xml2lib;
- (*
- * Namespaces.
- *)
- function xmlSearchNs(doc: xmlDocPtr; node: xmlNodePtr; nameSpace: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
- function xmlSearchNsByHref(doc: xmlDocPtr; node: xmlNodePtr; href: xmlCharPtr): xmlNsPtr; EXTDECL; external xml2lib;
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XPATH_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
- function xmlGetNsList(doc: xmlDocPtr; node: xmlNodePtr): xmlNsPtr; EXTDECL; external xml2lib;
- {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) *)
- procedure xmlSetNs(node: xmlNodePtr; ns: xmlNsPtr); EXTDECL; external xml2lib;
- function xmlCopyNamespace(cur: xmlNsPtr): xmlNsPtr; EXTDECL; external xml2lib;
- function xmlCopyNamespaceList(cur: xmlNsPtr): xmlNsPtr; EXTDECL; external xml2lib;
- (*
- * Changing the content.
- *)
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XINCLUDE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED) or defined(LIBXML_HTML_ENABLED)}
- function xmlSetProp(node: xmlNodePtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- function xmlSetNsProp(node: xmlNodePtr; ns: xmlNsPtr; name, value: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) *)
- function xmlGetNoNsProp(node: xmlNodePtr; name: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
- function xmlGetProp(node: xmlNodePtr; name: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
- function xmlHasProp(node: xmlNodePtr; name: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- function xmlHasNsProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlAttrPtr; EXTDECL; external xml2lib;
- function xmlGetNsProp(node: xmlNodePtr; name, nameSpace: xmlCharPtr): xmlCharPtr; EXTDECL; external xml2lib;
- function xmlStringGetNodeList(doc: xmlDocPtr; value: xmlCharPtr): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlStringLenGetNodeList(doc: xmlDocPtr; value: xmlCharPtr; len: cint): xmlNodePtr; EXTDECL; external xml2lib;
- function xmlNodeListGetString(doc: xmlDocPtr; list: xmlNodePtr; _inLine: cint): xmlCharPtr; EXTDECL; external xml2lib;
- {$IFDEF LIBXML_TREE_ENABLED}
- function xmlNodeListGetRawString(doc: xmlDocPtr; list: xmlNodePtr; _inLine: cint): xmlCharPtr; EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_TREE_ENABLED *)
- procedure xmlNodeSetContent(node: xmlNodePtr; content: xmlCharPtr); EXTDECL; external xml2lib;
- {$IFDEF LIBXML_TREE_ENABLED}
- procedure xmlNodeSetContentLen(node: xmlNodePtr; content: xmlCharPtr; len: cint); EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_TREE_ENABLED *)
- procedure xmlNodeAddContent(cur: xmlNodePtr; content: xmlCharPtr); EXTDECL; external xml2lib;
- procedure xmlNodeAddContentLen(cur: xmlNodePtr; content: xmlCharPtr; len: cint); EXTDECL; external xml2lib;
- function xmlNodeGetContent(cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
- function xmlNodeBufGetContent(buffer: xmlBufferPtr; cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
- function xmlNodeGetLang(cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
- function xmlNodeGetSpacePreserve(cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
- {$IFDEF LIBXML_TREE_ENABLED}
- procedure xmlNodeSetLang(cur: xmlNodePtr; lang: xmlCharPtr); EXTDECL; external xml2lib;
- procedure xmlNodeSetSpacePreserve(cur: xmlNodePtr; val: cint); EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_TREE_ENABLED *)
- function xmlNodeGetBase(doc: xmlDocPtr; cur: xmlNodePtr): xmlCharPtr; EXTDECL; external xml2lib;
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_XINCLUDE_ENABLED)}
- procedure xmlNodeSetBase(cur: xmlNodePtr; uri: xmlCharPtr); EXTDECL; external xml2lib;
- {$ENDIF}
- (*
- * Removing content.
- *)
- function xmlRemoveProp(cur: xmlAttrPtr): cint; EXTDECL; external xml2lib;
- {$IF defined(LIBXML_TREE_ENABLED) or defined(LIBXML_SCHEMAS_ENABLED)}
- function xmlUnsetNsProp(node: xmlNodePtr; ns: xmlNsPtr; name: xmlCharPtr): cint; EXTDECL; external xml2lib;
- function xmlUnsetProp(node: xmlNodePtr; name: xmlCharPtr): cint; EXTDECL; external xml2lib;
- {$ENDIF} (* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) *)
- (*
- * Internal, don't use.
- *)
- {external xml2lib void EXTDECL
- xmlBufferWriteCHAR (xmlBufferPtr buf,
- xmlChar *string);
- external xml2lib void EXTDECL
- xmlBufferWriteChar (xmlBufferPtr buf,
- char *string);
- external xml2lib void EXTDECL
- xmlBufferWriteQuotedString(xmlBufferPtr buf,
- xmlChar *string);
- }
- {$IFDEF LIBXML_OUTPUT_ENABLED}
- {external xml2lib void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
- xmlDocPtr doc,
- xmlAttrPtr attr,
- xmlChar *string);}
- {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
- {$IFDEF LIBXML_TREE_ENABLED}
- (*
- * Namespace handling.
- *)
- function xmlReconciliateNs(doc: xmlDocPtr; tree: xmlNodePtr): cint; EXTDECL; external xml2lib;
- {$ENDIF}
- {$IFDEF LIBXML_OUTPUT_ENABLED}
- (*
- * Saving.
- *)
- procedure xmlDocDumpFormatMemory(cur: xmlDocPtr; var mem: xmlCharPtr; var size: cint; format: cint); EXTDECL; external xml2lib;
- procedure xmlDocDumpMemory(cur: xmlDocPtr; var mem: xmlCharPtr; var size: cint); EXTDECL; external xml2lib;
- procedure xmlDocDumpMemoryEnc(out_doc: xmlDocPtr; var doc_txt_ptr: xmlCharPtr; var doc_txt_len: cint; txt_encoding: pchar); EXTDECL; external xml2lib;
- procedure xmlDocDumpFormatMemoryEnc(out_doc: xmlDocPtr; var doc_txt_ptr: xmlCharPtr; var doc_txt_len: cint; txt_encoding: pchar; format: cint); EXTDECL; external xml2lib;
- function xmlDocFormatDump(f: PFILE; cur: xmlDocPtr; format: cint): cint; EXTDECL; external xml2lib;
- function xmlDocDump(f: PFILE; cur: xmlDocPtr): cint; EXTDECL; external xml2lib;
- function xmlElemDump(f: PFILE; doc: xmlDocPtr; cur: xmlNodePtr): cint; EXTDECL; external xml2lib;
- function xmlSaveFormatFile(filename: pchar; cur: xmlDocPtr; format: cint): cint; EXTDECL; external xml2lib;
- function xmlSaveFile(filename: pchar; cur: xmlDocPtr): cint; EXTDECL; external xml2lib;
- function xmlNodeDump(buf: xmlBufferPtr; doc: xmlDocPtr; cur: xmlNodePtr; level, format: cint): cint; EXTDECL; external xml2lib;
- function xmlSaveFileTo(buf: xmlOutputBufferPtr; cur: xmlDocPtr; encoding: pchar): cint; EXTDECL; external xml2lib;
- function xmlSaveFormatFileTo(buf: xmlOutputBufferPtr; cur: xmlDocPtr; encoding: pchar; format: cint): cint; EXTDECL; external xml2lib;
- procedure xmlNodeDumpOutput(buf: xmlBufferPtr; doc: xmlDocPtr; cur: xmlNodePtr; level, format: cint; encoding: pchar); EXTDECL; external xml2lib;
- function xmlSaveFormatFileEnc(filename: pchar; cur: xmlDocPtr; encoding: pchar; format: cint): cint; EXTDECL; external xml2lib;
- function xmlSaveFileEnc(filename: pchar; cur: xmlDocPtr; encoding: pchar): cint; EXTDECL; external xml2lib;
- {$ENDIF} (* LIBXML_OUTPUT_ENABLED *)
- (*
- * XHTML
- *)
- function xmlIsXHTML(systemID, publicID: xmlCharPtr): cint; EXTDECL; external xml2lib;
- (*
- * Compression.
- *)
- function xmlGetDocCompressMode(doc: xmlDocPtr): cint; EXTDECL; external xml2lib;
- procedure xmlSetDocCompressMode(ctxt: xmlDOMWrapCtxtPtr; mode: cint); EXTDECL; external xml2lib;
- function xmlGetCompressMode: cint; EXTDECL; external xml2lib;
- procedure xmlSetCompressMode(mode: cint); EXTDECL; external xml2lib;
- (*
- * DOM-wrapper helper functions.
- *)
- function xmlDOMWrapNewCtxt: xmlDOMWrapCtxtPtr; EXTDECL; external xml2lib;
- procedure xmlDOMWrapNewCtxt(ctxt: xmlDOMWrapCtxtPtr); EXTDECL; external xml2lib;
- function xmlDOMWrapReconcileNamespaces(ctxt: xmlDOMWrapCtxtPtr; elem: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
- function xmlDOMWrapAdoptNode(ctxt: xmlDOMWrapCtxtPtr; sourceDoc: xmlDocPtr; node: xmlNodePtr; destDoc: xmlDocPtr; destParent: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
- function xmlDOMWrapRemoveNode(ctxt: xmlDOMWrapCtxtPtr; doc: xmlDocPtr; node: xmlNodePtr; options: cint): cint; EXTDECL; external xml2lib;
- function xmlDOMWrapCloneNode(ctxt: xmlDOMWrapCtxtPtr; sourceDoc: xmlDocPtr; node: xmlNodePtr; var clonedNode: xmlNodePtr; destDoc: xmlDocPtr; destParent: xmlNodePtr; deep, options: cint): cint; EXTDECL; external xml2lib;
- {$ENDIF}
|