|
Packit |
423ecb |
/*
|
|
Packit |
423ecb |
* Summary: pattern expression handling
|
|
Packit |
423ecb |
* Description: allows to compile and test pattern expressions for nodes
|
|
Packit |
423ecb |
* either in a tree or based on a parser state.
|
|
Packit |
423ecb |
*
|
|
Packit |
423ecb |
* Copy: See Copyright for the status of this software.
|
|
Packit |
423ecb |
*
|
|
Packit |
423ecb |
* Author: Daniel Veillard
|
|
Packit |
423ecb |
*/
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
#ifndef __XML_PATTERN_H__
|
|
Packit |
423ecb |
#define __XML_PATTERN_H__
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
#include <libxml/xmlversion.h>
|
|
Packit |
423ecb |
#include <libxml/tree.h>
|
|
Packit |
423ecb |
#include <libxml/dict.h>
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
#ifdef LIBXML_PATTERN_ENABLED
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
#ifdef __cplusplus
|
|
Packit |
423ecb |
extern "C" {
|
|
Packit |
423ecb |
#endif
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
/**
|
|
Packit |
423ecb |
* xmlPattern:
|
|
Packit |
423ecb |
*
|
|
Packit |
423ecb |
* A compiled (XPath based) pattern to select nodes
|
|
Packit |
423ecb |
*/
|
|
Packit |
423ecb |
typedef struct _xmlPattern xmlPattern;
|
|
Packit |
423ecb |
typedef xmlPattern *xmlPatternPtr;
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
/**
|
|
Packit |
423ecb |
* xmlPatternFlags:
|
|
Packit |
423ecb |
*
|
|
Packit |
423ecb |
* This is the set of options affecting the behaviour of pattern
|
|
Packit |
423ecb |
* matching with this module
|
|
Packit |
423ecb |
*
|
|
Packit |
423ecb |
*/
|
|
Packit |
423ecb |
typedef enum {
|
|
Packit |
423ecb |
XML_PATTERN_DEFAULT = 0, /* simple pattern match */
|
|
Packit |
423ecb |
XML_PATTERN_XPATH = 1<<0, /* standard XPath pattern */
|
|
Packit |
423ecb |
XML_PATTERN_XSSEL = 1<<1, /* XPath subset for schema selector */
|
|
Packit |
423ecb |
XML_PATTERN_XSFIELD = 1<<2 /* XPath subset for schema field */
|
|
Packit |
423ecb |
} xmlPatternFlags;
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
XMLPUBFUN void XMLCALL
|
|
Packit |
423ecb |
xmlFreePattern (xmlPatternPtr comp);
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
XMLPUBFUN void XMLCALL
|
|
Packit |
423ecb |
xmlFreePatternList (xmlPatternPtr comp);
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
XMLPUBFUN xmlPatternPtr XMLCALL
|
|
Packit |
423ecb |
xmlPatterncompile (const xmlChar *pattern,
|
|
Packit |
423ecb |
xmlDict *dict,
|
|
Packit |
423ecb |
int flags,
|
|
Packit |
423ecb |
const xmlChar **namespaces);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlPatternMatch (xmlPatternPtr comp,
|
|
Packit |
423ecb |
xmlNodePtr node);
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
/* streaming interfaces */
|
|
Packit |
423ecb |
typedef struct _xmlStreamCtxt xmlStreamCtxt;
|
|
Packit |
423ecb |
typedef xmlStreamCtxt *xmlStreamCtxtPtr;
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlPatternStreamable (xmlPatternPtr comp);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlPatternMaxDepth (xmlPatternPtr comp);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlPatternMinDepth (xmlPatternPtr comp);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlPatternFromRoot (xmlPatternPtr comp);
|
|
Packit |
423ecb |
XMLPUBFUN xmlStreamCtxtPtr XMLCALL
|
|
Packit |
423ecb |
xmlPatternGetStreamCtxt (xmlPatternPtr comp);
|
|
Packit |
423ecb |
XMLPUBFUN void XMLCALL
|
|
Packit |
423ecb |
xmlFreeStreamCtxt (xmlStreamCtxtPtr stream);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlStreamPushNode (xmlStreamCtxtPtr stream,
|
|
Packit |
423ecb |
const xmlChar *name,
|
|
Packit |
423ecb |
const xmlChar *ns,
|
|
Packit |
423ecb |
int nodeType);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlStreamPush (xmlStreamCtxtPtr stream,
|
|
Packit |
423ecb |
const xmlChar *name,
|
|
Packit |
423ecb |
const xmlChar *ns);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlStreamPushAttr (xmlStreamCtxtPtr stream,
|
|
Packit |
423ecb |
const xmlChar *name,
|
|
Packit |
423ecb |
const xmlChar *ns);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlStreamPop (xmlStreamCtxtPtr stream);
|
|
Packit |
423ecb |
XMLPUBFUN int XMLCALL
|
|
Packit |
423ecb |
xmlStreamWantsAnyNode (xmlStreamCtxtPtr stream);
|
|
Packit |
423ecb |
#ifdef __cplusplus
|
|
Packit |
423ecb |
}
|
|
Packit |
423ecb |
#endif
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
#endif /* LIBXML_PATTERN_ENABLED */
|
|
Packit |
423ecb |
|
|
Packit |
423ecb |
#endif /* __XML_PATTERN_H__ */
|