#

## Module xmlregexp from libxml2

API Menu

- Main Menu
- Developer Menu
- Code Examples
- API Menu
- Parser API
- Tree API
- Reader API
- XML Guidelines
- ChangeLog

API Indexes

- Alphabetic
- Constructors
- Functions/Types
- Modules
- Symbols

Related links

- Mail archive
- XSLT libxslt
- DOM gdome2
- XML-DSig xmlsec
- FTP
- Windows binaries
- Solaris binaries
- MacOsX binaries
- C++ bindings
- PHP bindings
- Pascal bindings
- Ruby bindings
- Tcl bindings
- Bug Tracker

basic API for libxml regular expressions handling used for XML Schemas and validation.

## Table of Contents

    Structure xmlRegExecCtxt
    struct _xmlRegExecCtxt
    The content of this structure is not made public by the API.

    Typedef xmlRegExecCtxt * xmlRegExecCtxtPtr

    Structure xmlRegexp
    struct _xmlRegexp
    The content of this structure is not made public by the API.

    Typedef xmlRegexp * xmlRegexpPtr

    Function type: xmlRegExecCallbacks
    void	xmlRegExecCallbacks		(xmlRegExecCtxtPtr exec,
    					 const xmlChar * token,
    					 void * transdata,
    					 void * inputdata)

    int	xmlRegExecErrInfo		(xmlRegExecCtxtPtr exec,
    					 const xmlChar ** string,
    					 int * nbval,
    					 int * nbneg,
    					 xmlChar ** values,
    					 int * terminal)

    int	xmlRegExecNextValues		(xmlRegExecCtxtPtr exec,
    					 int * nbval,
    					 int * nbneg,
    					 xmlChar ** values,
    					 int * terminal)

    int	xmlRegExecPushString		(xmlRegExecCtxtPtr exec,
    					 const xmlChar * value,
    					 void * data)

    int	xmlRegExecPushString2		(xmlRegExecCtxtPtr exec,
    					 const xmlChar * value,
    					 const xmlChar * value2,
    					 void * data)

    void	xmlRegFreeExecCtxt		(xmlRegExecCtxtPtr exec)

    void	xmlRegFreeRegexp		(xmlRegexpPtr regexp)

    xmlRegExecCtxtPtr	xmlRegNewExecCtxt	(xmlRegexpPtr comp,
    						 xmlRegExecCallbacks callback,
    						 void * data)

    xmlRegexpPtr	xmlRegexpCompile	(const xmlChar * regexp)

    int	xmlRegexpExec			(xmlRegexpPtr comp,
    					 const xmlChar * content)

    int	xmlRegexpIsDeterminist		(xmlRegexpPtr comp)

    void	xmlRegexpPrint			(FILE * output,
    					 xmlRegexpPtr regexp)

## Description

### Structure xmlRegExecCtxt

    Structure xmlRegExecCtxt
    struct _xmlRegExecCtxt {
    The content of this structure is not made public by the API.
    }

### Structure xmlRegexp

    Structure xmlRegexp
    struct _xmlRegexp {
    The content of this structure is not made public by the API.
    }

### Function type: xmlRegExecCallbacks

    Function type: xmlRegExecCallbacks
    void	xmlRegExecCallbacks		(xmlRegExecCtxtPtr exec,
    					 const xmlChar * token,
    					 void * transdata,
    					 void * inputdata)

`exec`: |
`token`: |
`transdata`: |
`inputdata`: |

### Function: xmlRegExecErrInfo

    int	xmlRegExecErrInfo		(xmlRegExecCtxtPtr exec,
    					 const xmlChar ** string,
    					 int * nbval,
    					 int * nbneg,
    					 xmlChar ** values,
    					 int * terminal)

Extract error informations from the regexp execution, the parameter @string will be updated with the value pushed and not accepted, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values

