Blame doc/devhelp/libxml2-relaxng.html

Packit 423ecb
Packit 423ecb
<html>
Packit 423ecb
  <head>
Packit 423ecb
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Packit 423ecb
    <title>relaxng: implementation of the Relax-NG validation</title>
Packit 423ecb
    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
Packit 423ecb
    <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
Packit 423ecb
    <link rel="up" href="general.html" title="API"/>
Packit 423ecb
    <link rel="stylesheet" href="style.css" type="text/css"/>
Packit 423ecb
    <link rel="chapter" href="general.html" title="API"/>
Packit 423ecb
  </head>
Packit 423ecb
  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit 423ecb
    
Packit 423ecb
      
Packit 423ecb
        
Packit 423ecb
          
Packit 423ecb
            Prev
Packit 423ecb
          
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb
          
Packit 423ecb
            Up
Packit 423ecb
          
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb
          
Packit 423ecb
            Home
Packit 423ecb
          
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb
          
Packit 423ecb
            Next
Packit 423ecb
          
Packit 423ecb
        
Packit 423ecb
        libxml2 Reference Manual
Packit 423ecb
      
Packit 423ecb
    
Packit 423ecb
    

Packit 423ecb
      relaxng
Packit 423ecb
    
Packit 423ecb
    

relaxng - implementation of the Relax-NG validation

Packit 423ecb
    

implementation of the Relax-NG validation

Packit 423ecb
    

Author(s): Daniel Veillard

Packit 423ecb
    
Packit 423ecb
      

Synopsis

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

Description

Packit 423ecb
    
Packit 423ecb
    
Packit 423ecb
      

Details

Packit 423ecb
      
Packit 423ecb
        

Structure xmlRelaxNG

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

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        

Structure xmlRelaxNGParserCtxt

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

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        

Typedef xmlRelaxNGParserCtxtPtr

xmlRelaxNGParserCtxt * xmlRelaxNGParserCtxtPtr;
Packit 423ecb

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        

Enum xmlRelaxNGParserFlag

enum xmlRelaxNGParserFlag {
Packit 423ecb
    XML_RELAXNGP_NONE = 0
Packit 423ecb
    XML_RELAXNGP_FREE_DOC = 1
Packit 423ecb
    XML_RELAXNGP_CRNG = 2
Packit 423ecb
};
Packit 423ecb

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        

Typedef xmlRelaxNGPtr

xmlRelaxNG * xmlRelaxNGPtr;
Packit 423ecb

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        

Structure xmlRelaxNGValidCtxt

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

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        

Typedef xmlRelaxNGValidCtxtPtr

xmlRelaxNGValidCtxt * xmlRelaxNGValidCtxtPtr;
Packit 423ecb

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        

Enum xmlRelaxNGValidErr

enum xmlRelaxNGValidErr {
Packit 423ecb
    XML_RELAXNG_OK = 0
Packit 423ecb
    XML_RELAXNG_ERR_MEMORY = 1
Packit 423ecb
    XML_RELAXNG_ERR_TYPE = 2
Packit 423ecb
    XML_RELAXNG_ERR_TYPEVAL = 3
Packit 423ecb
    XML_RELAXNG_ERR_DUPID = 4
Packit 423ecb
    XML_RELAXNG_ERR_TYPECMP = 5
Packit 423ecb
    XML_RELAXNG_ERR_NOSTATE = 6
Packit 423ecb
    XML_RELAXNG_ERR_NODEFINE = 7
Packit 423ecb
    XML_RELAXNG_ERR_LISTEXTRA = 8
Packit 423ecb
    XML_RELAXNG_ERR_LISTEMPTY = 9
Packit 423ecb
    XML_RELAXNG_ERR_INTERNODATA = 10
Packit 423ecb
    XML_RELAXNG_ERR_INTERSEQ = 11
Packit 423ecb
    XML_RELAXNG_ERR_INTEREXTRA = 12
Packit 423ecb
    XML_RELAXNG_ERR_ELEMNAME = 13
Packit 423ecb
    XML_RELAXNG_ERR_ATTRNAME = 14
Packit 423ecb
    XML_RELAXNG_ERR_ELEMNONS = 15
Packit 423ecb
    XML_RELAXNG_ERR_ATTRNONS = 16
Packit 423ecb
    XML_RELAXNG_ERR_ELEMWRONGNS = 17
Packit 423ecb
    XML_RELAXNG_ERR_ATTRWRONGNS = 18
Packit 423ecb
    XML_RELAXNG_ERR_ELEMEXTRANS = 19
Packit 423ecb
    XML_RELAXNG_ERR_ATTREXTRANS = 20
Packit 423ecb
    XML_RELAXNG_ERR_ELEMNOTEMPTY = 21
Packit 423ecb
    XML_RELAXNG_ERR_NOELEM = 22
Packit 423ecb
    XML_RELAXNG_ERR_NOTELEM = 23
Packit 423ecb
    XML_RELAXNG_ERR_ATTRVALID = 24
Packit 423ecb
    XML_RELAXNG_ERR_CONTENTVALID = 25
Packit 423ecb
    XML_RELAXNG_ERR_EXTRACONTENT = 26
Packit 423ecb
    XML_RELAXNG_ERR_INVALIDATTR = 27
Packit 423ecb
    XML_RELAXNG_ERR_DATAELEM = 28
Packit 423ecb
    XML_RELAXNG_ERR_VALELEM = 29
Packit 423ecb
    XML_RELAXNG_ERR_LISTELEM = 30
Packit 423ecb
    XML_RELAXNG_ERR_DATATYPE = 31
Packit 423ecb
    XML_RELAXNG_ERR_VALUE = 32
Packit 423ecb
    XML_RELAXNG_ERR_LIST = 33
Packit 423ecb
    XML_RELAXNG_ERR_NOGRAMMAR = 34
Packit 423ecb
    XML_RELAXNG_ERR_EXTRADATA = 35
Packit 423ecb
    XML_RELAXNG_ERR_LACKDATA = 36
Packit 423ecb
    XML_RELAXNG_ERR_INTERNAL = 37
Packit 423ecb
    XML_RELAXNG_ERR_ELEMWRONG = 38
Packit 423ecb
    XML_RELAXNG_ERR_TEXTWRONG = 39
Packit 423ecb
};
Packit 423ecb

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Signature of an error callback from a Relax-NG validation

