| Gnome XML Library Reference Manual |
|---|
relaxng —
struct xmlRelaxNG; typedef xmlRelaxNGPtr; void (*xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...); void (*xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...); struct xmlRelaxNGParserCtxt; typedef xmlRelaxNGParserCtxtPtr; struct xmlRelaxNGValidCtxt; typedef xmlRelaxNGValidCtxtPtr; enum xmlRelaxNGValidErr; xmlRelaxNGParserCtxtPtr xmlRelaxNGNewParserCtxt (const char *URL); xmlRelaxNGParserCtxtPtr xmlRelaxNGNewMemParserCtxt (const char *buffer, int size); xmlRelaxNGParserCtxtPtr xmlRelaxNGNewDocParserCtxt (xmlDocPtr doc); void xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt); void xmlRelaxNGSetParserErrors (xmlRelaxNGParserCtxtPtr ctxt, xmlRelaxNGValidityErrorFunc err, xmlRelaxNGValidityWarningFunc warn, void *ctx); xmlRelaxNGPtr xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt); void xmlRelaxNGFree (xmlRelaxNGPtr schema); void xmlRelaxNGDump (FILE *output, xmlRelaxNGPtr schema); void xmlRelaxNGDumpTree (FILE *output, xmlRelaxNGPtr schema); void xmlRelaxNGSetValidErrors (xmlRelaxNGValidCtxtPtr ctxt, xmlRelaxNGValidityErrorFunc err, xmlRelaxNGValidityWarningFunc warn, void *ctx); xmlRelaxNGValidCtxtPtr xmlRelaxNGNewValidCtxt (xmlRelaxNGPtr schema); void xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt); int xmlRelaxNGValidateDoc (xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc); void xmlRelaxNGCleanupTypes (void); int xmlRelaxNGValidatePushElement (xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem); int xmlRelaxNGValidatePushCData (xmlRelaxNGValidCtxtPtr ctxt, const xmlChar *data, int len); int xmlRelaxNGValidatePopElement (xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem); int xmlRelaxNGValidateFullElement (xmlRelaxNGValidCtxtPtr ctxt, xmlDocPtr doc, xmlNodePtr elem);
void (*xmlRelaxNGValidityErrorFunc) (void *ctx,
const char *msg,
...);
| ctx : | |
| msg : | |
| ... : |
void (*xmlRelaxNGValidityWarningFunc)
(void *ctx,
const char *msg,
...);
| ctx : | |
| msg : | |
| ... : |
typedef enum {
XML_RELAXNG_OK = 0,
XML_RELAXNG_ERR_MEMORY,
XML_RELAXNG_ERR_TYPE,
XML_RELAXNG_ERR_TYPEVAL,
XML_RELAXNG_ERR_DUPID,
XML_RELAXNG_ERR_TYPECMP,
XML_RELAXNG_ERR_NOSTATE,
XML_RELAXNG_ERR_NODEFINE,
XML_RELAXNG_ERR_LISTEXTRA,
XML_RELAXNG_ERR_LISTEMPTY,
XML_RELAXNG_ERR_INTERNODATA,
XML_RELAXNG_ERR_INTERSEQ,
XML_RELAXNG_ERR_INTEREXTRA,
XML_RELAXNG_ERR_ELEMNAME,
XML_RELAXNG_ERR_ATTRNAME,
XML_RELAXNG_ERR_ELEMNONS,
XML_RELAXNG_ERR_ATTRNONS,
XML_RELAXNG_ERR_ELEMWRONGNS,
XML_RELAXNG_ERR_ATTRWRONGNS,
XML_RELAXNG_ERR_ELEMEXTRANS,
XML_RELAXNG_ERR_ATTREXTRANS,
XML_RELAXNG_ERR_ELEMNOTEMPTY,
XML_RELAXNG_ERR_NOELEM,
XML_RELAXNG_ERR_NOTELEM,
XML_RELAXNG_ERR_ATTRVALID,
XML_RELAXNG_ERR_CONTENTVALID,
XML_RELAXNG_ERR_EXTRACONTENT,
XML_RELAXNG_ERR_INVALIDATTR,
XML_RELAXNG_ERR_DATAELEM,
XML_RELAXNG_ERR_VALELEM,
XML_RELAXNG_ERR_LISTELEM,
XML_RELAXNG_ERR_DATATYPE,
XML_RELAXNG_ERR_VALUE,
XML_RELAXNG_ERR_LIST,
XML_RELAXNG_ERR_NOGRAMMAR,
XML_RELAXNG_ERR_EXTRADATA,
XML_RELAXNG_ERR_LACKDATA,
XML_RELAXNG_ERR_INTERNAL,
XML_RELAXNG_ERR_ELEMWRONG,
XML_RELAXNG_ERR_TEXTWRONG
} xmlRelaxNGValidErr;
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 |
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 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 |
void xmlRelaxNGFreeParserCtxt (xmlRelaxNGParserCtxtPtr ctxt);
Free the resources associated to the schema parser context
| ctxt : | the schema parser context |
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 |
xmlRelaxNGPtr xmlRelaxNGParse (xmlRelaxNGParserCtxtPtr ctxt);
parse a schema definition resource and build an internal XML Shema struture which can be used to validate instances. *WARNING* this interface is highly subject to change
| ctxt : | a Relax-NG parser context |
| Returns : | the internal XML RelaxNG structure built from the resource or NULL in case of error |
void xmlRelaxNGFree (xmlRelaxNGPtr schema);
Deallocate a RelaxNG structure.
| schema : | a schema structure |
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 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 |
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 |
void xmlRelaxNGFreeValidCtxt (xmlRelaxNGValidCtxtPtr ctxt);
Free the resources associated to the schema validation context
| ctxt : | the schema validation 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. |
void xmlRelaxNGCleanupTypes (void);
Cleanup the default Schemas type library associated to RelaxNG
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 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 |
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 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. |
| << valid | uri >> |