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 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);
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)
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
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 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 |
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)
DEPRECATED: Use xmlRelaxNGSetParserStructuredErrors. 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)
DEPRECATED: Use xmlRelaxNGSetValidStructuredErrors. 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 |
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 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 |