http://swpat.ffii.org/Action against software patents http://www.gnome.org/Gnome2 Logo http://www.w3.org/StatusW3C Logo http://www.redhat.com/Red Hat Logo http://xmlsoft.org/Made with Libxml2 Logo 
Module pattern from libxml2
API Menu ../index.htmlMain Menu ../docs.htmlDeveloper Menu ../examples/index.htmlCode Examples index.htmlAPI Menu libxml-parser.htmlParser API libxml-tree.htmlTree API libxml-xmlreader.htmlReader API ../guidelines.htmlXML Guidelines ../ChangeLog.htmlChangeLog API Indexes ../APIchunk0.htmlAlphabetic ../APIconstructors.htmlConstructors ../APIfunctions.htmlFunctions/Types ../APIfiles.htmlModules ../APIsymbols.htmlSymbols Related links http://mail.gnome.org/archives/xml/Mail archive http://xmlsoft.org/XSLT/XSLT libxslt http://phd.cs.unibo.it/gdome2/DOM gdome2 http://www.aleksey.com/xmlsec/XML-DSig xmlsec ftp://xmlsoft.org/FTP http://www.zlatkovic.com/projects/libxml/Windows binaries http://www.blastwave.org/packages.php/libxml2Solaris binaries http://www.explain.com.au/oss/libxml2xslt.htmlMacOsX binaries http://libxmlplusplus.sourceforge.net/C++ bindings http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4PHP bindings http://sourceforge.net/projects/libxml2-pas/Pascal bindings http://rubyforge.org/projects/xml-tools/Ruby bindings http://tclxml.sourceforge.net/Tcl bindings http://bugzilla.gnome.org/buglist.cgi?product=libxml2Bug Tracker libxml-parserInternals.htmlPrev libxml-parserInternals.htmlparserInternals index.htmlUp index.htmlAPI documentation ../index.htmlHome ../index.htmlThe XML C parser and toolkit of Gnome libxml-relaxng.htmlrelaxng libxml-relaxng.htmlNext allows to compile and test pattern expressions for nodes either in a tree or based on a parser state. 
Table of Contents
Structure #xmlPatternxmlPattern struct _xmlPattern
The content of this structure is not made public by the API.
Enum #xmlPatternFlagsxmlPatternFlags Typedef libxml-pattern.html#xmlPatternxmlPattern  * xmlPatternPtr Structure #xmlStreamCtxtxmlStreamCtxt struct _xmlStreamCtxt
The content of this structure is not made public by the API.
Typedef libxml-pattern.html#xmlStreamCtxtxmlStreamCtxt  * xmlStreamCtxtPtr void	#xmlFreePatternxmlFreePattern 			( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)void	#xmlFreePatternListxmlFreePatternList 		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)void	#xmlFreeStreamCtxtxmlFreeStreamCtxt 		( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream)int	#xmlPatternFromRootxmlPatternFromRoot 		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp) libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr 	#xmlPatternGetStreamCtxtxmlPatternGetStreamCtxt 	( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)int	#xmlPatternMatchxmlPatternMatch 			( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp, 					 libxml-tree.html#xmlNodePtrxmlNodePtr  node)int	#xmlPatternMaxDepthxmlPatternMaxDepth 		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)int	#xmlPatternMinDepthxmlPatternMinDepth 		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)int	#xmlPatternStreamablexmlPatternStreamable 		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp) libxml-pattern.html#xmlPatternPtrxmlPatternPtr 	#xmlPatterncompilexmlPatterncompile 	(const libxml-xmlstring.html#xmlCharxmlChar  * pattern, 					 libxml-dict.html#xmlDictxmlDict  * dict, 					 int flags, 					 const libxml-xmlstring.html#xmlCharxmlChar  ** namespaces)int	#xmlStreamPopxmlStreamPop 			( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream)int	#xmlStreamPushxmlStreamPush 			( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * ns)int	#xmlStreamPushAttrxmlStreamPushAttr 		( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * ns)int	#xmlStreamPushNodexmlStreamPushNode 		( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * ns, 					 int nodeType)int	#xmlStreamWantsAnyNodexmlStreamWantsAnyNode 		( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  streamCtxt)Description
Structure xmlPattern 
Structure xmlPatternstruct _xmlPattern {
The content of this structure is not made public by the API.
}
Enum xmlPatternFlags 
Enum xmlPatternFlags {
    
XML_PATTERN_DEFAULT  = 0 : simple pattern match
    
XML_PATTERN_XPATH  = 1 : standard XPath pattern
    
XML_PATTERN_XSSEL  = 2 : XPath subset for schema selector
    
XML_PATTERN_XSFIELD  = 4 : XPath subset for schema field
}
Structure xmlStreamCtxt 
Structure xmlStreamCtxtstruct _xmlStreamCtxt {
The content of this structure is not made public by the API.
}
Function: xmlFreePattern
void	xmlFreePattern			( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)Free up the memory allocated by @comp
comp: an XSLT comp Function: xmlFreePatternList
void	xmlFreePatternList		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)Free up the memory allocated by all the elements of @comp
comp: an XSLT comp list Function: xmlFreeStreamCtxt
void	xmlFreeStreamCtxt		( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream)Free the stream context
stream: the stream context Function: xmlPatternFromRoot
int	xmlPatternFromRoot		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)Check if the pattern must be looked at from the root.
comp: the precompiled pattern Returns: 1 if true, 0 if false and -1 in case of error Function: xmlPatternGetStreamCtxt
libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr 	xmlPatternGetStreamCtxt	( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)Get a streaming context for that pattern Use libxml-pattern.html#xmlFreeStreamCtxtxmlFreeStreamCtxt  to free the context.
comp: the precompiled pattern Returns: a pointer to the context or NULL in case of failure Function: xmlPatternMatch
int	xmlPatternMatch			( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp, 					 libxml-tree.html#xmlNodePtrxmlNodePtr  node)Test whether the node matches the pattern
comp: the precompiled pattern node: a node Returns: 1 if it matches, 0 if it doesn't and -1 in case of failure Function: xmlPatternMaxDepth
int	xmlPatternMaxDepth		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)Check the maximum depth reachable by a pattern
comp: the precompiled pattern Returns: -2 if no limit (using //), otherwise the depth, and -1 in case of error Function: xmlPatternMinDepth
int	xmlPatternMinDepth		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)Check the minimum depth reachable by a pattern, 0 mean the / or . are part of the set.
comp: the precompiled pattern Returns: -1 in case of error otherwise the depth, Function: xmlPatternStreamable
int	xmlPatternStreamable		( libxml-pattern.html#xmlPatternPtrxmlPatternPtr  comp)Check if the pattern is streamable i.e. xmlPatternGetStreamCtxt() should work.
comp: the precompiled pattern Returns: 1 if streamable, 0 if not and -1 in case of error. Function: xmlPatterncompile
libxml-pattern.html#xmlPatternPtrxmlPatternPtr 	xmlPatterncompile	(const libxml-xmlstring.html#xmlCharxmlChar  * pattern, 					 libxml-dict.html#xmlDictxmlDict  * dict, 					 int flags, 					 const libxml-xmlstring.html#xmlCharxmlChar  ** namespaces)Compile a pattern.
pattern: the pattern to compile dict: an optional dictionary for interned strings flags: compilation flags, see libxml-pattern.html#xmlPatternFlagsxmlPatternFlags namespaces: the prefix definitions, array of [URI, prefix] or NULL Returns: the compiled form of the pattern or NULL in case of error Function: xmlStreamPop
int	xmlStreamPop			( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream)push one level from the stream.
stream: the stream context Returns: -1 in case of error, 0 otherwise. Function: xmlStreamPush
int	xmlStreamPush			( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * ns)Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an element-node.
stream: the stream context name: the current name ns: the namespace name Returns: -1 in case of error, 1 if the current state in the stream is a match and 0 otherwise. Function: xmlStreamPushAttr
int	xmlStreamPushAttr		( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * ns)Push new libxml-SAX.html#attributeattribute  data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Otherwise the function will act as if it has been given an attribute-node.
stream: the stream context name: the current name ns: the namespace name Returns: -1 in case of error, 1 if the current state in the stream is a match and 0 otherwise. Function: xmlStreamPushNode
int	xmlStreamPushNode		( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  stream, 					 const libxml-xmlstring.html#xmlCharxmlChar  * name, 					 const libxml-xmlstring.html#xmlCharxmlChar  * ns, 					 int nodeType)Push new data onto the stream. NOTE: if the call xmlPatterncompile() indicated a dictionary, then strings for name and ns will be expected to come from the dictionary. Both @name and @ns being NULL means the / i.e. the root of the document. This can also act as a reset. Different from xmlStreamPush() this function can be fed with nodes of type: element-, attribute-, text-, cdata-section-, comment- and processing-instruction-node.
stream: the stream context name: the current name ns: the namespace name nodeType: the type of the node being pushed Returns: -1 in case of error, 1 if the current state in the stream is a match and 0 otherwise. Function: xmlStreamWantsAnyNode
int	xmlStreamWantsAnyNode		( libxml-pattern.html#xmlStreamCtxtPtrxmlStreamCtxtPtr  streamCtxt)Query if the streaming pattern additionally needs to be fed with text-, cdata-section-, comment- and processing-instruction-nodes. If the result is 0 then only element-nodes and attribute-nodes need to be pushed.
streamCtxt: the stream context Returns: 1 in case of need of nodes of the above described types, 0 otherwise. -1 on API errors. ../bugs.htmlDaniel Veillard 