`exec`: | a regexp execution context generating an error
`string`: | return value for the error string
`nbval`: | pointer to the number of accepted values IN/OUT
`nbneg`: | return number of negative transitions
`values`: | pointer to the array of acceptable values
`terminal`: | return value if this was a terminal state
`Returns`: | will be freed with the @exec context and don't need to be deallocated. Returns: 0 in case of success or -1 in case of error.

### Function: xmlRegExecNextValues

    int	xmlRegExecNextValues		(xmlRegExecCtxtPtr exec,
    					 int * nbval,
    					 int * nbneg,
    					 xmlChar ** values,
    					 int * terminal)

Extract informations from the regexp execution, the parameter @values must point to an array of @nbval string pointers on return nbval will contain the number of possible strings in that state and the @values array will be updated with them. The string values

`exec`: | a regexp execution context
`nbval`: | pointer to the number of accepted values IN/OUT
`nbneg`: | return number of negative transitions
`values`: | pointer to the array of acceptable values
`terminal`: | return value if this was a terminal state
`Returns`: | will be freed with the @exec context and don't need to be deallocated. Returns: 0 in case of success or -1 in case of error.

### Function: xmlRegExecPushString

    int	xmlRegExecPushString		(xmlRegExecCtxtPtr exec,
    					 const xmlChar * value,
    					 void * data)

Push one input token in the execution context

`exec`: | a regexp execution context or NULL to indicate the end
`value`: | a string token input
`data`: | data associated to the token to reuse in callbacks
`Returns`: | 1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.

### Function: xmlRegExecPushString2

    int	xmlRegExecPushString2		(xmlRegExecCtxtPtr exec,
    					 const xmlChar * value,
    					 const xmlChar * value2,
    					 void * data)

Push one input token in the execution context

`exec`: | a regexp execution context or NULL to indicate the end
`value`: | the first string token input
`value2`: | the second string token input
`data`: | data associated to the token to reuse in callbacks
`Returns`: | 1 if the regexp reached a final state, 0 if non-final, and a negative value in case of error.

### Function: xmlRegFreeExecCtxt

    void	xmlRegFreeExecCtxt		(xmlRegExecCtxtPtr exec)

Free the structures associated to a regular expression evaulation context.

`exec`: | a regular expression evaulation context

### Function: xmlRegFreeRegexp

    void	xmlRegFreeRegexp		(xmlRegexpPtr regexp)

Free a regexp

`regexp`: | the regexp

### Function: xmlRegNewExecCtxt

    xmlRegExecCtxtPtr	xmlRegNewExecCtxt	(xmlRegexpPtr comp,
    						 xmlRegExecCallbacks callback,
    						 void * data)

Build a context used for progressive evaluation of a regexp.

`comp`: | a precompiled regular expression
`callback`: | a callback function used for handling progresses in the automata matching phase
`data`: | the context data associated to the callback in this context
`Returns`: | the new context

### Function: xmlRegexpCompile

    xmlRegexpPtr	xmlRegexpCompile	(const xmlChar * regexp)

Parses a regular expression conforming to XML Schemas Part 2 Datatype Appendix F and builds an automata suitable for testing strings against that regular expression

`regexp`: | a regular expression string
`Returns`: | the compiled expression or NULL in case of error

### Function: xmlRegexpExec

    int	xmlRegexpExec			(xmlRegexpPtr comp,
    					 const xmlChar * content)

Check if the regular expression generates the value

`comp`: | the compiled regular expression
`content`: | the value to check against the regular expression
`Returns`: | 1 if it matches, 0 if not and a negative value in case of error

### Function: xmlRegexpIsDeterminist

    int	xmlRegexpIsDeterminist		(xmlRegexpPtr comp)

Check if the regular expression is determinist

`comp`: | the compiled regular expression
`Returns`: | 1 if it yes, 0 if not and a negative value in case of error

### Function: xmlRegexpPrint

    void	xmlRegexpPrint			(FILE * output,
    					 xmlRegexpPtr regexp)

Print the content of the compiled regular expression

`output`: | the file for the output debug
`regexp`: | the compiled regexp

Daniel Veillard