File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml / pattern.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:37:58 2012 UTC (12 years, 5 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, v2_8_0p0, v2_8_0, v2_7_8, HEAD
libxml2

    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__ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>