libxml2 Reference Manual |
---|
relaxng - implementation of the Relax-NG validation
implementation of the Relax-NG validation
Author(s): Daniel Veillard
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,
... ...);
struct _xmlRelaxNG { The content of this structure is not made public by the API. } xmlRelaxNG;
struct _xmlRelaxNGParserCtxt { The content of this structure is not made public by the API. } xmlRelaxNGParserCtxt;
xmlRelaxNGParserCtxt * xmlRelaxNGParserCtxtPtr;
enum xmlRelaxNGParserFlag { XML_RELAXNGP_NONE = 0 XML_RELAXNGP_FREE_DOC = 1 XML_RELAXNGP_CRNG = 2 };
xmlRelaxNG * xmlRelaxNGPtr;
struct _xmlRelaxNGValidCtxt { The content of this structure is not made public by the API. } xmlRelaxNGValidCtxt;
xmlRelaxNGValidCtxt * xmlRelaxNGValidCtxtPtr;
enum xmlRelaxNGValidErr { XML_RELAXNG_OK = 0 XML_RELAXNG_ERR_MEMORY = 1 XML_RELAXNG_ERR_TYPE = 2 XML_RELAXNG_ERR_TYPEVAL = 3 XML_RELAXNG_ERR_DUPID = 4 XML_RELAXNG_ERR_TYPECMP = 5 XML_RELAXNG_ERR_NOSTATE = 6 XML_RELAXNG_ERR_NODEFINE = 7 XML_RELAXNG_ERR_LISTEXTRA = 8 XML_RELAXNG_ERR_LISTEMPTY = 9 XML_RELAXNG_ERR_INTERNODATA = 10 XML_RELAXNG_ERR_INTERSEQ = 11 XML_RELAXNG_ERR_INTEREXTRA = 12 XML_RELAXNG_ERR_ELEMNAME = 13 XML_RELAXNG_ERR_ATTRNAME = 14 XML_RELAXNG_ERR_ELEMNONS = 15 XML_RELAXNG_ERR_ATTRNONS = 16 XML_RELAXNG_ERR_ELEMWRONGNS = 17 XML_RELAXNG_ERR_ATTRWRONGNS = 18 XML_RELAXNG_ERR_ELEMEXTRANS = 19 XML_RELAXNG_ERR_ATTREXTRANS = 20 XML_RELAXNG_ERR_ELEMNOTEMPTY = 21 XML_RELAXNG_ERR_NOELEM = 22 XML_RELAXNG_ERR_NOTELEM = 23 XML_RELAXNG_ERR_ATTRVALID = 24 XML_RELAXNG_ERR_CONTENTVALID = 25 XML_RELAXNG_ERR_EXTRACONTENT = 26 XML_RELAXNG_ERR_INVALIDATTR = 27 XML_RELAXNG_ERR_DATAELEM = 28 XML_RELAXNG_ERR_VALELEM = 29 XML_RELAXNG_ERR_LISTELEM = 30 XML_RELAXNG_ERR_DATATYPE = 31 XML_RELAXNG_ERR_VALUE = 32 XML_RELAXNG_ERR_LIST = 33 XML_RELAXNG_ERR_NOGRAMMAR = 34 XML_RELAXNG_ERR_EXTRADATA = 35 XML_RELAXNG_ERR_LACKDATA = 36 XML_RELAXNG_ERR_INTERNAL = 37 XML_RELAXNG_ERR_ELEMWRONG = 38 XML_RELAXNG_ERR_TEXTWRONG = 39 };
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 |
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 |
void xmlRelaxNGCleanupTypes (void)
Cleanup the default Schemas type library associated to RelaxNG
void xmlRelaxNGDump (FILE * output,
xmlRelaxNGPtr schema)
Dump a RelaxNG structure back
output: | the file output |
schema: | a schema structure |
void xmlRelaxNGDumpTree (FILE * output,
xmlRelaxNGPtr schema)
Dump the transformed RelaxNG tree.
output: | the file output |
schema: | a schema structure |
void xmlRelaxNGFree (xmlRelaxNGPtr schema)
Deallocate a RelaxNG structure.
schema: | a schema structure |
void xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt)
Free the resources associated to the schema parser context
ctxt: | the schema parser context |
void xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt)
Free the resources associated to the schema validation context
ctxt: | the schema validation context |
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. |
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 |
int xmlRelaxNGInitTypes (void)
Initialize the default type libraries.
Returns: | 0 in case of success and -1 in case of error. |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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. |
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. |
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 |
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 |
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. |
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 |