Edit

kc3-lang/libxml2/include/libxml/relaxng.h

Branch :

  • Show log

    Commit

  • Author : Daniel Veillard
    Date : 2003-03-07 18:32:59
    Hash : 42f12e99
    Message : after and exchange with James Clark it appeared I had bug in URI parsing * test/xsdtest/xsdtest.xml uri.c: after and exchange with James Clark it appeared I had bug in URI parsing code ... * relaxng.c include/libxml/relaxng.h: completely revamped error reporting to not loose message from optional parts. * xmllint.c: added timing for RNG validation steps * result/relaxng/*: updated the result, all error messages changed Daniel

  • include/libxml/relaxng.h
  • /*
     * relaxng.h: header for the implementation of the Relax-NG validation
     *
     * See Copyright for the status of this software.
     *
     * daniel@veillard.com
     */
    
    #ifndef __XML_RELAX_NG__
    #define __XML_RELAX_NG__
    
    #include <libxml/hash.h>
    
    typedef struct _xmlRelaxNG xmlRelaxNG;
    typedef xmlRelaxNG *xmlRelaxNGPtr;
    
    
    /**
     * A schemas validation context
     */
    typedef void (*xmlRelaxNGValidityErrorFunc) (void *ctx, const char *msg, ...);
    typedef void (*xmlRelaxNGValidityWarningFunc) (void *ctx, const char *msg, ...);
    
    typedef struct _xmlRelaxNGParserCtxt xmlRelaxNGParserCtxt;
    typedef xmlRelaxNGParserCtxt *xmlRelaxNGParserCtxtPtr;
    
    typedef struct _xmlRelaxNGValidCtxt xmlRelaxNGValidCtxt;
    typedef xmlRelaxNGValidCtxt *xmlRelaxNGValidCtxtPtr;
    
    /*
     * xmlRelaxNGValidErr:
     *
     * List of possible Relax NG validation errors
     */
    typedef enum {
        XML_RELAXNG_OK = 0,
        XML_RELAXNG_ERR_MEMORY,
        XML_RELAXNG_ERR_TYPE,
        XML_RELAXNG_ERR_TYPEVAL,
        XML_RELAXNG_ERR_TYPECMP,
        XML_RELAXNG_ERR_NOSTATE,
        XML_RELAXNG_ERR_NODEFINE,
        XML_RELAXNG_ERR_LISTEXTRA,
        XML_RELAXNG_ERR_INTERNODATA,
        XML_RELAXNG_ERR_INTERSEQ,
        XML_RELAXNG_ERR_INTEREXTRA,
        XML_RELAXNG_ERR_ELEMNAME,
        XML_RELAXNG_ERR_ELEMNONS,
        XML_RELAXNG_ERR_ELEMWRONGNS,
        XML_RELAXNG_ERR_ELEMEXTRANS,
        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
    } xmlRelaxNGValidErr;
    
    /*
     * Interfaces for parsing.
     */
    xmlRelaxNGParserCtxtPtr xmlRelaxNGNewParserCtxt	(const char *URL);
    xmlRelaxNGParserCtxtPtr xmlRelaxNGNewMemParserCtxt(const char *buffer,
    						 int size);
    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);
    /*
     * Interfaces for validating
     */
    void		xmlRelaxNGSetValidErrors(xmlRelaxNGValidCtxtPtr ctxt,
    					 xmlRelaxNGValidityErrorFunc err,
    					 xmlRelaxNGValidityWarningFunc warn,
    					 void *ctx);
    xmlRelaxNGValidCtxtPtr	xmlRelaxNGNewValidCtxt	(xmlRelaxNGPtr schema);
    void			xmlRelaxNGFreeValidCtxt	(xmlRelaxNGValidCtxtPtr ctxt);
    int			xmlRelaxNGValidateDoc	(xmlRelaxNGValidCtxtPtr ctxt,
    					 	 xmlDocPtr instance);
    int			xmlRelaxNGValidateStream(xmlRelaxNGValidCtxtPtr ctxt,
    						 xmlParserInputBufferPtr input,
    						 xmlCharEncoding enc,
    					 	 xmlSAXHandlerPtr sax,
    						 void *user_data);
    void			xmlRelaxNGCleanupTypes	(void);
    #endif /* __XML_RELAX_NG__ */