relaxng

relaxng - implementation of the Relax-NG validation

implementation of the Relax-NG validation

Author(s): Daniel Veillard

Synopsis

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

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;



Function type xmlRelaxNGValidityErrorFunc

void	xmlRelaxNGValidityErrorFunc	(void * ctx, 
const char * msg,
... ...)

Signature of an error callback from a Relax-NG validation

ctx: the validation context
msg: the message
...: extra arguments

Function type xmlRelaxNGValidityWarningFunc

void	xmlRelaxNGValidityWarningFunc	(void * ctx, 
const char * msg,
... ...)

Signature of a warning callback from a Relax-NG validation

ctx: the validation context
msg: the message
...: extra arguments

xmlRelaxNGCleanupTypes ()

void	xmlRelaxNGCleanupTypes		(void)

DEPRECATED: This function will be made private. Call xmlCleanupParser to free global state but see the warnings there. xmlCleanupParser should be only called once at program exit. In most cases, you don't have call cleanup functions at all. Cleanup the default Schemas type library associated to RelaxNG


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 information

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

xmlRelaxNGInitTypes ()

int	xmlRelaxNGInitTypes		(void)

Initialize the default type libraries.

Returns: 0 in case of success and -1 in case of error.

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 Schema structure 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 information

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 length 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 information 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