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