imgtools/imgcheck/libxml/pattern.h
changeset 2 39c28ec933dd
equal deleted inserted replaced
1:820b22e13ff1 2:39c28ec933dd
       
     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__ */