Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wine-mirror
GitHub Repository: wine-mirror/wine
Path: blob/master/libs/xml2/include/libxml/pattern.h
4394 views
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
47
xmlFreePattern (xmlPatternPtr comp);
48
49
XMLPUBFUN void
50
xmlFreePatternList (xmlPatternPtr comp);
51
52
XMLPUBFUN xmlPatternPtr
53
xmlPatterncompile (const xmlChar *pattern,
54
xmlDict *dict,
55
int flags,
56
const xmlChar **namespaces);
57
XMLPUBFUN int
58
xmlPatternMatch (xmlPatternPtr comp,
59
xmlNodePtr node);
60
61
/* streaming interfaces */
62
typedef struct _xmlStreamCtxt xmlStreamCtxt;
63
typedef xmlStreamCtxt *xmlStreamCtxtPtr;
64
65
XMLPUBFUN int
66
xmlPatternStreamable (xmlPatternPtr comp);
67
XMLPUBFUN int
68
xmlPatternMaxDepth (xmlPatternPtr comp);
69
XMLPUBFUN int
70
xmlPatternMinDepth (xmlPatternPtr comp);
71
XMLPUBFUN int
72
xmlPatternFromRoot (xmlPatternPtr comp);
73
XMLPUBFUN xmlStreamCtxtPtr
74
xmlPatternGetStreamCtxt (xmlPatternPtr comp);
75
XMLPUBFUN void
76
xmlFreeStreamCtxt (xmlStreamCtxtPtr stream);
77
XMLPUBFUN int
78
xmlStreamPushNode (xmlStreamCtxtPtr stream,
79
const xmlChar *name,
80
const xmlChar *ns,
81
int nodeType);
82
XMLPUBFUN int
83
xmlStreamPush (xmlStreamCtxtPtr stream,
84
const xmlChar *name,
85
const xmlChar *ns);
86
XMLPUBFUN int
87
xmlStreamPushAttr (xmlStreamCtxtPtr stream,
88
const xmlChar *name,
89
const xmlChar *ns);
90
XMLPUBFUN int
91
xmlStreamPop (xmlStreamCtxtPtr stream);
92
XMLPUBFUN int
93
xmlStreamWantsAnyNode (xmlStreamCtxtPtr stream);
94
#ifdef __cplusplus
95
}
96
#endif
97
98
#endif /* LIBXML_PATTERN_ENABLED */
99
100
#endif /* __XML_PATTERN_H__ */
101
102