/ libxml2 / include / libxml / pattern.h
pattern.h
  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__ */