blob: 22cc2114bfd413b5830ec8ac1ae2a3ebe831177a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
(*
* Summary: pattern expression handling
* Description: allows to compile and test pattern expressions for nodes
* either in a tree or based on a parser state.
*
* Copy: See Copyright for the status of this software.
*
* Author: Daniel Veillard
*)
{$IFDEF LIBXML_PATTERN_ENABLED}
{$IFDEF POINTER}
xmlPatternPtr = ^xmlPattern;
xmlStreamCtxtPtr = ^xmlStreamCtxt;
{$ENDIF}
{$IFDEF TYPE}
(**
* xmlPattern:
*
* A compiled (XPath based) pattern to select nodes
*)
xmlPattern = record end;
xmlStreamCtxt = record end;
(**
* xmlPatternFlags:
*
* This is the set of options affecting the behaviour of pattern
* matching with this module
*
*)
xmlPatternFlags = type cint;
{$ENDIF}
{$IFDEF CONST}
XML_PATTERN_DEFAULT = 0; (* simple pattern match *)
XML_PATTERN_XPATH = 1 shl 0; (* standard XPath pattern *)
XML_PATTERN_XSSEL = 1 shl 1; (* XPath subset for schema selector *)
XML_PATTERN_XSFIELD = 1 shl 2; (* XPath subset for schema field *)
{$ENDIF}
{$IFDEF FUNCTION}
procedure xmlFreePattern(comp: xmlPatternPtr); EXTDECL; external xml2lib;
procedure xmlFreePatternList(comp: xmlPatternPtr); EXTDECL; external xml2lib;
function xmlPatterncompile(pattern: xmlCharPtr; dict: xmlDictPtr; flags: cint; namespaces: xmlCharPtrPtr): xmlPatternPtr; EXTDECL; external xml2lib;
function xmlPatternMatch(comp: xmlPatternPtr; node: xmlNodePtr): cint; EXTDECL; external xml2lib;
(* streaming interfaces *)
function xmlPatternStreamable(comp: xmlPatternPtr): cint; EXTDECL; external xml2lib;
function xmlPatternMaxDepth(comp: xmlPatternPtr): cint; EXTDECL; external xml2lib;
function xmlPatternMinDepth(comp: xmlPatternPtr): cint; EXTDECL; external xml2lib;
function xmlPatternFromRoot(comp: xmlPatternPtr): cint; EXTDECL; external xml2lib;
function xmlPatternGetStreamCtxt(comp: xmlPatternPtr): xmlStreamCtxtPtr; EXTDECL; external xml2lib;
procedure xmlFreeStreamCtxt(stream: xmlStreamCtxtPtr); EXTDECL; external xml2lib;
function xmlStreamPushNode(stream: xmlStreamCtxtPtr; name, ns: xmlCharPtr; nodeType: cint): cint; EXTDECL; external xml2lib;
function xmlStreamPush(stream: xmlStreamCtxtPtr; name, ns: xmlCharPtr): cint; EXTDECL; external xml2lib;
function xmlStreamPushAttr(stream: xmlStreamCtxtPtr; name, ns: xmlCharPtr): cint; EXTDECL; external xml2lib;
function xmlStreamPop(stream: xmlStreamCtxtPtr): cint; EXTDECL; external xml2lib;
function xmlStreamWantsAnyNode(stream: xmlStreamCtxtPtr): cint; EXTDECL; external xml2lib;
{$ENDIF}
{$ENDIF} (* LIBXML_PATTERN_ENABLED *)
|