mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-31 03:12:32 +02:00
1025 lines
40 KiB
ObjectPascal
1025 lines
40 KiB
ObjectPascal
{**************************************************************************}
|
|
{ }
|
|
{ This C DLL header file first (automatic) conversion generated by: }
|
|
{ HeadConv 4.0 (c) 2000 by Bob Swart (aka Dr.Bob - www.drbob42.com) }
|
|
{ Final Delphi-Jedi (Darth) command-line units edition }
|
|
{ }
|
|
{ Generated Date: 10/02/2001 }
|
|
{ Generated Time: 11:22:30 }
|
|
{ }
|
|
{**************************************************************************}
|
|
//
|
|
// Extensive hand editing and correcting by Danny Heijl
|
|
// Feb 10, 2001 Danny.Heijl@pandora.be
|
|
//
|
|
// Adapted for working with Windows and Kylix Open Edtion on Linux
|
|
// Jul 29, 2001 Danny.Heijl@pandora.be
|
|
//
|
|
// Further Modifications and naming changes by Karl Waclawek
|
|
// Oct. 25, 2001 karl@waclawek.net
|
|
//
|
|
// Added include file directive for "expat.inc", by Karl Waclawek
|
|
// March 11, 2002 karl@waclawek.net
|
|
//
|
|
// Added support for new API members in Expat 1.95.5 and 1.95.6
|
|
// Jan. 29, 2003 karl@waclawek.net
|
|
//
|
|
// Adjusted for Expat 2.0.0 on Win/Linux/Mac [see {milano}]
|
|
// Jan. 3, 2007 milan@marusinec.sk
|
|
|
|
{ Notes
|
|
* For UTF-16 output, Expat must have been compiled with
|
|
XML_UNICODE and possibly XML_UNICODE_WCHAR_T defined,
|
|
matching exactly the status of these conditionals here
|
|
}
|
|
|
|
unit Expat;
|
|
|
|
interface
|
|
|
|
{$IFDEF MSWINDOWS}
|
|
uses
|
|
Windows;
|
|
{$ENDIF}
|
|
|
|
const
|
|
{$IFDEF XML_UNICODE}
|
|
LIBPOSTFIX = 'w';
|
|
{$ELSE}
|
|
LIBPOSTFIX = '';
|
|
{$ENDIF}
|
|
|
|
{$IFDEF LINUX }
|
|
EXPATLIB = 'libexpat' + LIBPOSTFIX + '.so';
|
|
|
|
{$ELSE}
|
|
EXPATLIB = 'libexpat' + LIBPOSTFIX + '.dll';
|
|
|
|
{$ENDIF}{milano}
|
|
|
|
|
|
{= > EXPAT.H <=}
|
|
|
|
{+// }
|
|
{-Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd }
|
|
{-See the file COPYING for copying permission. }
|
|
{= }
|
|
|
|
// for compatibility with C enum :
|
|
|
|
{$MINENUMSIZE 4}
|
|
|
|
type
|
|
TXMLParser = Pointer;
|
|
PXMLParser = ^TXMLParser;
|
|
PPXMLParser = ^PXMLParser;
|
|
|
|
XML_Parser = TXMLParser;
|
|
|
|
{ The XML_Status enum gives the possible return values for several API functions. }
|
|
XML_Status = (XML_STATUS_ERROR ,XML_STATUS_OK ,XML_STATUS_SUSPENDED );
|
|
|
|
{$IFDEF XML_UNICODE} {+// Information is UTF-16 encoded.*/ }
|
|
TXMLChar = WideChar;
|
|
PXMLChar = PWideChar;
|
|
{$IFDEF XML_UNICODE_WCHAR_T}
|
|
TXMLLChar = WideChar;
|
|
PXMLLChar = PWideChar;
|
|
{$ELSE}
|
|
TXMLLChar = Char;
|
|
PXMLLChar = PChar;
|
|
{$ENDIF}
|
|
{$ELSE} {+// Information is UTF-8 encoded.*/ }
|
|
TXMLChar = Char;
|
|
TXMLLChar = Char;
|
|
PXMLChar = PChar;
|
|
PXMLLChar = PChar;
|
|
{$ENDIF}
|
|
//PXMLChar = ^TXMLChar;
|
|
//PXMLLChar = ^TXMLLChar;
|
|
|
|
TXMLContentType = (
|
|
XML_CTYPE_ILLEGAL, //dummy, to make XML_CTYPE_EMPTY = 1
|
|
XML_CTYPE_EMPTY,
|
|
XML_CTYPE_ANY,
|
|
XML_CTYPE_MIXED,
|
|
XML_CTYPE_NAME,
|
|
XML_CTYPE_CHOICE,
|
|
XML_CTYPE_SEQ);
|
|
|
|
TXMLContentQuant = (
|
|
XML_CQUANT_NONE,
|
|
XML_CQUANT_OPT,
|
|
XML_CQUANT_REP,
|
|
XML_CQUANT_PLUS);
|
|
|
|
{+// If type == XML_CTYPE_EMPTY or XML_CTYPE_ANY, then quant will be }
|
|
{- XML_CQUANT_NONE, and the other fields will be zero or NULL. }
|
|
{- If type == XML_CTYPE_MIXED, then quant will be NONE or REP and }
|
|
{- numchildren will contain number of elements that may be mixed in }
|
|
{- and children point to an array of XMLContent cells that will be }
|
|
{- all of XML_CTYPE_NAME type with no quantification. }
|
|
|
|
{- If type == XML_CTYPE_NAME, then the name points to the name, and }
|
|
{- the numchildren field will be zero and children will be NULL. The }
|
|
{- quant fields indicates any quantifiers placed on the name. }
|
|
|
|
{- CHOICE and SEQ will have name NULL, the number of children in }
|
|
{- numchildren and children will point, recursively, to an array }
|
|
{- of XMLContent cells. }
|
|
|
|
{- The EMPTY, ANY, and MIXED types will only occur at top level. }
|
|
{= }
|
|
PXMLContent = ^TXMLContent;
|
|
PXMLContents = ^TXMLContents;
|
|
TXMLCp = packed record
|
|
Type_: TXMLContentType;
|
|
Quant: TXMLContentQuant;
|
|
Name: PXMLChar;
|
|
NumChildren:Cardinal;
|
|
Children: PXMLContents;
|
|
end;
|
|
TXMLContent = TXMLCp;
|
|
TXMLContents = packed array[0.. (MaxInt div SizeOf(TXMLContent)) - 1] of TXMLContent;
|
|
|
|
|
|
{+// This is called for an element declaration. See above for }
|
|
{- description of the model argument. It's the caller's responsibility }
|
|
{- to free model when finished with it. }
|
|
{= }
|
|
TXMLElementDeclhandler = procedure(
|
|
UserData: Pointer;
|
|
const Name: PXMLChar;
|
|
Model: PXMLContent); cdecl;
|
|
|
|
procedure XMLSetElementDeclhandler(
|
|
Parser: TXMLParser;
|
|
ElDecl: TXMLElementDeclHandler); cdecl;
|
|
|
|
type
|
|
{+// }
|
|
{- The Attlist declaration handler is called for*each* attribute. So }
|
|
{- a single Attlist declaration with multiple attributes declared will }
|
|
{- generate multiple calls to this handler. The "default" parameter }
|
|
{ may be NULL in the case of the "#IMPLIED" or "#REQUIRED" keyword. }
|
|
{- The "isrequired" parameter will be true and the default value will }
|
|
{ be NULL in the case of "#REQUIRED". If "isrequired" is true and }
|
|
{ default is non-NULL, then this is a "#FIXED" default. }
|
|
{= }
|
|
TXMLAttlistDeclHandler = procedure(
|
|
UserData: Pointer;
|
|
const ElName: PXMLChar;
|
|
const Attname, AttType, Dflt: PXMLChar;
|
|
IsRequired: Integer); cdecl;
|
|
|
|
procedure XMLSetAttlistDeclHandler(
|
|
Parser: TXMLParser;
|
|
AttDecl: TXMLAttlistDeclHandler); cdecl;
|
|
|
|
type
|
|
{+// The XML declaration handler is called for*both* XML declarations and }
|
|
{- text declarations. The way to distinguish is that the version parameter }
|
|
{- will be null for text declarations. The encoding parameter may be null }
|
|
{- for XML declarations. The standalone parameter will be -1, 0, or 1 }
|
|
{- indicating respectively that there was no standalone parameter in }
|
|
{- the declaration, that it was given as no, or that it was given as yes. }
|
|
{= }
|
|
TXMLXmlDeclHandler = procedure(
|
|
UserData: Pointer;
|
|
const Version, Encoding: PXMLChar;
|
|
Standalone: Integer); cdecl;
|
|
|
|
procedure XMLSetXmlDeclHandler(
|
|
Parser: TXMLParser;
|
|
XmlDecl: TXMLXMLdeclHandler); cdecl;
|
|
|
|
{+// Constructs a new Parser; encoding is the encoding specified by the external }
|
|
{= protocol or null if there is none specified. }
|
|
function XML_ParserCreate(const Encoding: PXMLChar): TXMLParser; cdecl;
|
|
|
|
{+// Constructs a new Parser and namespace processor. Element type names }
|
|
{- and attribute names that belong to a namespace will be expanded; }
|
|
{- unprefixed attribute names are never expanded; unprefixed element type }
|
|
{- names are expanded only if there is a default namespace. The expanded }
|
|
{- name is the concatenation of the namespace URI, the namespace separator character, }
|
|
{- and the local part of the name. If the namespace separator is '\0' then }
|
|
{- the namespace URI and the local part will be concatenated without any }
|
|
{- separator. When a namespace is not declared, the name and prefix will be }
|
|
{= passed through without expansion. }
|
|
function XMLParserCreateNS(
|
|
const Encoding: PXMLChar;
|
|
NamespaceSeparator: TXMLChar): TXMLParser; cdecl;
|
|
|
|
{+// Constructs a new Parser using the memory management suit referred to }
|
|
{- by memsuite. If memsuite is NULL, then use the standard library memory }
|
|
{- suite. If namespaceSeparator is non-NULL it creates a Parser with }
|
|
{- namespace processing as described above. The character pointed at }
|
|
{- will serve as the namespace separator. }
|
|
|
|
{- All further memory operations used for the created Parser will come from }
|
|
{- the given suite. }
|
|
{= }
|
|
type
|
|
TMallocFcn = function(Size: Integer): Pointer; cdecl;
|
|
TReallocFcn = function(Ptr: Pointer; Size: Integer): Pointer; cdecl;
|
|
TFreeFcn = procedure(Ptr: Pointer); cdecl;
|
|
|
|
PXMLMemoryHandlingSuite = ^TXMLMemoryHandlingSuite;
|
|
TXMLMemoryHandlingSuite = packed record
|
|
MallocFcn: TMallocFcn;
|
|
ReallocFcn: TReallocFcn;
|
|
FreeFcn: TFReeFcn;
|
|
end;
|
|
|
|
function XMLParserCreateMM(
|
|
const Encoding: PXMLChar;
|
|
const MemSuite: PXMLMemoryHandlingSuite;
|
|
const NamespaceSeparator: PXMLChar): TXMLParser; cdecl;
|
|
|
|
{+// Prepare a parser object to be re-used. This is particularly }
|
|
{- valuable when memory allocation overhead is disproportionatly high, }
|
|
{- such as when a large number of small documnents need to be parsed. }
|
|
{- All handlers are cleared from the parser, except for the }
|
|
{- unknownEncodingHandler. The parser's external state is re-initialized }
|
|
{= except for the values of ns, ns_triplets and useForeignDTD. }
|
|
(*function XMLParserReset(
|
|
Parser: TXMLParser;
|
|
const Encoding: PXMLChar): Integer;*){milano}
|
|
|
|
type
|
|
{+// attrs is array of name/value pairs, terminated by 0; }
|
|
{= names and values are 0 terminated. }
|
|
TAttrs = array[0..(MaxInt div SizeOf(PXMLChar)) - 1] of PXMLChar;
|
|
PAttrs = ^TAttrs;
|
|
|
|
TXMLStartElementHandler = procedure(
|
|
UserData: Pointer;
|
|
const Name: PXMLChar;
|
|
const Atts: TAttrs); cdecl;
|
|
|
|
TXMLEndElementHandler = procedure(
|
|
UserData: Pointer;
|
|
const Name: PXMLChar); cdecl;
|
|
|
|
{+// s is not 0 terminated.*/ }
|
|
TXMLCharacterDataHandler = procedure(
|
|
UserData: Pointer;
|
|
const S: PXMLChar;
|
|
Len: integer); cdecl;
|
|
|
|
{+// target and data are 0 terminated*/ }
|
|
TXMLProcessingInstructionHandler = procedure(
|
|
UserData: Pointer;
|
|
const Target: PXMLChar;
|
|
const Data: PXMLChar); cdecl;
|
|
|
|
{+// data is 0 terminated*/ }
|
|
TXMLCommentHandler = procedure(
|
|
UserData: Pointer;
|
|
const Data: PXMLChar); cdecl;
|
|
|
|
TXMLStartCdataSectionHandler = procedure(UserData: Pointer); cdecl;
|
|
TXMLEndCdataSectionHandler = procedure(UserData: Pointer); cdecl;
|
|
|
|
{+// This is called for any characters in the XML document for }
|
|
{- which there is no applicable handler. This includes both }
|
|
{- characters that are part of markup which is of a kind that is }
|
|
{- not reported (comments, markup declarations), or characters }
|
|
{- that are part of a construct which could be reported but }
|
|
{- for which no handler has been supplied. The characters are passed }
|
|
{- exactly as they were in the XML document except that }
|
|
{- they will be encoded in UTF-8. Line boundaries are not normalized. }
|
|
{- Note that a byte order mark character is not passed to the default handler. }
|
|
{- There are no guarantees about how characters are divided between calls }
|
|
{- to the default handler: for example, a comment might be split between }
|
|
{= multiple calls. }
|
|
TXMLDefaultHandler = procedure(
|
|
UserData: Pointer;
|
|
const S: PXMLChar;
|
|
Len: Integer); cdecl;
|
|
|
|
{+// This is called for the start of the DOCTYPE declaration, before }
|
|
{= any DTD or internal subset is parsed. }
|
|
TXMLStartDoctypeDeclHandler = procedure(
|
|
UserData: Pointer;
|
|
const DoctypeName: PXMLChar;
|
|
const SysId: PXMLChar;
|
|
const PubId: PXMLChar;
|
|
HasInternalSubset: Integer); cdecl;
|
|
|
|
{+// This is called for the start of the DOCTYPE declaration when the }
|
|
{= closing > is encountered, but after processing any external subset. }
|
|
TXMLEndDoctypeDeclHandler = procedure(UserData: Pointer); cdecl;
|
|
|
|
{+// This is called for entity declarations. The is_parameter_entity }
|
|
{- argument will be non-zero if the entity is a parameter entity, zero }
|
|
{- otherwise. }
|
|
|
|
{- For internal entities (<!ENTITY foo "bar">), value will }
|
|
{- be non-null and systemId, publicID, and notationName will be null. }
|
|
{- The value string is NOT null terminated; the length is provided in }
|
|
{- the value_length argument. Since it is legal to have zero-length }
|
|
{- values, do not use this argument to test for internal entities. }
|
|
|
|
{- For external entities, value will be null and systemId will be non-null. }
|
|
{- The publicId argument will be null unless a public identifier was }
|
|
{- provided. The notationName argument will have a non-null value only }
|
|
{- for unparsed entity declarations. }
|
|
{= }
|
|
TXMLEntityDeclHandler = procedure(
|
|
UserData: Pointer;
|
|
const EntityName: PXMLChar;
|
|
IsParameterEntity: Integer;
|
|
const Value: PXMLChar;
|
|
ValueLength: Integer;
|
|
const Base: PXMLChar;
|
|
const SystemId: PXMLChar;
|
|
const PublicId: PXMLChar;
|
|
const NotationName: PXMLChar); cdecl;
|
|
|
|
procedure XMLSetEntityDeclHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLEntityDeclHandler); cdecl;
|
|
|
|
type
|
|
{+// OBSOLETE -- OBSOLETE -- OBSOLETE }
|
|
{- This handler has been superceded by the EntityDeclHandler above. }
|
|
{- It is provided here for backward compatibility. }
|
|
{- This is called for a declaration of an unparsed (NDATA) }
|
|
{- entity. The base argument is whatever was set by XMLSetBase. }
|
|
{- The entityName, systemId and notationName arguments will never be null. }
|
|
{= The other arguments may be. }
|
|
TXMLUnparsedEntityDeclHandler = procedure(
|
|
UserData: Pointer;
|
|
const EntityName: PXMLChar;
|
|
const Base: PXMLChar;
|
|
const SystemId: PXMLChar;
|
|
const PublicId: PXMLChar;
|
|
const NotationName: PXMLChar); cdecl;
|
|
|
|
{+// This is called for a declaration of notation. }
|
|
{- The base argument is whatever was set by XMLSetBase. }
|
|
{= The notationName will never be null. The other arguments can be. }
|
|
TXMLNotationDeclHandler = procedure(
|
|
UserData: Pointer;
|
|
const NotationName: PXMLChar;
|
|
const Base: PXMLChar;
|
|
const SystemId: PXMLChar;
|
|
const PublicId: PXMLChar); cdecl;
|
|
|
|
{+// When namespace processing is enabled, these are called once for }
|
|
{- each namespace declaration. The call to the start and end element }
|
|
{- handlers occur between the calls to the start and end namespace }
|
|
{- declaration handlers. For an xmlns attribute, prefix will be null. }
|
|
{= For an xmlns="" attribute, uri will be null. }
|
|
TXMLStartNamespaceDeclHandler = procedure(
|
|
UserData: pointer;
|
|
const Prefix: PXMLChar;
|
|
const Uri: PXMLChar); cdecl;
|
|
|
|
TXMLEndNamespaceDeclHandler = procedure(
|
|
UserData: Pointer;
|
|
const Prefix: PXMLChar); cdecl;
|
|
|
|
{+// This is called if the document is not standalone (it has an }
|
|
{- external subset or a reference to a parameter entity, but does not }
|
|
{- have standalone="yes"). If this handler returns 0, then processing }
|
|
{- will not continue, and the Parser will return a }
|
|
{= XML_ERROR_NOT_STANDALONE error. }
|
|
TXMLNotStandaloneHandler = function(UserData: Pointer): Integer; cdecl;
|
|
|
|
{+// This is called for a reference to an external parsed general entity. }
|
|
{- The referenced entity is not automatically parsed. }
|
|
{- The application can parse it immediately or later using }
|
|
{- XMLExternalEntityParserCreate. }
|
|
{- The Parser argument is the Parser parsing the entity containing the reference; }
|
|
{- it can be passed as the Parser argument to XMLExternalEntityParserCreate. }
|
|
{- The systemId argument is the system identifier as specified in the entity declaration; }
|
|
{- it will not be null. }
|
|
{- The base argument is the system identifier that should be used as the base for }
|
|
{- resolving systemId if systemId was relative; this is set by XMLSetBase; }
|
|
{- it may be null. }
|
|
{- The publicId argument is the public identifier as specified in the entity declaration, }
|
|
{- or null if none was specified; the whitespace in the public identifier }
|
|
{- will have been normalized as required by the XML spec. }
|
|
{- The context argument specifies the parsing context in the format }
|
|
{- expected by the context argument to }
|
|
{- XMLExternalEntityParserCreate; context is valid only until the handler }
|
|
{- returns, so if the referenced entity is to be parsed later, it must be copied. }
|
|
{- The handler should return 0 if processing should not continue because of }
|
|
{- a fatal error in the handling of the external entity. }
|
|
{- In this case the calling Parser will return an XML_ERROR_EXTERNAL_ENTITY_HANDLING }
|
|
{- error. }
|
|
{= Note that unlike other handlers the first argument is the Parser, not UserData. }
|
|
TXMLExternalEntityRefHandler = function(
|
|
Parser: TXMLParser;
|
|
const Context: PXMLChar;
|
|
const Base: PXMLChar;
|
|
const SystemId: PXMLChar;
|
|
const PublicId: PXMLChar): Integer; cdecl;
|
|
|
|
{+// This is called in two situations: }
|
|
{- 1) An entity reference is encountered for which no declaration }
|
|
{- has been read *and* this is not an error. }
|
|
{- 2) An internal entity reference is read, but not expanded, because }
|
|
{= XML_SetDefaultHandler has been called. }
|
|
TXMLSkippedEntityHandler = procedure(
|
|
UserData: Pointer;
|
|
const EntityName: PXMLChar;
|
|
IsParameterEntity: Integer); cdecl;
|
|
|
|
{+// This structure is filled in by the XMLUnknownEncodingHandler }
|
|
{- to provide information to the Parser about encodings that are unknown }
|
|
{- to the Parser. }
|
|
{- The map[b] member gives information about byte sequences }
|
|
{- whose first byte is b. }
|
|
{- If map[b] is c where c is >= 0, then b by itself encodes the Unicode scalar value c. }
|
|
{- If map[b] is -1, then the byte sequence is malformed. }
|
|
{- If map[b] is -n, where n >= 2, then b is the first byte of an n-byte }
|
|
{- sequence that encodes a single Unicode scalar value. }
|
|
{- The data member will be passed as the first argument to the convert function. }
|
|
{- The convert function is used to convert multibyte sequences; }
|
|
{- s will point to a n-byte sequence where map[(unsigned char)*s] == -n. }
|
|
{- The convert function must return the Unicode scalar value }
|
|
{- represented by this byte sequence or -1 if the byte sequence is malformed. }
|
|
{- The convert function may be null if the encoding is a single-byte encoding, }
|
|
{- that is if map[b] >= -1 for all bytes b. }
|
|
{- When the Parser is finished with the encoding, then if release is not null, }
|
|
{- it will call release passing it the data member; }
|
|
{- once release has been called, the convert function will not be called again. }
|
|
|
|
{- Expat places certain restrictions on the encodings that are supported }
|
|
{- using this mechanism. }
|
|
|
|
{- 1. Every ASCII character that can appear in a well-formed XML document, }
|
|
{- other than the characters }
|
|
|
|
(* $@\^`{}~ *)
|
|
|
|
{- must be represented by a single byte, and that byte must be the }
|
|
{- same byte that represents that character in ASCII. }
|
|
|
|
{- 2. No character may require more than 4 bytes to encode. }
|
|
|
|
{- 3. All characters encoded must have Unicode scalar values <= 0xFFFF, }
|
|
{- (ie characters that would be encoded by surrogates in UTF-16 }
|
|
{- are not allowed). Note that this restriction doesn't apply to }
|
|
{- the built-in support for UTF-8 and UTF-16. }
|
|
|
|
{- 4. No Unicode character may be encoded by more than one distinct sequence }
|
|
{= of bytes. }
|
|
TConvertEncoding = function(Data: Pointer; S: Pchar): Integer; cdecl;
|
|
TReleaseEncoding = procedure(Data: Pointer); cdecl;
|
|
|
|
PXMLEncoding = ^TXMLEncoding;
|
|
TXMLEncoding = packed record
|
|
Map: array[0..255] of Integer;
|
|
Data: Pointer;
|
|
Convert: TConvertEncoding;
|
|
Release: TReleaseEncoding;
|
|
end;
|
|
|
|
{+// This is called for an encoding that is unknown to the Parser. }
|
|
{- The encodingHandlerData argument is that which was passed as the }
|
|
{- second argument to XMLSetUnknownEncodingHandler. }
|
|
{- The name argument gives the name of the encoding as specified in }
|
|
{- the encoding declaration. }
|
|
{- If the callback can provide information about the encoding, }
|
|
{- it must fill in the XMLEncoding structure, and return 1. }
|
|
{- Otherwise it must return 0. }
|
|
{- If info does not describe a suitable encoding, }
|
|
{= then the Parser will return an XML_UNKNOWN_ENCODING error. }
|
|
TXMLUnknownEncodingHandler = function(
|
|
EncodingHandlerData: Pointer;
|
|
const Name: PXMLChar;
|
|
Info: PXMLEncoding): Integer; cdecl;
|
|
|
|
procedure XML_SetElementHandler(
|
|
Parser: TXMLParser;
|
|
Start: TXMLStartElementHandler;
|
|
End_: TXMLEndElementHandler); cdecl;
|
|
|
|
procedure XMLSetStartElementhandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLStartElementHandler); cdecl;
|
|
|
|
procedure XMLSetEndElementHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLEndElementHandler); cdecl;
|
|
|
|
procedure XML_SetCharacterDataHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLCharacterDataHandler); cdecl;
|
|
|
|
procedure XMLSetProcessingInstructionHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLProcessingInstructionHandler); cdecl;
|
|
|
|
procedure XMLSetCommentHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLCommentHandler); cdecl;
|
|
|
|
procedure XMLSetCdataSectionHandler(
|
|
Parser: TXMLParser;
|
|
Start: TXMLStartCdataSectionHandler;
|
|
End_: TXMLEndCdataSectionHandler); cdecl;
|
|
|
|
procedure XMLSetStartCdataSectionHandler(
|
|
Parser: TXMLParser;
|
|
Start: TXMLStartCdataSectionHandler); cdecl;
|
|
|
|
procedure XMLSetEndCdataSectionHandler(
|
|
Parser: TXMLParser;
|
|
End_: TXMLEndCdataSectionHandler); cdecl;
|
|
|
|
{+// This sets the default handler and also inhibits expansion of internal entities. }
|
|
{- The entity references will be passed to the default handler, or to the
|
|
{= skipped entity handler, if one is set. }
|
|
procedure XMLSetdefaultHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLDefaultHandler); cdecl;
|
|
|
|
{+// This sets the default handler but does not inhibit expansion of internal entities. }
|
|
{= The entity reference will not be passed to the default handler. }
|
|
procedure XMLSetDefaultHandlerExpand(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLDefaultHandler); cdecl;
|
|
|
|
procedure XMLSetDoctypeDeclHandler(
|
|
Parser: TXMLParser;
|
|
Start: TXMLStartDoctypeDeclHandler;
|
|
End_: TXMLEndDoctypeDeclHandler); cdecl;
|
|
|
|
procedure XMLSetStartDoctypeDeclHandler(
|
|
Parser: TXMLParser;
|
|
Start: TXMLStartDoctypeDeclHandler); cdecl;
|
|
|
|
procedure XMLSetEndDoctypeDeclHandler(
|
|
Parser: TXMLParser;
|
|
End_: TXMLEndDoctypeDeclHandler); cdecl;
|
|
|
|
procedure XMLSetUnparsedEntityDeclHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLUnparsedEntityDeclHandler); cdecl;
|
|
|
|
procedure XMLSetNotationDeclHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLNotationDeclHandler); cdecl;
|
|
|
|
procedure XMLSetNameSpaceDeclHandler(
|
|
Parser: TXMLParser;
|
|
Start: TXMLStartNamespaceDeclHandler;
|
|
End_: TXMLEndNamespaceDeclHandler); cdecl;
|
|
|
|
procedure XMLSetStartNameSpaceDeclHandler(
|
|
Parser: TXMLParser;
|
|
Start: TXMLStartNamespaceDeclHandler); cdecl;
|
|
|
|
procedure XMLSetEndNameSpaceDeclHandler(
|
|
Parser: TXMLParser;
|
|
End_: TXMLEndNamespaceDeclHandler); cdecl;
|
|
|
|
procedure XMLSetNotstandaloneHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLNotStandaloneHandler); cdecl;
|
|
|
|
procedure XMLSetExternalEntityRefHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLExternalEntityRefHandler); cdecl;
|
|
|
|
{+// If a non-null value for arg is specified here, then it will be passed }
|
|
{- as the first argument to the external entity ref handler instead }
|
|
{= of the Parser object. }
|
|
procedure XMLSetExternalEntityRefHandlerArg(
|
|
Parser: TXMLParser;
|
|
Arg: Pointer); cdecl;
|
|
|
|
procedure XMLSetSkippedEntityHandler(
|
|
Parser: TXMLParser;
|
|
Handler: TXMLSkippedEntityHandler); cdecl;
|
|
|
|
{ EncodingHandlerData works like UserData }
|
|
procedure XMLSetUnknownEncodingHandler(
|
|
Parser: TXMLPARSER;
|
|
Handler: TXMLUnknownEncodingHandler;
|
|
EncodingHandlerData: Pointer); cdecl;
|
|
|
|
{+// This can be called within a handler for a start element, end element, }
|
|
{- processing instruction or character data. It causes the corresponding }
|
|
{= markup to be passed to the default handler. }
|
|
procedure XMLDefaultCurrent(Parser: TXMLParser); cdecl;
|
|
|
|
{+// If do_nst is non-zero, and namespace processing is in effect, and }
|
|
{- a name has a prefix (i.e. an explicit namespace qualifier) then }
|
|
{- that name is returned as a triplet in a single }
|
|
{- string separated by the separator character specified when the Parser }
|
|
{- was created: URI + sep + local_name + sep + prefix. }
|
|
|
|
{- If do_nst is zero, then namespace information is returned in the }
|
|
{- default manner (URI + sep + local_name) whether or not the names }
|
|
{- has a prefix. }
|
|
{= }
|
|
procedure XMLSetReturnNSTriplet(
|
|
Parser: TXMLParser;
|
|
DoNst: Integer); cdecl;
|
|
|
|
{+// This value is passed as the UserData argument to callbacks.*/ }
|
|
procedure XML_SetUserData(
|
|
Parser: TXMLParser;
|
|
UserData: Pointer); cdecl;
|
|
|
|
{+// Returns the last value set by XMLSetUserData or null.*/ }
|
|
{ #define XMLGetUserData(Parser) (*(void **)(Parser)) }
|
|
function XMLGetUserData(Parser: TXMLParser): Pointer;
|
|
|
|
{+// This is equivalent to supplying an encoding argument }
|
|
{- to XMLParserCreate. It must not be called after XMLParse }
|
|
{= or XMLParseBuffer. }
|
|
function XMLSetEncoding(
|
|
Parser: TXMLParser;
|
|
const Encoding: PXMLChar): Integer; cdecl;
|
|
|
|
{+// If this function is called, then the Parser will be passed }
|
|
{- as the first argument to callbacks instead of UserData. }
|
|
{= The UserData will still be accessible using XMLGetUserData. }
|
|
procedure XMLUseParserAsHandlerArg(Parser: TXMLParser); cdecl;
|
|
|
|
{+// If useDTD == XML_TRUE is passed to this function, then the parser }
|
|
{- will assume that there is an external subset, even if none is }
|
|
{- specified in the document. In such a case the parser will call the }
|
|
{- externalEntityRefHandler with a value of NULL for the systemId }
|
|
{- argument (the publicId and context arguments will be NULL as well). }
|
|
{- Note: If this function is called, then this must be done before }
|
|
{- the first call to XML_Parse or XML_ParseBuffer, since it will }
|
|
{- have no effect after that. Returns }
|
|
{- XML_ERROR_CANT_CHANGE_FEATURE_ONCE_PARSING. }
|
|
{- Note: If the document does not have a DOCTYPE declaration at all, }
|
|
{- then startDoctypeDeclHandler and endDoctypeDeclHandler will not }
|
|
{- be called, despite an external subset being parsed. }
|
|
{- Note: If XML_DTD is not defined when Expat is compiled, returns }
|
|
{= XML_ERROR_FEATURE_REQUIRES_XML_DTD. }
|
|
procedure XMLUseForeignDTD(
|
|
Parser: TXMLParser;
|
|
useDTD: ByteBool); cdecl;
|
|
|
|
{+// Sets the base to be used for resolving relative URIs in system identifiers in }
|
|
{- declarations. Resolving relative identifiers is left to the application: }
|
|
{- this value will be passed through as the base argument to the }
|
|
{- XMLExternalEntityRefHandler, XMLNotationDeclHandler }
|
|
{- and XMLUnparsedEntityDeclHandler. The base argument will be copied. }
|
|
{= Returns zero if out of memory, non-zero otherwise. }
|
|
function XMLSetBase(
|
|
Parser: TXMLParser;
|
|
const Base: PXMLChar): Integer; cdecl;
|
|
|
|
function XMLGetBase(Parser: TXMLParser): PXMLChar; cdecl;
|
|
|
|
{+// Returns the number of the attribute/value pairs passed in last call }
|
|
{- to the XMLStartElementHandler that were specified in the start-tag }
|
|
{- rather than defaulted. Each attribute/value pair counts as 2; thus }
|
|
{- this correspondds to an index into the atts array passed to the }
|
|
{= XMLStartElementHandler. }
|
|
function XMLGetSpecifiedAttributeCount(Parser: TXMLParser): Integer; cdecl;
|
|
|
|
{+// Returns the index of the ID attribute passed in the last call to }
|
|
{- XMLStartElementHandler, or -1 if there is no ID attribute. Each }
|
|
{- attribute/value pair counts as 2; thus this correspondds to an index }
|
|
{= into the atts array passed to the XMLStartElementHandler. }
|
|
function XMLGetIdAttributeIndex(Parser: TXMLParser): Integer; cdecl;
|
|
|
|
{+// Parses some input. Returns 0 if a fatal error is detected. }
|
|
{- The last call to XMLParse must have isFinal true; }
|
|
{= len may be zero for this call (or any other). }
|
|
function XML_Parse(
|
|
Parser: TXMLParser;
|
|
const S: PChar;
|
|
Len: Integer;
|
|
IsFinal: Integer): XML_Status; cdecl;
|
|
|
|
function XMLGetBuffer(
|
|
Parser: TXMLParser;
|
|
Len: Integer): Pointer; cdecl;
|
|
|
|
function XMLParseBuffer(
|
|
Parser: TXMLParser;
|
|
Len: Integer;
|
|
IsFinal: Integer): Integer; cdecl;
|
|
|
|
{+// Creates an XMLParser object that can parse an external general entity; }
|
|
{- context is a '\0'-terminated string specifying the parse context; }
|
|
{- encoding is a '\0'-terminated string giving the name of the externally specified encoding, }
|
|
{- or null if there is no externally specified encoding. }
|
|
{- The context string consists of a sequence of tokens separated by formfeeds (\f); }
|
|
{- a token consisting of a name specifies that the general entity of the name }
|
|
{- is open; a token of the form prefix=uri specifies the namespace for a particular }
|
|
{- prefix; a token of the form =uri specifies the default namespace. }
|
|
{- This can be called at any point after the first call to an ExternalEntityRefHandler }
|
|
{- so longer as the Parser has not yet been freed. }
|
|
{- The new Parser is completely independent and may safely be used in a separate thread. }
|
|
{- The handlers and UserData are initialized from the Parser argument. }
|
|
{= Returns 0 if out of memory. Otherwise returns a new XMLParser object. }
|
|
function XMLExternalEntityParserCreate(
|
|
Parser: TXMLParser;
|
|
const Context: PXMLChar;
|
|
const Encoding: PXMLChar): TXMLParser; cdecl;
|
|
|
|
type
|
|
TXMLParamEntityParsing = (
|
|
XML_PARAM_ENTITY_PARSING_NEVER,
|
|
XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE,
|
|
XML_PARAM_ENTITY_PARSING_ALWAYS);
|
|
|
|
{+// Controls parsing of parameter entities (including the external DTD }
|
|
{- subset). If parsing of parameter entities is enabled, then references }
|
|
{- to external parameter entities (including the external DTD subset) }
|
|
{- will be passed to the handler set with }
|
|
{- XMLSetExternalEntityRefHandler. The context passed will be 0. }
|
|
{- Unlike external general entities, external parameter entities can only }
|
|
{- be parsed synchronously. If the external parameter entity is to be }
|
|
{- parsed, it must be parsed during the call to the external entity ref }
|
|
{- handler: the complete sequence of XMLExternalEntityParserCreate, }
|
|
{- XMLParse/XMLParseBuffer and XMLParserFree calls must be made during }
|
|
{- this call. After XMLExternalEntityParserCreate has been called to }
|
|
{- create the Parser for the external parameter entity (context must be 0 }
|
|
{- for this call), it is illegal to make any calls on the old Parser }
|
|
{- until XMLParserFree has been called on the newly created Parser. If }
|
|
{- the library has been compiled without support for parameter entity }
|
|
{- parsing (ie without XML_DTD being defined), then }
|
|
{- XMLSetParamEntityParsing will return 0 if parsing of parameter }
|
|
{= entities is requested; otherwise it will return non-zero. }
|
|
function XMLSetParamEntityParsing(
|
|
Parser: TXMLParser;
|
|
Parsing: TXMLParamEntityParsing): Integer; cdecl;
|
|
|
|
type
|
|
TXMLError = (
|
|
XML_ERROR_NONE,
|
|
XML_ERROR_NO_MEMORY,
|
|
XML_ERROR_SYNTAX,
|
|
XML_ERROR_NO_ELEMENTS,
|
|
XML_ERROR_INVALID_TOKEN,
|
|
XML_ERROR_UNCLOSED_TOKEN,
|
|
XML_ERROR_PARTIAL_CHAR,
|
|
XML_ERROR_TAG_MISMATCH,
|
|
XML_ERROR_DUPLICATE_ATTRIBUTE,
|
|
XML_ERROR_JUNK_AFTER_DOC_ELEMENT,
|
|
XML_ERROR_PARAM_ENTITY_REF,
|
|
XML_ERROR_UNDEFINED_ENTITY,
|
|
XML_ERROR_RECURSIVE_ENTITY_REF,
|
|
XML_ERROR_ASYNC_ENTITY,
|
|
XML_ERROR_BAD_CHAR_REF,
|
|
XML_ERROR_BINARY_ENTITY_REF,
|
|
XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF,
|
|
XML_ERROR_MISPLACED_XML_PI,
|
|
XML_ERROR_UNKNOWN_ENCODING,
|
|
XML_ERROR_INCORRECT_ENCODING,
|
|
XML_ERROR_UNCLOSED_CDATA_SECTION,
|
|
XML_ERROR_EXTERNAL_ENTITY_HANDLING,
|
|
XML_ERROR_NOT_STANDALONE,
|
|
XML_ERROR_UNEXPECTED_STATE);
|
|
|
|
XML_Error = TXMLError;
|
|
|
|
{+// If XMLParse or XMLParseBuffer have returned 0, then XMLGetErrorCode );
|
|
{= returns information about the error. }
|
|
function XML_GetErrorCode(Parser: TXMLParser): TXMLError; cdecl;
|
|
|
|
{+// These functions return information about the current parse location. );
|
|
{- They may be called when XMLParse or XMLParseBuffer return 0; }
|
|
{- in this case the location is the location of the character at which }
|
|
{- the error was detected. }
|
|
{- They may also be called from any other callback called to report }
|
|
{- some parse event; in this the location is the location of the first }
|
|
{= of the sequence of characters that generated the event. }
|
|
function XML_GetCurrentLineNumber(Parser: TXMLParser): Integer; cdecl;
|
|
function XMLGetCurrentColumnNumber(Parser: TXMLParser): Integer; cdecl;
|
|
function XMLGetCurrentByteIndex(Parser: TXMLParser): Longint; cdecl;
|
|
|
|
{+// Return the number of bytes in the current event. }
|
|
{= Returns 0 if the event is in an internal entity. }
|
|
function XMLGetCurrentByteCount(Parser: TXMLParser): Integer; cdecl;
|
|
|
|
{+// If XML_CONTEXT_BYTES is defined, returns the input buffer, sets }
|
|
{- the integer pointed to by offset to the offset within this buffer }
|
|
{- of the current parse position, and sets the integer pointed to by size }
|
|
{- to the size of this buffer (the number of input bytes). Otherwise }
|
|
{- returns a null pointer. Also returns a null pointer if a parse isn't active. }
|
|
|
|
{- NOTE: The character pointer returned should not be used outside }
|
|
{= the handler that makes the call. }
|
|
function XMLGetInputContext(
|
|
Parser: TXMLParser;
|
|
var Offset: Integer;
|
|
var Size: Integer): PChar; cdecl;
|
|
|
|
{+// For backwards compatibility with previous versions. }
|
|
// #define XMLGetErrorLineNumber XMLGetCurrentLineNumber
|
|
// #define XMLGetErrorColumnNumber XMLGetCurrentColumnNumber
|
|
// #define XMLGetErrorByteIndex XMLGetCurrentByteIndex
|
|
|
|
{+// Frees memory used by the Parser. }
|
|
procedure XML_ParserFree(Parser: TXMLParser); cdecl;
|
|
|
|
{+// Returns a string describing the error. }
|
|
function XML_ErrorString(Code: Integer): PXMLLChar; cdecl;
|
|
|
|
{+// Return a string containing the version number of this expat }
|
|
function XMLExpatVersion: PXMLLChar; cdecl;
|
|
|
|
type
|
|
TXMLExpatVersion = packed record
|
|
Major: Longint;
|
|
Minor: Longint;
|
|
Micro: Longint;
|
|
end;
|
|
|
|
{+// Return a TXMLExpatVersion record with version details }
|
|
function XMLExpatVersionInfo: TXMLExpatVersion; cdecl;
|
|
|
|
type
|
|
{+// Added in Expat 1.95.5. }
|
|
TXMLFeature = (
|
|
XML_FEATURE_END,
|
|
XML_FEATURE_UNICODE,
|
|
XML_FEATURE_UNICODE_WCHAR_T,
|
|
XML_FEATURE_DTD,
|
|
XML_FEATURE_CONTEXT_BYTES,
|
|
XML_FEATURE_MIN_SIZE,
|
|
XML_FEATURE_SIZEOF_XML_CHAR,
|
|
XML_FEATURE_SIZEOF_XML_LCHAR);
|
|
{+// Additional features must be added to the end of this enum. }
|
|
|
|
PXMLFeatureInfo = ^TXMLFeatureInfo;
|
|
TXMLFeatureInfo = packed record
|
|
Feature: TXMLFeature;
|
|
Name: PXMLLChar;
|
|
Value: Longint
|
|
end;
|
|
|
|
PXMLFeatureList = ^TXMLFeatureList;
|
|
TXMLFeatureList = packed array[0.. (MaxInt div SizeOf(TXMLFeatureInfo)) - 1]
|
|
of TXMLFeatureInfo;
|
|
|
|
{+// Return a list feature macro descriptions }
|
|
function XMLGetFeatureList: PXMLFeatureList; cdecl;
|
|
|
|
{+// Frees the content model passed to the element declaration handler }
|
|
procedure XMLFreeContentModel(Parser: TXMLParser; Model: PXMLContent); cdecl;
|
|
|
|
{+// Exposing the memory handling functions used in Expat }
|
|
function XMLMemMalloc(
|
|
Parser: TXMLParser;
|
|
Size: Longword): Pointer; cdecl;
|
|
function XMLMemRealloc(
|
|
Parser: TXMLParser;
|
|
Ptr: Pointer;
|
|
Size: Longword): Pointer; cdecl;
|
|
procedure XMLMemFree(
|
|
Parser: TXMLParser;
|
|
Ptr: Pointer); cdecl;
|
|
|
|
|
|
implementation
|
|
|
|
{ XML_GetUserData is defined as a macro in Expat:
|
|
#define XML_GetUserData(Parser) (*(void **)(Parser))
|
|
So we can't call an API function, but we can duplicate what it does }
|
|
type
|
|
PPointer = ^Pointer;
|
|
|
|
function XMLGetUserData(Parser: TXMLParser): Pointer;
|
|
begin
|
|
Result := PPointer(Parser)^;
|
|
end;
|
|
|
|
procedure XMLDefaultCurrent;
|
|
external EXPATLIB name 'XML_DefaultCurrent';
|
|
function XML_ErrorString;
|
|
external EXPATLIB name 'XML_ErrorString';
|
|
function XMLExpatVersion;
|
|
external EXPATLIB name 'XML_ExpatVersion';
|
|
function XMLExpatVersionInfo;
|
|
external EXPATLIB name 'XML_ExpatVersionInfo';
|
|
function XMLExternalEntityParserCreate;
|
|
external EXPATLIB name 'XML_ExternalEntityParserCreate';
|
|
function XMLGetBase;
|
|
external EXPATLIB name 'XML_GetBase';
|
|
function XMLGetBuffer;
|
|
external EXPATLIB name 'XML_GetBuffer';
|
|
function XMLGetCurrentByteCount;
|
|
external EXPATLIB name 'XML_GetCurrentByteCount';
|
|
function XMLGetCurrentByteIndex;
|
|
external EXPATLIB name 'XML_GetCurrentByteIndex';
|
|
function XMLGetCurrentColumnNumber;
|
|
external EXPATLIB name 'XML_GetCurrentColumnNumber';
|
|
function XML_GetCurrentLineNumber;
|
|
external EXPATLIB name 'XML_GetCurrentLineNumber';
|
|
function XML_GetErrorCode;
|
|
external EXPATLIB name 'XML_GetErrorCode';
|
|
function XMLGetIdAttributeIndex;
|
|
external EXPATLIB name 'XML_GetIdAttributeIndex';
|
|
function XMLGetInputContext;
|
|
external EXPATLIB name 'XML_GetInputContext';
|
|
function XMLGetSpecifiedAttributeCount;
|
|
external EXPATLIB name 'XML_GetSpecifiedAttributeCount';
|
|
function XML_Parse;
|
|
external EXPATLIB name 'XML_Parse';
|
|
function XMLParseBuffer;
|
|
external EXPATLIB name 'XML_ParseBuffer';
|
|
function XML_ParserCreate;
|
|
external EXPATLIB name 'XML_ParserCreate';
|
|
function XMLParserCreateNS;
|
|
external EXPATLIB name 'XML_ParserCreateNS';
|
|
function XMLParserCreateMM;
|
|
external EXPATLIB name 'XML_ParserCreate_MM';
|
|
procedure XML_ParserFree;
|
|
external EXPATLIB name 'XML_ParserFree';
|
|
procedure XMLSetAttlistDeclHandler;
|
|
external EXPATLIB name 'XML_SetAttlistDeclHandler';
|
|
function XMLSetBase;
|
|
external EXPATLIB name 'XML_SetBase';
|
|
procedure XMLSetCdataSectionHandler;
|
|
external EXPATLIB name 'XML_SetCdataSectionHandler';
|
|
procedure XML_SetCharacterDataHandler;
|
|
external EXPATLIB name 'XML_SetCharacterDataHandler';
|
|
procedure XMLSetCommentHandler;
|
|
external EXPATLIB name 'XML_SetCommentHandler';
|
|
procedure XMLSetDefaultHandler;
|
|
external EXPATLIB name 'XML_SetDefaultHandler';
|
|
procedure XMLSetDefaultHandlerExpand;
|
|
external EXPATLIB name 'XML_SetDefaultHandlerExpand';
|
|
procedure XMLSetDoctypeDeclHandler;
|
|
external EXPATLIB name 'XML_SetDoctypeDeclHandler';
|
|
procedure XMLSetElementDeclHandler;
|
|
external EXPATLIB name 'XML_SetElementDeclHandler';
|
|
procedure XML_SetElementHandler;
|
|
external EXPATLIB name 'XML_SetElementHandler';
|
|
function XMLSetEncoding;
|
|
external EXPATLIB name 'XML_SetEncoding';
|
|
procedure XMLSetEndCdataSectionHandler;
|
|
external EXPATLIB name 'XML_SetEndCdataSectionHandler';
|
|
procedure XMLSetEndDoctypeDeclHandler;
|
|
external EXPATLIB name 'XML_SetEndDoctypeDeclHandler';
|
|
procedure XMLSetEndElementHandler;
|
|
external EXPATLIB name 'XML_SetEndElementHandler';
|
|
procedure XMLSetEndNamespaceDeclHandler;
|
|
external EXPATLIB name 'XML_SetEndNamespaceDeclHandler';
|
|
procedure XMLSetEntityDeclHandler;
|
|
external EXPATLIB name 'XML_SetEntityDeclHandler';
|
|
procedure XMLSetExternalEntityRefHandler;
|
|
external EXPATLIB name 'XML_SetExternalEntityRefHandler';
|
|
procedure XMLSetExternalEntityRefHandlerArg;
|
|
external EXPATLIB name 'XML_SetExternalEntityRefHandlerArg';
|
|
procedure XMLSetNamespaceDeclHandler;
|
|
external EXPATLIB name 'XML_SetNamespaceDeclHandler';
|
|
procedure XMLSetNotStandaloneHandler;
|
|
external EXPATLIB name 'XML_SetNotStandaloneHandler';
|
|
procedure XMLSetNotationDeclHandler;
|
|
external EXPATLIB name 'XML_SetNotationDeclHandler';
|
|
function XMLSetParamEntityParsing;
|
|
external EXPATLIB name 'XML_SetParamEntityParsing';
|
|
procedure XMLSetProcessingInstructionHandler;
|
|
external EXPATLIB name 'XML_SetProcessingInstructionHandler';
|
|
procedure XMLSetReturnNSTriplet;
|
|
external EXPATLIB name 'XML_SetReturnNSTriplet';
|
|
procedure XMLSetStartCdataSectionHandler;
|
|
external EXPATLIB name 'XML_SetStartCdataSectionHandler';
|
|
procedure XMLSetStartDoctypeDeclHandler;
|
|
external EXPATLIB name 'XML_SetStartDoctypeDeclHandler';
|
|
procedure XMLSetStartElementHandler;
|
|
external EXPATLIB name 'XML_SetStartElementHandler';
|
|
procedure XMLSetStartNamespaceDeclHandler;
|
|
external EXPATLIB name 'XML_SetStartNamespaceDeclHandler';
|
|
procedure XMLSetUnknownEncodingHandler;
|
|
external EXPATLIB name 'XML_SetUnknownEncodingHandler';
|
|
procedure XMLSetUnparsedEntityDeclHandler;
|
|
external EXPATLIB name 'XML_SetUnparsedEntityDeclHandler';
|
|
procedure XML_SetUserData;
|
|
external EXPATLIB name 'XML_SetUserData';
|
|
procedure XMLSetXmlDeclHandler;
|
|
external EXPATLIB name 'XML_SetXmlDeclHandler';
|
|
procedure XMLUseParserAsHandlerArg;
|
|
external EXPATLIB name 'XML_UseParserAsHandlerArg';
|
|
// added with version 1.95.3
|
|
(*function XMLParserReset;
|
|
external EXPATLIB name 'XML_ParserReset';*){milano}
|
|
procedure XMLSetSkippedEntityHandler;
|
|
external EXPATLIB name 'XML_SetSkippedEntityHandler';
|
|
// added with version 1.95.5
|
|
function XMLGetFeatureList;
|
|
external EXPATLIB name 'XML_GetFeatureList';
|
|
procedure XMLUseForeignDTD;
|
|
external EXPATLIB name 'XML_UseForeignDTD';
|
|
// added with version 1.95.6
|
|
procedure XMLFreeContentModel;
|
|
external EXPATLIB name 'XML_FreeContentModel';
|
|
function XMLMemMalloc;
|
|
external EXPATLIB name 'XML_MemMalloc';
|
|
function XMLMemRealloc;
|
|
external EXPATLIB name 'XML_MemRealloc';
|
|
procedure XMLMemFree;
|
|
external EXPATLIB name 'XML_MemFree';
|
|
|
|
|
|
end.
|