relaxng

relaxng - implementation of the Relax-NG validation

implementation of the Relax-NG validation

Author(s): Daniel Veillard

Synopsis

typedef struct _xmlRelaxNG xmlRelaxNG;
typedef xmlRelaxNG * xmlRelaxNGPtr;
typedef enum xmlRelaxNGValidErr;
typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
typedef xmlRelaxNGParserCtxt * xmlRelaxNGParserCtxtPtr;
typedef enum xmlRelaxNGParserFlag;
typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
typedef xmlRelaxNGValidCtxt * xmlRelaxNGValidCtxtPtr;
void	xmlRelaxNGFreeValidCtxt		(xmlRelaxNGValidCtxtPtr ctxt);
xmlRelaxNGParserCtxtPtr	xmlRelaxNGNewDocParserCtxt	(xmlDocPtr doc);
void	xmlRelaxNGSetValidErrors	(xmlRelaxNGValidCtxtPtr ctxt, 
xmlRelaxNGValidityErrorFunc err,
xmlRelaxNGValidityWarningFunc warn,
void * ctx); xmlRelaxNGParserCtxtPtr xmlRelaxNGNewParserCtxt (const char * URL); int xmlRelaxNGGetParserErrors (xmlRelaxNGParserCtxtPtr ctxt,
xmlRelaxNGValidityErrorFunc * err,
xmlRelaxNGValidityWarningFunc * warn,
void ** ctx); int xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt,
xmlDocPtr doc,
xmlNodePtr elem); xmlRelaxNGValidCtxtPtr xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema); xmlRelaxNGParserCtxtPtr xmlRelaxNGNewMemParserCtxt (const char * buffer,
int size); void xmlRelaxNGDump (FILE * output,
xmlRelaxNGPtr schema); void xmlRelaxNGSetParserErrors (xmlRelaxNGParserCtxtPtr ctxt,
xmlRelaxNGValidityErrorFunc err,
xmlRelaxNGValidityWarningFunc warn,
void * ctx); xmlRelaxNGPtr xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt); void xmlRelaxNGSetParserStructuredErrors (xmlRelaxNGParserCtxtPtr ctxt,
xmlStructuredErrorFunc serror,
void * ctx); int xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt,
xmlDocPtr doc,
xmlNodePtr elem); typedef void xmlRelaxNGValidityErrorFunc (void * ctx,
const char * msg,
... ...); int xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt,
xmlDocPtr doc,
xmlNodePtr elem); void xmlRelaxNGFree (xmlRelaxNGPtr schema); int xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt,
xmlDocPtr doc); void xmlRelaxNGSetValidStructuredErrors (xmlRelaxNGValidCtxtPtr ctxt,
xmlStructuredErrorFunc serror,
void * ctx); void xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt); int xmlRelaxNGGetValidErrors (xmlRelaxNGValidCtxtPtr ctxt,
xmlRelaxNGValidityErrorFunc * err,
xmlRelaxNGValidityWarningFunc * warn,
void ** ctx); int xmlRelaxNGInitTypes (void); void xmlRelaxNGDumpTree (FILE * output,
xmlRelaxNGPtr schema); void xmlRelaxNGCleanupTypes (void); int xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt,
const xmlChar * data,
int len); int xmlRelaxParserSetFlag (xmlRelaxNGParserCtxtPtr ctxt,
int flags); typedef void xmlRelaxNGValidityWarningFunc (void * ctx,
const char * msg,
... ...);

Description

Details

Structure xmlRelaxNG

struct _xmlRelaxNG {
The content of this structure is not made public by the API.
} xmlRelaxNG;


Structure xmlRelaxNGParserCtxt

struct _xmlRelaxNGParserCtxt {
The content of this structure is not made public by the API.
} xmlRelaxNGParserCtxt;


Typedef xmlRelaxNGParserCtxtPtr

xmlRelaxNGParserCtxt * xmlRelaxNGParserCtxtPtr;



Typedef xmlRelaxNGPtr

xmlRelaxNG * xmlRelaxNGPtr;


Structure xmlRelaxNGValidCtxt

