|
1 /* |
|
2 * Summary: pattern expression handling |
|
3 * Description: allows to compile and test pattern expressions for nodes |
|
4 * either in a tree or based on a parser state. |
|
5 * |
|
6 * Copy: See Copyright for the status of this software. |
|
7 * |
|
8 * Author: Daniel Veillard |
|
9 */ |
|
10 |
|
11 #ifndef __XML_PATTERN_H__ |
|
12 #define __XML_PATTERN_H__ |
|
13 |
|
14 #include <libxml/xmlversion.h> |
|
15 #include <libxml/tree.h> |
|
16 #include <libxml/dict.h> |
|
17 |
|
18 #ifdef LIBXML_PATTERN_ENABLED |
|
19 |
|
20 #ifdef __cplusplus |
|
21 extern "C" { |
|
22 #endif |
|
23 |
|
24 /** |
|
25 * xmlPattern: |
|
26 * |
|
27 * A compiled (XPath based) pattern to select nodes |
|
28 */ |
|
29 typedef struct _xmlPattern xmlPattern; |
|
30 typedef xmlPattern *xmlPatternPtr; |
|
31 |
|
32 /** |
|
33 * xmlPatternFlags: |
|
34 * |
|
35 * This is the set of options affecting the behaviour of pattern |
|
36 * matching with this module |
|
37 * |
|
38 */ |
|
39 typedef enum { |
|
40 XML_PATTERN_DEFAULT = 0, /* simple pattern match */ |
|
41 XML_PATTERN_XPATH = 1<<0, /* standard XPath pattern */ |
|
42 XML_PATTERN_XSSEL = 1<<1, /* XPath subset for schema selector */ |
|
43 XML_PATTERN_XSFIELD = 1<<2 /* XPath subset for schema field */ |
|
44 } xmlPatternFlags; |
|
45 |
|
46 XMLPUBFUN void XMLCALL |
|
47 xmlFreePattern (xmlPatternPtr comp); |
|
48 |
|
49 XMLPUBFUN void XMLCALL |
|
50 xmlFreePatternList (xmlPatternPtr comp); |
|
51 |
|
52 XMLPUBFUN xmlPatternPtr XMLCALL |
|
53 xmlPatterncompile (const xmlChar *pattern, |
|
54 xmlDict *dict, |
|
55 int flags, |
|
56 const xmlChar **namespaces); |
|
57 XMLPUBFUN int XMLCALL |
|
58 xmlPatternMatch (xmlPatternPtr comp, |
|
59 xmlNodePtr node); |
|
60 |
|
61 /* streaming interfaces */ |
|
62 typedef struct _xmlStreamCtxt xmlStreamCtxt; |
|
63 typedef xmlStreamCtxt *xmlStreamCtxtPtr; |
|
64 |
|
65 XMLPUBFUN int XMLCALL |
|
66 xmlPatternStreamable (xmlPatternPtr comp); |
|
67 XMLPUBFUN int XMLCALL |
|
68 xmlPatternMaxDepth (xmlPatternPtr comp); |
|
69 XMLPUBFUN int XMLCALL |
|
70 xmlPatternMinDepth (xmlPatternPtr comp); |
|
71 XMLPUBFUN int XMLCALL |
|
72 xmlPatternFromRoot (xmlPatternPtr comp); |
|
73 XMLPUBFUN xmlStreamCtxtPtr XMLCALL |
|
74 xmlPatternGetStreamCtxt (xmlPatternPtr comp); |
|
75 XMLPUBFUN void XMLCALL |
|
76 xmlFreeStreamCtxt (xmlStreamCtxtPtr stream); |
|
77 XMLPUBFUN int XMLCALL |
|
78 xmlStreamPushNode (xmlStreamCtxtPtr stream, |
|
79 const xmlChar *name, |
|
80 const xmlChar *ns, |
|
81 int nodeType); |
|
82 XMLPUBFUN int XMLCALL |
|
83 xmlStreamPush (xmlStreamCtxtPtr stream, |
|
84 const xmlChar *name, |
|
85 const xmlChar *ns); |
|
86 XMLPUBFUN int XMLCALL |
|
87 xmlStreamPushAttr (xmlStreamCtxtPtr stream, |
|
88 const xmlChar *name, |
|
89 const xmlChar *ns); |
|
90 XMLPUBFUN int XMLCALL |
|
91 xmlStreamPop (xmlStreamCtxtPtr stream); |
|
92 XMLPUBFUN int XMLCALL |
|
93 xmlStreamWantsAnyNode (xmlStreamCtxtPtr stream); |
|
94 #ifdef __cplusplus |
|
95 } |
|
96 #endif |
|
97 |
|
98 #endif /* LIBXML_PATTERN_ENABLED */ |
|
99 |
|
100 #endif /* __XML_PATTERN_H__ */ |