Packit 423ecb
<tt>ctx</tt>:the validation context
<tt>msg</tt>:the message
<tt>...</tt>:extra arguments
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Signature of a warning callback from a Relax-NG validation

Packit 423ecb
<tt>ctx</tt>:the validation context
<tt>msg</tt>:the message
<tt>...</tt>:extra arguments
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Cleanup the default Schemas type library associated to RelaxNG

Packit 423ecb
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Dump a RelaxNG structure back

Packit 423ecb
<tt>output</tt>:the file output
<tt>schema</tt>:a schema structure
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Dump the transformed RelaxNG tree.

Packit 423ecb
<tt>output</tt>:the file output
<tt>schema</tt>:a schema structure
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Deallocate a RelaxNG structure.

Packit 423ecb
<tt>schema</tt>:a schema structure
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Free the resources associated to the schema parser context

Packit 423ecb
<tt>ctxt</tt>:the schema parser context
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Free the resources associated to the schema validation context

Packit 423ecb
<tt>ctxt</tt>:the schema validation context
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

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

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

Get the error and warning callback informations

Packit 423ecb
<tt>ctxt</tt>:a Relax-NG validation context
<tt>err</tt>:the error function result
<tt>warn</tt>:the warning function result
<tt>ctx</tt>:the functions context result
<tt>Returns</tt>:-1 in case of error and 0 otherwise
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Initilize the default type libraries.

Packit 423ecb
<tt>Returns</tt>:0 in case of success and -1 in case of error.
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

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.

Packit 423ecb
<tt>doc</tt>:a preparsed document tree
<tt>Returns</tt>:the parser context or NULL in case of error
Packit 423ecb
        
Packit 423ecb
        

xmlRelaxNGNewMemParserCtxt ()

xmlRelaxNGParserCtxtPtr	xmlRelaxNGNewMemParserCtxt	(const char * buffer, 
int size)
Packit 423ecb

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

Packit 423ecb
<tt>buffer</tt>:a pointer to a char array containing the schemas
<tt>size</tt>:the size of the array
<tt>Returns</tt>:the parser context or NULL in case of error
Packit 423ecb
        
Packit 423ecb
        

xmlRelaxNGNewParserCtxt ()

xmlRelaxNGParserCtxtPtr	xmlRelaxNGNewParserCtxt	(const char * URL)
Packit 423ecb

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

Packit 423ecb
<tt>URL</tt>:the location of the schema
<tt>Returns</tt>:the parser context or NULL in case of error
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Create an XML RelaxNGs validation context based on the given schema

Packit 423ecb
<tt>schema</tt>:a precompiled XML RelaxNGs
<tt>Returns</tt>:the validation context or NULL in case of error
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

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

Packit 423ecb
<tt>ctxt</tt>:a Relax-NG parser context
<tt>Returns</tt>:the internal XML RelaxNG structure built from the resource or NULL in case of error
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

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

Packit 423ecb
<tt>ctxt</tt>:a Relax-NG validation context
<tt>err</tt>:the error callback
<tt>warn</tt>:the warning callback
<tt>ctx</tt>:contextual data for the callbacks
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

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

Packit 423ecb
<tt>ctxt</tt>:a Relax-NG parser context
<tt>serror</tt>:the error callback
<tt>ctx</tt>:contextual data for the callbacks
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Set the error and warning callback informations

Packit 423ecb
<tt>ctxt</tt>:a Relax-NG validation context
<tt>err</tt>:the error function
<tt>warn</tt>:the warning function
<tt>ctx</tt>:the functions context
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Set the structured error callback

Packit 423ecb
<tt>ctxt</tt>:a Relax-NG validation context
<tt>serror</tt>:the structured error function
<tt>ctx</tt>:the functions context
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Validate a document tree in memory.

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

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

Packit 423ecb
<tt>ctxt</tt>:the validation context
<tt>doc</tt>:a document instance
<tt>elem</tt>:an element instance
<tt>Returns</tt>:1 if no validation problem was found or -1 in case of error.
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Pop the element end from the RelaxNG validation stack.

Packit 423ecb
<tt>ctxt</tt>:the RelaxNG validation context
<tt>doc</tt>:a document instance
<tt>elem</tt>:an element instance
<tt>Returns</tt>:1 if no validation problem was found or 0 otherwise
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

check the CData parsed for validation in the current stack

Packit 423ecb
<tt>ctxt</tt>:the RelaxNG validation context
<tt>data</tt>:some character data read
<tt>len</tt>:the length of the data
<tt>Returns</tt>:1 if no validation problem was found or -1 otherwise
Packit 423ecb
        
Packit 423ecb
        
Packit 423ecb

Push a new element start on the RelaxNG validation stack.

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

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

Packit 423ecb
<tt>ctxt</tt>:a RelaxNG parser context
<tt>flags</tt>:a set of flags values
<tt>Returns</tt>:0 if success and -1 in case of error
Packit 423ecb
        
Packit 423ecb
      
Packit 423ecb
    
Packit 423ecb
  </body>
Packit 423ecb
</html>