struct _xmlRelaxNGValidCtxt {
The content of this structure is not made public by the API.
} xmlRelaxNGValidCtxt;


Typedef xmlRelaxNGValidCtxtPtr

xmlRelaxNGValidCtxt * xmlRelaxNGValidCtxtPtr;






xmlRelaxNGDump ()

void	xmlRelaxNGDump			(FILE * output, 
xmlRelaxNGPtr schema)

Dump a RelaxNG structure back

output:the file output
schema:a schema structure

xmlRelaxNGDumpTree ()

void	xmlRelaxNGDumpTree		(FILE * output, 
xmlRelaxNGPtr schema)

Dump the transformed RelaxNG tree.

output:the file output
schema:a schema structure

xmlRelaxNGFree ()

void	xmlRelaxNGFree			(xmlRelaxNGPtr schema)

Deallocate a RelaxNG structure.

schema:a schema structure

xmlRelaxNGFreeParserCtxt ()

void	xmlRelaxNGFreeParserCtxt	(xmlRelaxNGParserCtxtPtr ctxt)

Free the resources associated to the schema parser context

ctxt:the schema parser context

xmlRelaxNGFreeValidCtxt ()

void	xmlRelaxNGFreeValidCtxt		(xmlRelaxNGValidCtxtPtr ctxt)

Free the resources associated to the schema validation context

ctxt:the schema validation context

xmlRelaxNGGetParserErrors ()

int	xmlRelaxNGGetParserErrors	(xmlRelaxNGParserCtxtPtr ctxt, 
xmlRelaxNGValidityErrorFunc * err,
xmlRelaxNGValidityWarningFunc * warn,
void ** ctx)

Get the callback information used to handle errors for a validation context

ctxt:a Relax-NG validation context
err:the error callback result
warn:the warning callback result
ctx:contextual data for the callbacks result
Returns:-1 in case of failure, 0 otherwise.

xmlRelaxNGGetValidErrors ()

int	xmlRelaxNGGetValidErrors	(xmlRelaxNGValidCtxtPtr ctxt, 
xmlRelaxNGValidityErrorFunc * err,
xmlRelaxNGValidityWarningFunc * warn,
void ** ctx)

Get the error and warning callback informations

ctxt:a Relax-NG validation context
err:the error function result
warn:the warning function result
ctx:the functions context result
Returns:-1 in case of error and 0 otherwise


xmlRelaxNGNewDocParserCtxt ()

xmlRelaxNGParserCtxtPtr	xmlRelaxNGNewDocParserCtxt	(xmlDocPtr doc)

Create an XML RelaxNGs parser context for that document. Note: since the process of compiling a RelaxNG schemas modifies the document, the @doc parameter is duplicated internally.

doc:a preparsed document tree
Returns:the parser context or NULL in case of error

xmlRelaxNGNewMemParserCtxt ()

xmlRelaxNGParserCtxtPtr	xmlRelaxNGNewMemParserCtxt	(const char * buffer, 
int size)

Create an XML RelaxNGs parse context for that memory buffer expected to contain an XML RelaxNGs file.

buffer:a pointer to a char array containing the schemas
size:the size of the array
Returns:the parser context or NULL in case of error

xmlRelaxNGNewParserCtxt ()

xmlRelaxNGParserCtxtPtr	xmlRelaxNGNewParserCtxt	(const char * URL)

Create an XML RelaxNGs parse context for that file/resource expected to contain an XML RelaxNGs file.

URL:the location of the schema
Returns:the parser context or NULL in case of error

xmlRelaxNGNewValidCtxt ()

xmlRelaxNGValidCtxtPtr	xmlRelaxNGNewValidCtxt	(xmlRelaxNGPtr schema)

Create an XML RelaxNGs validation context based on the given schema

schema:a precompiled XML RelaxNGs
Returns:the validation context or NULL in case of error

xmlRelaxNGParse ()

xmlRelaxNGPtr	xmlRelaxNGParse		(xmlRelaxNGParserCtxtPtr ctxt)

parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances.

ctxt:a Relax-NG parser context
Returns:the internal XML RelaxNG structure built from the resource or NULL in case of error

xmlRelaxNGSetParserErrors ()

void	xmlRelaxNGSetParserErrors	(xmlRelaxNGParserCtxtPtr ctxt, 
xmlRelaxNGValidityErrorFunc err,
xmlRelaxNGValidityWarningFunc warn,
void * ctx)

Set the callback functions used to handle errors for a validation context

ctxt:a Relax-NG validation context
err:the error callback
warn:the warning callback
ctx:contextual data for the callbacks

xmlRelaxNGSetParserStructuredErrors ()

void	xmlRelaxNGSetParserStructuredErrors	(xmlRelaxNGParserCtxtPtr ctxt, 
xmlStructuredErrorFunc serror,
void * ctx)

Set the callback functions used to handle errors for a parsing context

ctxt:a Relax-NG parser context
serror:the error callback
ctx:contextual data for the callbacks

xmlRelaxNGSetValidErrors ()

void	xmlRelaxNGSetValidErrors	(xmlRelaxNGValidCtxtPtr ctxt, 
xmlRelaxNGValidityErrorFunc err,
xmlRelaxNGValidityWarningFunc warn,
void * ctx)

Set the error and warning callback informations

ctxt:a Relax-NG validation context
err:the error function
warn:the warning function
ctx:the functions context

xmlRelaxNGSetValidStructuredErrors ()

void	xmlRelaxNGSetValidStructuredErrors	(xmlRelaxNGValidCtxtPtr ctxt, 
xmlStructuredErrorFunc serror,
void * ctx)

Set the structured error callback

ctxt:a Relax-NG validation context
serror:the structured error function
ctx:the functions context

xmlRelaxNGValidateDoc ()

int	xmlRelaxNGValidateDoc		(xmlRelaxNGValidCtxtPtr ctxt, 
xmlDocPtr doc)

Validate a document tree in memory.

ctxt:a Relax-NG validation context
doc:a parsed document tree
Returns:0 if the document is valid, a positive error code number otherwise and -1 in case of internal or API error.

xmlRelaxNGValidateFullElement ()

int	xmlRelaxNGValidateFullElement	(xmlRelaxNGValidCtxtPtr ctxt, 
xmlDocPtr doc,
xmlNodePtr elem)

Validate a full subtree when xmlRelaxNGValidatePushElement() returned 0 and the content of the node has been expanded.

ctxt:the validation context
doc:a document instance
elem:an element instance
Returns:1 if no validation problem was found or -1 in case of error.

xmlRelaxNGValidatePopElement ()

int	xmlRelaxNGValidatePopElement	(xmlRelaxNGValidCtxtPtr ctxt, 
xmlDocPtr doc,
xmlNodePtr elem)

Pop the element end from the RelaxNG validation stack.

ctxt:the RelaxNG validation context
doc:a document instance
elem:an element instance
Returns:1 if no validation problem was found or 0 otherwise

xmlRelaxNGValidatePushCData ()

int	xmlRelaxNGValidatePushCData	(xmlRelaxNGValidCtxtPtr ctxt, 
const xmlChar * data,
int len)

check the CData parsed for validation in the current stack

ctxt:the RelaxNG validation context
data:some character data read
len:the lenght of the data
Returns:1 if no validation problem was found or -1 otherwise

xmlRelaxNGValidatePushElement ()

int	xmlRelaxNGValidatePushElement	(xmlRelaxNGValidCtxtPtr ctxt, 
xmlDocPtr doc,
xmlNodePtr elem)

Push a new element start on the RelaxNG validation stack.

ctxt:the validation context
doc:a document instance
elem:an element instance
Returns:1 if no validation problem was found or 0 if validating the element requires a full node, and -1 in case of error.

xmlRelaxParserSetFlag ()

int	xmlRelaxParserSetFlag		(xmlRelaxNGParserCtxtPtr ctxt, 
int flags)

Semi private function used to pass informations to a parser context which are a combination of xmlRelaxNGParserFlag .

ctxt:a RelaxNG parser context
flags:a set of flags values
Returns:0 if success and -1 in case of error